OpenJDK / graal / graal-jvmci-8
changeset 4808:898522ae3c32
7131288: COMPILE SKIPPED: deopt handler overflow (retry at different tier)
Summary: 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
author | iveresov |
---|---|
date | Thu, 19 Jan 2012 10:56:51 -0800 |
parents | eaa9557116a2 |
children | 469e0a46f2fe |
files | src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp src/cpu/x86/vm/c1_LIRAssembler_x86.cpp |
diffstat | 3 files changed, 6 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Wed Jan 18 16:18:31 2012 +0100 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp Thu Jan 19 10:56:51 2012 -0800 @@ -391,7 +391,7 @@ __ 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 @@ 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;
--- a/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp Wed Jan 18 16:18:31 2012 +0100 +++ b/src/cpu/sparc/vm/c1_LIRAssembler_sparc.hpp Thu Jan 19 10:56:51 2012 -0800 @@ -69,7 +69,7 @@ #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
--- a/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Wed Jan 18 16:18:31 2012 +0100 +++ b/src/cpu/x86/vm/c1_LIRAssembler_x86.cpp Thu Jan 19 10:56:51 2012 -0800 @@ -406,7 +406,7 @@ // 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 @@ __ 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;