8247200: assert((unsigned)fpargs < 32)
Reviewed-by: aph, neliasso
This commit is contained in:
parent
a512099313
commit
3839c8656e
@ -1129,13 +1129,11 @@ class ComputeMoveOrder: public StackObj {
|
||||
};
|
||||
|
||||
|
||||
static void rt_call(MacroAssembler* masm, address dest, int gpargs, int fpargs, int type) {
|
||||
static void rt_call(MacroAssembler* masm, address dest) {
|
||||
CodeBlob *cb = CodeCache::find_blob(dest);
|
||||
if (cb) {
|
||||
__ far_call(RuntimeAddress(dest));
|
||||
} else {
|
||||
assert((unsigned)gpargs < 256, "eek!");
|
||||
assert((unsigned)fpargs < 32, "eek!");
|
||||
__ lea(rscratch1, RuntimeAddress(dest));
|
||||
__ blr(rscratch1);
|
||||
__ maybe_isb();
|
||||
@ -1803,33 +1801,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
|
||||
__ lea(rscratch2, Address(rthread, JavaThread::thread_state_offset()));
|
||||
__ stlrw(rscratch1, rscratch2);
|
||||
|
||||
{
|
||||
int return_type = 0;
|
||||
switch (ret_type) {
|
||||
case T_VOID: break;
|
||||
return_type = 0; break;
|
||||
case T_CHAR:
|
||||
case T_BYTE:
|
||||
case T_SHORT:
|
||||
case T_INT:
|
||||
case T_BOOLEAN:
|
||||
case T_LONG:
|
||||
return_type = 1; break;
|
||||
case T_ARRAY:
|
||||
case T_OBJECT:
|
||||
return_type = 1; break;
|
||||
case T_FLOAT:
|
||||
return_type = 2; break;
|
||||
case T_DOUBLE:
|
||||
return_type = 3; break;
|
||||
default:
|
||||
ShouldNotReachHere();
|
||||
}
|
||||
rt_call(masm, native_func,
|
||||
int_args + 2, // AArch64 passes up to 8 args in int registers
|
||||
float_args, // and up to 8 float args
|
||||
return_type);
|
||||
}
|
||||
rt_call(masm, native_func);
|
||||
|
||||
__ bind(native_return);
|
||||
|
||||
@ -2039,7 +2011,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
|
||||
__ ldr(r19, Address(rthread, in_bytes(Thread::pending_exception_offset())));
|
||||
__ str(zr, Address(rthread, in_bytes(Thread::pending_exception_offset())));
|
||||
|
||||
rt_call(masm, CAST_FROM_FN_PTR(address, SharedRuntime::complete_monitor_unlocking_C), 3, 0, 1);
|
||||
rt_call(masm, CAST_FROM_FN_PTR(address, SharedRuntime::complete_monitor_unlocking_C));
|
||||
|
||||
#ifdef ASSERT
|
||||
{
|
||||
@ -2066,7 +2038,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
|
||||
|
||||
__ bind(reguard);
|
||||
save_native_result(masm, ret_type, stack_slots);
|
||||
rt_call(masm, CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages), 0, 0, 0);
|
||||
rt_call(masm, CAST_FROM_FN_PTR(address, SharedRuntime::reguard_yellow_pages));
|
||||
restore_native_result(masm, ret_type, stack_slots);
|
||||
// and continue
|
||||
__ b(reguard_done);
|
||||
|
Loading…
x
Reference in New Issue
Block a user