1.1 --- a/src/cpu/x86/vm/x86_64.ad Mon Mar 24 11:51:40 2014 -0700 1.2 +++ b/src/cpu/x86/vm/x86_64.ad Tue Mar 25 12:54:21 2014 -0700 1.3 @@ -1439,66 +1439,9 @@ 1.4 return MachNode::size(ra_); // too many variables; just compute it 1.5 // the hard way 1.6 } 1.7 - 1.8 + 1.9 1.10 //============================================================================= 1.11 -uint size_exception_handler() 1.12 -{ 1.13 - // NativeCall instruction size is the same as NativeJump. 1.14 - // Note that this value is also credited (in output.cpp) to 1.15 - // the size of the code section. 1.16 - return NativeJump::instruction_size; 1.17 -} 1.18 - 1.19 -// Emit exception handler code. 1.20 -int emit_exception_handler(CodeBuffer& cbuf) 1.21 -{ 1.22 - 1.23 - // Note that the code buffer's insts_mark is always relative to insts. 1.24 - // That's why we must use the macroassembler to generate a handler. 1.25 - MacroAssembler _masm(&cbuf); 1.26 - address base = 1.27 - __ start_a_stub(size_exception_handler()); 1.28 - if (base == NULL) return 0; // CodeBuffer::expand failed 1.29 - int offset = __ offset(); 1.30 - __ jump(RuntimeAddress(OptoRuntime::exception_blob()->entry_point())); 1.31 - assert(__ offset() - offset <= (int) size_exception_handler(), "overflow"); 1.32 - __ end_a_stub(); 1.33 - return offset; 1.34 -} 1.35 - 1.36 -uint size_deopt_handler() 1.37 -{ 1.38 - // three 5 byte instructions 1.39 - return 15; 1.40 -} 1.41 - 1.42 -// Emit deopt handler code. 1.43 -int emit_deopt_handler(CodeBuffer& cbuf) 1.44 -{ 1.45 - 1.46 - // Note that the code buffer's insts_mark is always relative to insts. 1.47 - // That's why we must use the macroassembler to generate a handler. 1.48 - MacroAssembler _masm(&cbuf); 1.49 - address base = 1.50 - __ start_a_stub(size_deopt_handler()); 1.51 - if (base == NULL) return 0; // CodeBuffer::expand failed 1.52 - int offset = __ offset(); 1.53 - address the_pc = (address) __ pc(); 1.54 - Label next; 1.55 - // push a "the_pc" on the stack without destroying any registers 1.56 - // as they all may be live. 1.57 - 1.58 - // push address of "next" 1.59 - __ call(next, relocInfo::none); // reloc none is fine since it is a disp32 1.60 - __ bind(next); 1.61 - // adjust it so it matches "the_pc" 1.62 - __ subptr(Address(rsp, 0), __ offset() - offset); 1.63 - __ jump(RuntimeAddress(SharedRuntime::deopt_blob()->unpack())); 1.64 - assert(__ offset() - offset <= (int) size_deopt_handler(), "overflow"); 1.65 - __ end_a_stub(); 1.66 - return offset; 1.67 -} 1.68 1.69 int Matcher::regnum_to_fpu_offset(int regnum) 1.70 {