< prev index next >
src/cpu/x86/vm/x86.ad
Print this page
*** 548,558 ****
// Note that the code buffer's insts_mark is always relative to insts.
// That's why we must use the macroassembler to generate a handler.
MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_exception_handler());
! if (base == NULL) return 0; // CodeBuffer::expand failed
int offset = __ offset();
__ jump(RuntimeAddress(OptoRuntime::exception_blob()->entry_point()));
assert(__ offset() - offset <= (int) size_exception_handler(), "overflow");
__ end_a_stub();
return offset;
--- 548,561 ----
// Note that the code buffer's insts_mark is always relative to insts.
// That's why we must use the macroassembler to generate a handler.
MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_exception_handler());
! if (base == NULL) {
! ciEnv::current()->record_failure("CodeCache is full");
! return 0; // CodeBuffer::expand failed
! }
int offset = __ offset();
__ jump(RuntimeAddress(OptoRuntime::exception_blob()->entry_point()));
assert(__ offset() - offset <= (int) size_exception_handler(), "overflow");
__ end_a_stub();
return offset;
*** 563,573 ****
// Note that the code buffer's insts_mark is always relative to insts.
// That's why we must use the macroassembler to generate a handler.
MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_deopt_handler());
! if (base == NULL) return 0; // CodeBuffer::expand failed
int offset = __ offset();
#ifdef _LP64
address the_pc = (address) __ pc();
Label next;
--- 566,579 ----
// Note that the code buffer's insts_mark is always relative to insts.
// That's why we must use the macroassembler to generate a handler.
MacroAssembler _masm(&cbuf);
address base = __ start_a_stub(size_deopt_handler());
! if (base == NULL) {
! ciEnv::current()->record_failure("CodeCache is full");
! return 0; // CodeBuffer::expand failed
! }
int offset = __ offset();
#ifdef _LP64
address the_pc = (address) __ pc();
Label next;
< prev index next >