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