src/cpu/x86/vm/templateInterpreter_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8004128_2 Sdiff src/cpu/x86/vm

src/cpu/x86/vm/templateInterpreter_x86_64.cpp

Print this page




  34 #include "oops/method.hpp"
  35 #include "oops/oop.inline.hpp"
  36 #include "prims/jvmtiExport.hpp"
  37 #include "prims/jvmtiThreadState.hpp"
  38 #include "runtime/arguments.hpp"
  39 #include "runtime/deoptimization.hpp"
  40 #include "runtime/frame.inline.hpp"
  41 #include "runtime/sharedRuntime.hpp"
  42 #include "runtime/stubRoutines.hpp"
  43 #include "runtime/synchronizer.hpp"
  44 #include "runtime/timer.hpp"
  45 #include "runtime/vframeArray.hpp"
  46 #include "utilities/debug.hpp"
  47 #include "utilities/macros.hpp"
  48 
  49 #define __ _masm->
  50 
  51 #ifndef CC_INTERP
  52 
  53 const int method_offset = frame::interpreter_frame_method_offset * wordSize;
  54 const int bci_offset    = frame::interpreter_frame_bcx_offset    * wordSize;
  55 const int locals_offset = frame::interpreter_frame_locals_offset * wordSize;
  56 
  57 //-----------------------------------------------------------------------------
  58 
  59 address TemplateInterpreterGenerator::generate_StackOverflowError_handler() {
  60   address entry = __ pc();
  61 
  62 #ifdef ASSERT
  63   {
  64     Label L;
  65     __ lea(rax, Address(rbp,
  66                         frame::interpreter_frame_monitor_block_top_offset *
  67                         wordSize));
  68     __ cmpptr(rax, rsp); // rax = maximal rsp for current rbp (stack
  69                          // grows negative)
  70     __ jcc(Assembler::aboveEqual, L); // check if frame is complete
  71     __ stop ("interpreter frame not set up");
  72     __ bind(L);
  73   }
  74 #endif // ASSERT




  34 #include "oops/method.hpp"
  35 #include "oops/oop.inline.hpp"
  36 #include "prims/jvmtiExport.hpp"
  37 #include "prims/jvmtiThreadState.hpp"
  38 #include "runtime/arguments.hpp"
  39 #include "runtime/deoptimization.hpp"
  40 #include "runtime/frame.inline.hpp"
  41 #include "runtime/sharedRuntime.hpp"
  42 #include "runtime/stubRoutines.hpp"
  43 #include "runtime/synchronizer.hpp"
  44 #include "runtime/timer.hpp"
  45 #include "runtime/vframeArray.hpp"
  46 #include "utilities/debug.hpp"
  47 #include "utilities/macros.hpp"
  48 
  49 #define __ _masm->
  50 
  51 #ifndef CC_INTERP
  52 
  53 const int method_offset = frame::interpreter_frame_method_offset * wordSize;
  54 const int bcp_offset    = frame::interpreter_frame_bcp_offset    * wordSize;
  55 const int locals_offset = frame::interpreter_frame_locals_offset * wordSize;
  56 
  57 //-----------------------------------------------------------------------------
  58 
  59 address TemplateInterpreterGenerator::generate_StackOverflowError_handler() {
  60   address entry = __ pc();
  61 
  62 #ifdef ASSERT
  63   {
  64     Label L;
  65     __ lea(rax, Address(rbp,
  66                         frame::interpreter_frame_monitor_block_top_offset *
  67                         wordSize));
  68     __ cmpptr(rax, rsp); // rax = maximal rsp for current rbp (stack
  69                          // grows negative)
  70     __ jcc(Assembler::aboveEqual, L); // check if frame is complete
  71     __ stop ("interpreter frame not set up");
  72     __ bind(L);
  73   }
  74 #endif // ASSERT


src/cpu/x86/vm/templateInterpreter_x86_64.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File