< prev index next >

src/hotspot/share/interpreter/bytecodeInterpreter.cpp

Print this page




  30 #include "interpreter/bytecodeInterpreter.inline.hpp"
  31 #include "interpreter/bytecodeInterpreterProfiling.hpp"
  32 #include "interpreter/interpreter.hpp"
  33 #include "interpreter/interpreterRuntime.hpp"
  34 #include "logging/log.hpp"
  35 #include "memory/resourceArea.hpp"
  36 #include "oops/constantPool.inline.hpp"
  37 #include "oops/cpCache.inline.hpp"
  38 #include "oops/method.inline.hpp"
  39 #include "oops/methodCounters.hpp"
  40 #include "oops/objArrayKlass.hpp"
  41 #include "oops/objArrayOop.inline.hpp"
  42 #include "oops/oop.inline.hpp"
  43 #include "oops/typeArrayOop.inline.hpp"
  44 #include "prims/jvmtiExport.hpp"
  45 #include "prims/jvmtiThreadState.hpp"
  46 #include "runtime/atomic.hpp"
  47 #include "runtime/biasedLocking.hpp"
  48 #include "runtime/frame.inline.hpp"
  49 #include "runtime/handles.inline.hpp"
  50 #include "runtime/interfaceSupport.hpp"
  51 #include "runtime/orderAccess.inline.hpp"
  52 #include "runtime/sharedRuntime.hpp"
  53 #include "runtime/threadCritical.hpp"
  54 #include "utilities/exceptions.hpp"
  55 
  56 // no precompiled headers
  57 #ifdef CC_INTERP
  58 
  59 /*
  60  * USELABELS - If using GCC, then use labels for the opcode dispatching
  61  * rather -then a switch statement. This improves performance because it
  62  * gives us the opportunity to have the instructions that calculate the
  63  * next opcode to jump to be intermixed with the rest of the instructions
  64  * that implement the opcode (see UPDATE_PC_AND_TOS_AND_CONTINUE macro).
  65  */
  66 #undef USELABELS
  67 #ifdef __GNUC__
  68 /*
  69    ASSERT signifies debugging. It is much easier to step thru bytecodes if we
  70    don't use the computed goto approach.




  30 #include "interpreter/bytecodeInterpreter.inline.hpp"
  31 #include "interpreter/bytecodeInterpreterProfiling.hpp"
  32 #include "interpreter/interpreter.hpp"
  33 #include "interpreter/interpreterRuntime.hpp"
  34 #include "logging/log.hpp"
  35 #include "memory/resourceArea.hpp"
  36 #include "oops/constantPool.inline.hpp"
  37 #include "oops/cpCache.inline.hpp"
  38 #include "oops/method.inline.hpp"
  39 #include "oops/methodCounters.hpp"
  40 #include "oops/objArrayKlass.hpp"
  41 #include "oops/objArrayOop.inline.hpp"
  42 #include "oops/oop.inline.hpp"
  43 #include "oops/typeArrayOop.inline.hpp"
  44 #include "prims/jvmtiExport.hpp"
  45 #include "prims/jvmtiThreadState.hpp"
  46 #include "runtime/atomic.hpp"
  47 #include "runtime/biasedLocking.hpp"
  48 #include "runtime/frame.inline.hpp"
  49 #include "runtime/handles.inline.hpp"
  50 #include "runtime/interfaceSupport.inline.hpp"
  51 #include "runtime/orderAccess.inline.hpp"
  52 #include "runtime/sharedRuntime.hpp"
  53 #include "runtime/threadCritical.hpp"
  54 #include "utilities/exceptions.hpp"
  55 
  56 // no precompiled headers
  57 #ifdef CC_INTERP
  58 
  59 /*
  60  * USELABELS - If using GCC, then use labels for the opcode dispatching
  61  * rather -then a switch statement. This improves performance because it
  62  * gives us the opportunity to have the instructions that calculate the
  63  * next opcode to jump to be intermixed with the rest of the instructions
  64  * that implement the opcode (see UPDATE_PC_AND_TOS_AND_CONTINUE macro).
  65  */
  66 #undef USELABELS
  67 #ifdef __GNUC__
  68 /*
  69    ASSERT signifies debugging. It is much easier to step thru bytecodes if we
  70    don't use the computed goto approach.


< prev index next >