src/cpu/x86/vm/x86_64.ad

changeset 6517
a433eb716ce1
parent 6506
f040cf9fc9c0
child 6518
62c54fcc0a35
     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  {

mercurial