Mercurial > hg > graal-jvmci-8
comparison src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp @ 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 | 22cee0ee8927 |
children | 701a83c86f28 |
comparison
equal
deleted
inserted
replaced
4806:eaa9557116a2 | 4808:898522ae3c32 |
---|---|
389 int offset = code_offset(); | 389 int offset = code_offset(); |
390 | 390 |
391 __ call(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id), relocInfo::runtime_call_type); | 391 __ call(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id), relocInfo::runtime_call_type); |
392 __ delayed()->nop(); | 392 __ delayed()->nop(); |
393 __ should_not_reach_here(); | 393 __ should_not_reach_here(); |
394 assert(code_offset() - offset <= exception_handler_size, "overflow"); | 394 guarantee(code_offset() - offset <= exception_handler_size, "overflow"); |
395 __ end_a_stub(); | 395 __ end_a_stub(); |
396 | 396 |
397 return offset; | 397 return offset; |
398 } | 398 } |
399 | 399 |
472 | 472 |
473 int offset = code_offset(); | 473 int offset = code_offset(); |
474 AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack()); | 474 AddressLiteral deopt_blob(SharedRuntime::deopt_blob()->unpack()); |
475 __ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp | 475 __ JUMP(deopt_blob, G3_scratch, 0); // sethi;jmp |
476 __ delayed()->nop(); | 476 __ delayed()->nop(); |
477 assert(code_offset() - offset <= deopt_handler_size, "overflow"); | 477 guarantee(code_offset() - offset <= deopt_handler_size, "overflow"); |
478 debug_only(__ stop("should have gone to the caller");) | |
479 __ end_a_stub(); | 478 __ end_a_stub(); |
480 | 479 |
481 return offset; | 480 return offset; |
482 } | 481 } |
483 | 482 |