Mercurial > hg > graal-compiler
comparison src/cpu/x86/vm/c1_LIRAssembler_x86.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 |
---|---|
404 __ verify_not_null_oop(rax); | 404 __ verify_not_null_oop(rax); |
405 | 405 |
406 // search an exception handler (rax: exception oop, rdx: throwing pc) | 406 // search an exception handler (rax: exception oop, rdx: throwing pc) |
407 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id))); | 407 __ call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id))); |
408 __ should_not_reach_here(); | 408 __ should_not_reach_here(); |
409 assert(code_offset() - offset <= exception_handler_size, "overflow"); | 409 guarantee(code_offset() - offset <= exception_handler_size, "overflow"); |
410 __ end_a_stub(); | 410 __ end_a_stub(); |
411 | 411 |
412 return offset; | 412 return offset; |
413 } | 413 } |
414 | 414 |
488 int offset = code_offset(); | 488 int offset = code_offset(); |
489 InternalAddress here(__ pc()); | 489 InternalAddress here(__ pc()); |
490 | 490 |
491 __ pushptr(here.addr()); | 491 __ pushptr(here.addr()); |
492 __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); | 492 __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); |
493 | 493 guarantee(code_offset() - offset <= deopt_handler_size, "overflow"); |
494 assert(code_offset() - offset <= deopt_handler_size, "overflow"); | |
495 __ end_a_stub(); | 494 __ end_a_stub(); |
496 | 495 |
497 return offset; | 496 return offset; |
498 } | 497 } |
499 | 498 |