7131288: COMPILE SKIPPED: deopt handler overflow (retry at different tier)
Fix exception handler stub size, enable guarantees to check for the correct deopt and exception stub sizes in the future Reviewed-by: kvn, never, twisti
This commit is contained in:
parent
b11b6e4dda
commit
c21cf7cf4b
@ -391,7 +391,7 @@ int LIR_Assembler::emit_exception_handler() {
|
||||
__ call(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id), relocInfo::runtime_call_type);
|
||||
__ delayed()->nop();
|
||||
__ should_not_reach_here();
|
||||
assert(code_offset() - offset <= exception_handler_size, "overflow");
|
||||
guarantee(code_offset() - offset <= exception_handler_size, "overflow");
|
||||
__ end_a_stub();
|
||||
|
||||
return offset;
|
||||
@ -474,8 +474,7 @@ int LIR_Assembler::emit_deopt_handler() {
|
||||
AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack());
|
||||
__ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp
|
||||
__ delayed()->nop();
|
||||
assert(code_offset() - offset <= deopt_handler_size, "overflow");
|
||||
debug_only(__ stop("should have gone to the caller");)
|
||||
guarantee(code_offset() - offset <= deopt_handler_size, "overflow");
|
||||
__ end_a_stub();
|
||||
|
||||
return offset;
|
||||
|
@ -69,7 +69,7 @@ enum {
|
||||
#else
|
||||
call_stub_size = 20,
|
||||
#endif // _LP64
|
||||
exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4),
|
||||
deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(10*4) };
|
||||
exception_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(128),
|
||||
deopt_handler_size = DEBUG_ONLY(1*K) NOT_DEBUG(64) };
|
||||
|
||||
#endif // CPU_SPARC_VM_C1_LIRASSEMBLER_SPARC_HPP
|
||||
|
@ -406,7 +406,7 @@ int LIR_Assembler::emit_exception_handler() {
|
||||
// search an exception handler (rax: exception oop, rdx: throwing pc)
|
||||
__ call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id)));
|
||||
__ should_not_reach_here();
|
||||
assert(code_offset() - offset <= exception_handler_size, "overflow");
|
||||
guarantee(code_offset() - offset <= exception_handler_size, "overflow");
|
||||
__ end_a_stub();
|
||||
|
||||
return offset;
|
||||
@ -490,8 +490,7 @@ int LIR_Assembler::emit_deopt_handler() {
|
||||
|
||||
__ pushptr(here.addr());
|
||||
__ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack()));
|
||||
|
||||
assert(code_offset() - offset <= deopt_handler_size, "overflow");
|
||||
guarantee(code_offset() - offset <= deopt_handler_size, "overflow");
|
||||
__ end_a_stub();
|
||||
|
||||
return offset;
|
||||
|
Loading…
x
Reference in New Issue
Block a user