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