Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/deoptimization.hpp @ 13641:5a9afbf72714
Add a speculation oop for uncommon trap deoptimization. Save it in the SpeculationLog during deoptimization.
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Thu, 12 Dec 2013 15:13:02 +0100 |
parents | 51e97f88c771 |
children | a9604b40f5e7 |
comparison
equal
deleted
inserted
replaced
13640:bfe7a8c8c3c6 | 13641:5a9afbf72714 |
---|---|
103 }; | 103 }; |
104 | 104 |
105 enum { | 105 enum { |
106 _action_bits = 3, | 106 _action_bits = 3, |
107 _reason_bits = 5, | 107 _reason_bits = 5, |
108 _speculation_id_bits = 23, | 108 _debug_id_bits = 23, |
109 _action_shift = 0, | 109 _action_shift = 0, |
110 _reason_shift = _action_shift+_action_bits, | 110 _reason_shift = _action_shift+_action_bits, |
111 _speculation_id_shift = _reason_shift+_reason_bits, | 111 _debug_id_shift = _reason_shift+_reason_bits, |
112 BC_CASE_LIMIT = PRODUCT_ONLY(1) NOT_PRODUCT(4) // for _deoptimization_hist | 112 BC_CASE_LIMIT = PRODUCT_ONLY(1) NOT_PRODUCT(4) // for _deoptimization_hist |
113 }; | 113 }; |
114 | 114 |
115 enum UnpackType { | 115 enum UnpackType { |
116 Unpack_deopt = 0, // normal deoptimization, use pc computed in unpack_vframe_on_stack | 116 Unpack_deopt = 0, // normal deoptimization, use pc computed in unpack_vframe_on_stack |
292 ((~(trap_request) >> _action_shift) & right_n_bits(_action_bits)); | 292 ((~(trap_request) >> _action_shift) & right_n_bits(_action_bits)); |
293 else | 293 else |
294 // standard action for unloaded CP entry | 294 // standard action for unloaded CP entry |
295 return _unloaded_action; | 295 return _unloaded_action; |
296 } | 296 } |
297 static short trap_request_speculation_id(int trap_request) { | 297 static short trap_request_debug_id(int trap_request) { |
298 if (trap_request < 0) | 298 if (trap_request < 0) |
299 return (DeoptAction) | 299 return (DeoptAction) |
300 ((~(trap_request) >> _speculation_id_shift) & right_n_bits(_speculation_id_bits)); | 300 ((~(trap_request) >> _debug_id_shift) & right_n_bits(_debug_id_bits)); |
301 else | 301 else |
302 // standard action for unloaded CP entry | 302 // standard action for unloaded CP entry |
303 return 0; | 303 return 0; |
304 } | 304 } |
305 static int trap_request_index(int trap_request) { | 305 static int trap_request_index(int trap_request) { |