128 static address _catch_exception_entry; |
128 static address _catch_exception_entry; |
129 static address _throw_AbstractMethodError_entry; |
129 static address _throw_AbstractMethodError_entry; |
130 static address _throw_IncompatibleClassChangeError_entry; |
130 static address _throw_IncompatibleClassChangeError_entry; |
131 static address _throw_NullPointerException_at_call_entry; |
131 static address _throw_NullPointerException_at_call_entry; |
132 static address _throw_StackOverflowError_entry; |
132 static address _throw_StackOverflowError_entry; |
133 static address _throw_WrongMethodTypeException_entry; |
|
134 static address _handler_for_unsafe_access_entry; |
133 static address _handler_for_unsafe_access_entry; |
135 |
134 |
136 static address _atomic_xchg_entry; |
135 static address _atomic_xchg_entry; |
137 static address _atomic_xchg_ptr_entry; |
136 static address _atomic_xchg_ptr_entry; |
138 static address _atomic_store_entry; |
137 static address _atomic_store_entry; |
223 return |
222 return |
224 (_code1 != NULL && _code1->blob_contains(addr)) || |
223 (_code1 != NULL && _code1->blob_contains(addr)) || |
225 (_code2 != NULL && _code2->blob_contains(addr)) ; |
224 (_code2 != NULL && _code2->blob_contains(addr)) ; |
226 } |
225 } |
227 |
226 |
|
227 static CodeBlob* code1() { return _code1; } |
|
228 static CodeBlob* code2() { return _code2; } |
|
229 |
228 // Debugging |
230 // Debugging |
229 static jint verify_oop_count() { return _verify_oop_count; } |
231 static jint verify_oop_count() { return _verify_oop_count; } |
230 static jint* verify_oop_count_addr() { return &_verify_oop_count; } |
232 static jint* verify_oop_count_addr() { return &_verify_oop_count; } |
231 // a subroutine for debugging the GC |
233 // a subroutine for debugging the GC |
232 static address verify_oop_subroutine_entry_address() { return (address)&_verify_oop_subroutine_entry; } |
234 static address verify_oop_subroutine_entry_address() { return (address)&_verify_oop_subroutine_entry; } |
252 // Implicit exceptions |
254 // Implicit exceptions |
253 static address throw_AbstractMethodError_entry() { return _throw_AbstractMethodError_entry; } |
255 static address throw_AbstractMethodError_entry() { return _throw_AbstractMethodError_entry; } |
254 static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; } |
256 static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; } |
255 static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; } |
257 static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; } |
256 static address throw_StackOverflowError_entry() { return _throw_StackOverflowError_entry; } |
258 static address throw_StackOverflowError_entry() { return _throw_StackOverflowError_entry; } |
257 static address throw_WrongMethodTypeException_entry() { return _throw_WrongMethodTypeException_entry; } |
|
258 |
259 |
259 // Exceptions during unsafe access - should throw Java exception rather |
260 // Exceptions during unsafe access - should throw Java exception rather |
260 // than crash. |
261 // than crash. |
261 static address handler_for_unsafe_access() { return _handler_for_unsafe_access_entry; } |
262 static address handler_for_unsafe_access() { return _handler_for_unsafe_access_entry; } |
262 |
263 |