< 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 >