Request for reviews (XXL): 6943304: remove tagged stack interpreter
Gary Benson
gbenson at redhat.com
Wed Apr 28 09:02:08 PDT 2010
Works for me with the attached changes.
Cheers,
Gary
Christian Thalinger wrote:
> http://cr.openjdk.java.net/~twisti/6943304/webrev.01/
>
> 6943304: remove tagged stack interpreter
> Reviewed-by:
>
> 4734748 introduced the tagged stack interpreter (TaggedStackInterpreter)
> to find the source of some bugs back then. Since it failed some JCK
> tests it was never used as default or even tested and so it started
> bit-rotting. Recent JSR 292 changes didn't implement the tagged stack
> interpreter anymore and other ongoing porting for different platforms
> and features would need to implemented it too. We decided to drop it.
>
> Testing: JPRT
>
> src/cpu/sparc/vm/assembler_sparc.cpp
> src/cpu/sparc/vm/cppInterpreter_sparc.hpp
> src/cpu/sparc/vm/frame_sparc.cpp
> src/cpu/sparc/vm/interp_masm_sparc.cpp
> src/cpu/sparc/vm/interp_masm_sparc.hpp
> src/cpu/sparc/vm/interpreterRT_sparc.cpp
> src/cpu/sparc/vm/interpreter_sparc.hpp
> src/cpu/sparc/vm/sharedRuntime_sparc.cpp
> src/cpu/sparc/vm/stubGenerator_sparc.cpp
> src/cpu/sparc/vm/templateInterpreter_sparc.cpp
> src/cpu/sparc/vm/templateInterpreter_sparc.hpp
> src/cpu/sparc/vm/templateTable_sparc.cpp
> src/cpu/x86/vm/assembler_x86.cpp
> src/cpu/x86/vm/cppInterpreter_x86.hpp
> src/cpu/x86/vm/frame_x86.cpp
> src/cpu/x86/vm/interp_masm_x86_32.cpp
> src/cpu/x86/vm/interp_masm_x86_32.hpp
> src/cpu/x86/vm/interp_masm_x86_64.cpp
> src/cpu/x86/vm/interp_masm_x86_64.hpp
> src/cpu/x86/vm/interpreterRT_x86_32.cpp
> src/cpu/x86/vm/interpreterRT_x86_64.cpp
> src/cpu/x86/vm/interpreter_x86.hpp
> src/cpu/x86/vm/interpreter_x86_32.cpp
> src/cpu/x86/vm/methodHandles_x86.cpp
> src/cpu/x86/vm/sharedRuntime_x86_32.cpp
> src/cpu/x86/vm/sharedRuntime_x86_64.cpp
> src/cpu/x86/vm/stubGenerator_x86_32.cpp
> src/cpu/x86/vm/stubGenerator_x86_64.cpp
> src/cpu/x86/vm/templateInterpreter_x86.hpp
> src/cpu/x86/vm/templateInterpreter_x86_32.cpp
> src/cpu/x86/vm/templateInterpreter_x86_64.cpp
> src/cpu/x86/vm/templateTable_x86_32.cpp
> src/cpu/x86/vm/templateTable_x86_64.cpp
> src/cpu/zero/vm/interpreter_zero.hpp
> src/os_cpu/linux_x86/vm/globals_linux_x86.hpp
> src/os_cpu/solaris_x86/vm/globals_solaris_x86.hpp
> src/share/vm/interpreter/abstractInterpreter.hpp
> src/share/vm/interpreter/bytecodeInterpreter.cpp
> src/share/vm/interpreter/interpreterRuntime.cpp
> src/share/vm/oops/methodOop.cpp
> src/share/vm/prims/methodHandles.hpp
> src/share/vm/runtime/arguments.cpp
> src/share/vm/runtime/frame.cpp
> src/share/vm/runtime/frame.hpp
> src/share/vm/runtime/globals.hpp
> src/share/vm/runtime/javaCalls.cpp
> src/share/vm/runtime/javaCalls.hpp
> src/share/vm/runtime/sharedRuntime.cpp
> src/share/vm/runtime/vframe.cpp
> src/share/vm/runtime/vframeArray.cpp
--
http://gbenson.net/
-------------- next part --------------
diff -ru hotspot.orig/src/cpu/zero/vm/interpreter_zero.hpp hotspot/src/cpu/zero/vm/interpreter_zero.hpp
--- hotspot.orig/src/cpu/zero/vm/interpreter_zero.hpp 2010-04-28 15:58:09.000000000 +0100
+++ hotspot/src/cpu/zero/vm/interpreter_zero.hpp 2010-04-28 16:06:08.000000000 +0100
@@ -36,14 +36,14 @@
public:
static int expr_index_at(int i) {
- return stackElementWords() * i;
+ return stackElementWords * i;
}
static int expr_offset_in_bytes(int i) {
- return stackElementSize() * i;
+ return stackElementSize * i;
}
static int local_index_at(int i) {
assert(i <= 0, "local direction already negated");
- return stackElementWords() * i;
+ return stackElementWords * i;
}
diff -ru hotspot.orig/src/share/vm/interpreter/bytecodeInterpreter.cpp hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
--- hotspot.orig/src/share/vm/interpreter/bytecodeInterpreter.cpp 2010-04-28 15:58:09.000000000 +0100
+++ hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp 2010-04-28 16:11:42.000000000 +0100
@@ -189,7 +189,7 @@
// JavaStack Implementation
#define MORE_STACK(count) \
- (topOfStack -= ((count) * Interpreter::stackElementWords()))
+ (topOfStack -= ((count) * Interpreter::stackElementWords))
#define UPDATE_PC(opsize) {pc += opsize; }
@@ -1950,8 +1950,8 @@
jint size = STACK_INT(-1);
// stack grows down, dimensions are up!
jint *dimarray =
- (jint*)&topOfStack[dims * Interpreter::stackElementWords()+
- Interpreter::stackElementWords()-1];
+ (jint*)&topOfStack[dims * Interpreter::stackElementWords+
+ Interpreter::stackElementWords-1];
//adjust pointer to start of stack element
CALL_VM(InterpreterRuntime::multianewarray(THREAD, dimarray),
handle_exception);
@@ -2375,7 +2375,7 @@
assert(except_oop(), "No exception to process");
intptr_t continuation_bci;
// expression stack is emptied
- topOfStack = istate->stack_base() - Interpreter::stackElementWords();
+ topOfStack = istate->stack_base() - Interpreter::stackElementWords;
CALL_VM(continuation_bci = (intptr_t)InterpreterRuntime::exception_handler_for_exception(THREAD, except_oop()),
handle_exception);
diff -ru hotspot.orig/src/share/vm/interpreter/bytecodeInterpreter.hpp hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp
--- hotspot.orig/src/share/vm/interpreter/bytecodeInterpreter.hpp 2010-02-19 11:34:46.000000000 +0000
+++ hotspot/src/share/vm/interpreter/bytecodeInterpreter.hpp 2010-04-28 16:09:30.000000000 +0100
@@ -510,8 +510,6 @@
static jdouble stack_double(intptr_t *tos, int offset);
static jlong stack_long(intptr_t *tos, int offset);
-static void tag_stack(intptr_t *tos, frame::Tag tag, int offset);
-
// only used for value types
static void set_stack_slot(intptr_t *tos, address value, int offset);
static void set_stack_int(intptr_t *tos, int value, int offset);
@@ -537,8 +535,6 @@
static address locals_long_at(intptr_t* locals, int offset);
static address locals_double_at(intptr_t* locals, int offset);
-static void tag_locals(intptr_t *locals, frame::Tag tag, int offset);
-
static void set_locals_slot(intptr_t *locals, address value, int offset);
static void set_locals_int(intptr_t *locals, jint value, int offset);
static void set_locals_float(intptr_t *locals, jfloat value, int offset);
@@ -557,8 +553,6 @@
static void copy_stack_slot(intptr_t *tos, int from_offset, int to_offset);
#ifndef PRODUCT
-static void verify_locals_tag(intptr_t *locals, frame::Tag tag, int offset);
-static void verify_stack_tag(intptr_t *tos, frame::Tag tag, int offset);
static const char* C_msg(BytecodeInterpreter::messages msg);
void print();
#endif // PRODUCT
More information about the hotspot-dev
mailing list