94 # include "stubRoutines_sparc.hpp"
95 #elif defined TARGET_ARCH_MODEL_zero
96 # include "stubRoutines_zero.hpp"
97 #elif defined TARGET_ARCH_MODEL_ppc_64
98 # include "stubRoutines_ppc_64.hpp"
99 #elif defined TARGET_ARCH_MODEL_aarch64
100 # include "stubRoutines_aarch64.hpp"
101 #endif
102
103 static jint _verify_oop_count;
104 static address _verify_oop_subroutine_entry;
105
106 static address _call_stub_return_address; // the return PC, when returning to a call stub
107 static address _call_stub_entry;
108 static address _forward_exception_entry;
109 static address _catch_exception_entry;
110 static address _throw_AbstractMethodError_entry;
111 static address _throw_IncompatibleClassChangeError_entry;
112 static address _throw_NullPointerException_at_call_entry;
113 static address _throw_StackOverflowError_entry;
114 static address _handler_for_unsafe_access_entry;
115
116 static address _atomic_xchg_entry;
117 static address _atomic_xchg_ptr_entry;
118 static address _atomic_store_entry;
119 static address _atomic_store_ptr_entry;
120 static address _atomic_cmpxchg_entry;
121 static address _atomic_cmpxchg_ptr_entry;
122 static address _atomic_cmpxchg_byte_entry;
123 static address _atomic_cmpxchg_long_entry;
124 static address _atomic_add_entry;
125 static address _atomic_add_ptr_entry;
126 static address _fence_entry;
127 static address _d2i_wrapper;
128 static address _d2l_wrapper;
129
130 static jint _fpu_cntrl_wrd_std;
131 static jint _fpu_cntrl_wrd_24;
132 static jint _fpu_cntrl_wrd_64;
133 static jint _fpu_cntrl_wrd_trunc;
258 typedef void (*CallStub)(
259 address link,
260 intptr_t* result,
261 BasicType result_type,
262 Method* method,
263 address entry_point,
264 intptr_t* parameters,
265 int size_of_parameters,
266 TRAPS
267 );
268
269 static CallStub call_stub() { return CAST_TO_FN_PTR(CallStub, _call_stub_entry); }
270
271 // Exceptions
272 static address forward_exception_entry() { return _forward_exception_entry; }
273 // Implicit exceptions
274 static address throw_AbstractMethodError_entry() { return _throw_AbstractMethodError_entry; }
275 static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; }
276 static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; }
277 static address throw_StackOverflowError_entry() { return _throw_StackOverflowError_entry; }
278
279 // Exceptions during unsafe access - should throw Java exception rather
280 // than crash.
281 static address handler_for_unsafe_access() { return _handler_for_unsafe_access_entry; }
282
283 static address atomic_xchg_entry() { return _atomic_xchg_entry; }
284 static address atomic_xchg_ptr_entry() { return _atomic_xchg_ptr_entry; }
285 static address atomic_store_entry() { return _atomic_store_entry; }
286 static address atomic_store_ptr_entry() { return _atomic_store_ptr_entry; }
287 static address atomic_cmpxchg_entry() { return _atomic_cmpxchg_entry; }
288 static address atomic_cmpxchg_ptr_entry() { return _atomic_cmpxchg_ptr_entry; }
289 static address atomic_cmpxchg_byte_entry() { return _atomic_cmpxchg_byte_entry; }
290 static address atomic_cmpxchg_long_entry() { return _atomic_cmpxchg_long_entry; }
291 static address atomic_add_entry() { return _atomic_add_entry; }
292 static address atomic_add_ptr_entry() { return _atomic_add_ptr_entry; }
293 static address fence_entry() { return _fence_entry; }
294
295 static address d2i_wrapper() { return _d2i_wrapper; }
296 static address d2l_wrapper() { return _d2l_wrapper; }
297 static jint fpu_cntrl_wrd_std() { return _fpu_cntrl_wrd_std; }
|
94 # include "stubRoutines_sparc.hpp"
95 #elif defined TARGET_ARCH_MODEL_zero
96 # include "stubRoutines_zero.hpp"
97 #elif defined TARGET_ARCH_MODEL_ppc_64
98 # include "stubRoutines_ppc_64.hpp"
99 #elif defined TARGET_ARCH_MODEL_aarch64
100 # include "stubRoutines_aarch64.hpp"
101 #endif
102
103 static jint _verify_oop_count;
104 static address _verify_oop_subroutine_entry;
105
106 static address _call_stub_return_address; // the return PC, when returning to a call stub
107 static address _call_stub_entry;
108 static address _forward_exception_entry;
109 static address _catch_exception_entry;
110 static address _throw_AbstractMethodError_entry;
111 static address _throw_IncompatibleClassChangeError_entry;
112 static address _throw_NullPointerException_at_call_entry;
113 static address _throw_StackOverflowError_entry;
114 static address _throw_delayed_StackOverflowError_entry;
115 static address _handler_for_unsafe_access_entry;
116
117 static address _atomic_xchg_entry;
118 static address _atomic_xchg_ptr_entry;
119 static address _atomic_store_entry;
120 static address _atomic_store_ptr_entry;
121 static address _atomic_cmpxchg_entry;
122 static address _atomic_cmpxchg_ptr_entry;
123 static address _atomic_cmpxchg_byte_entry;
124 static address _atomic_cmpxchg_long_entry;
125 static address _atomic_add_entry;
126 static address _atomic_add_ptr_entry;
127 static address _fence_entry;
128 static address _d2i_wrapper;
129 static address _d2l_wrapper;
130
131 static jint _fpu_cntrl_wrd_std;
132 static jint _fpu_cntrl_wrd_24;
133 static jint _fpu_cntrl_wrd_64;
134 static jint _fpu_cntrl_wrd_trunc;
259 typedef void (*CallStub)(
260 address link,
261 intptr_t* result,
262 BasicType result_type,
263 Method* method,
264 address entry_point,
265 intptr_t* parameters,
266 int size_of_parameters,
267 TRAPS
268 );
269
270 static CallStub call_stub() { return CAST_TO_FN_PTR(CallStub, _call_stub_entry); }
271
272 // Exceptions
273 static address forward_exception_entry() { return _forward_exception_entry; }
274 // Implicit exceptions
275 static address throw_AbstractMethodError_entry() { return _throw_AbstractMethodError_entry; }
276 static address throw_IncompatibleClassChangeError_entry(){ return _throw_IncompatibleClassChangeError_entry; }
277 static address throw_NullPointerException_at_call_entry(){ return _throw_NullPointerException_at_call_entry; }
278 static address throw_StackOverflowError_entry() { return _throw_StackOverflowError_entry; }
279 static address throw_delayed_StackOverflowError_entry() { return _throw_delayed_StackOverflowError_entry; }
280
281 // Exceptions during unsafe access - should throw Java exception rather
282 // than crash.
283 static address handler_for_unsafe_access() { return _handler_for_unsafe_access_entry; }
284
285 static address atomic_xchg_entry() { return _atomic_xchg_entry; }
286 static address atomic_xchg_ptr_entry() { return _atomic_xchg_ptr_entry; }
287 static address atomic_store_entry() { return _atomic_store_entry; }
288 static address atomic_store_ptr_entry() { return _atomic_store_ptr_entry; }
289 static address atomic_cmpxchg_entry() { return _atomic_cmpxchg_entry; }
290 static address atomic_cmpxchg_ptr_entry() { return _atomic_cmpxchg_ptr_entry; }
291 static address atomic_cmpxchg_byte_entry() { return _atomic_cmpxchg_byte_entry; }
292 static address atomic_cmpxchg_long_entry() { return _atomic_cmpxchg_long_entry; }
293 static address atomic_add_entry() { return _atomic_add_entry; }
294 static address atomic_add_ptr_entry() { return _atomic_add_ptr_entry; }
295 static address fence_entry() { return _fence_entry; }
296
297 static address d2i_wrapper() { return _d2i_wrapper; }
298 static address d2l_wrapper() { return _d2l_wrapper; }
299 static jint fpu_cntrl_wrd_std() { return _fpu_cntrl_wrd_std; }
|