comparison src/share/vm/interpreter/interpreterRuntime.cpp @ 1506:2338d41fbd81

6943304: remove tagged stack interpreter Reviewed-by: coleenp, never, gbenson
author twisti
date Fri, 30 Apr 2010 08:37:24 -0700
parents 6deeaebad47a
children cd5dbf694d45
comparison
equal deleted inserted replaced
1505:0c5b3cf3c1f5 1506:2338d41fbd81
1065 // We assume that the two halves of longs/doubles are stored in interpreter 1065 // We assume that the two halves of longs/doubles are stored in interpreter
1066 // stack slots in platform-endian order. 1066 // stack slots in platform-endian order.
1067 jlong_accessor u; 1067 jlong_accessor u;
1068 jint* newval = (jint*)value; 1068 jint* newval = (jint*)value;
1069 u.words[0] = newval[0]; 1069 u.words[0] = newval[0];
1070 u.words[1] = newval[Interpreter::stackElementWords()]; // skip if tag 1070 u.words[1] = newval[Interpreter::stackElementWords]; // skip if tag
1071 fvalue.j = u.long_value; 1071 fvalue.j = u.long_value;
1072 #endif // _LP64 1072 #endif // _LP64
1073 1073
1074 Handle h_obj; 1074 Handle h_obj;
1075 if (!is_static) { 1075 if (!is_static) {
1250 methodHandle mh(thread, fr.interpreter_frame_method()); 1250 methodHandle mh(thread, fr.interpreter_frame_method());
1251 Bytecode_invoke* invoke = Bytecode_invoke_at(mh, bci); 1251 Bytecode_invoke* invoke = Bytecode_invoke_at(mh, bci);
1252 ArgumentSizeComputer asc(invoke->signature()); 1252 ArgumentSizeComputer asc(invoke->signature());
1253 int size_of_arguments = (asc.size() + (invoke->has_receiver() ? 1 : 0)); // receiver 1253 int size_of_arguments = (asc.size() + (invoke->has_receiver() ? 1 : 0)); // receiver
1254 Copy::conjoint_bytes(src_address, dest_address, 1254 Copy::conjoint_bytes(src_address, dest_address,
1255 size_of_arguments * Interpreter::stackElementSize()); 1255 size_of_arguments * Interpreter::stackElementSize);
1256 IRT_END 1256 IRT_END
1257 #endif 1257 #endif