src/share/vm/interpreter/interpreterRuntime.cpp

changeset 1861
2338d41fbd81
parent 1648
6deeaebad47a
child 1862
cd5dbf694d45
equal deleted inserted replaced
1860:0c5b3cf3c1f5 1861: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

mercurial