src/cpu/mips/vm/macroAssembler_mips.cpp

changeset 7995
67882e9d8b35
parent 6886
2fa8027581f6
child 7997
6cbff0651f1a
equal deleted inserted replaced
7994:04ff2f6cd0eb 7995:67882e9d8b35
1193 1193
1194 // restore the thread (cannot use the pushed argument since arguments 1194 // restore the thread (cannot use the pushed argument since arguments
1195 // may be overwritten by C code generated by an optimizing compiler); 1195 // may be overwritten by C code generated by an optimizing compiler);
1196 // however can use the register value directly if it is callee saved. 1196 // however can use the register value directly if it is callee saved.
1197 #ifndef OPT_THREAD 1197 #ifndef OPT_THREAD
1198 if (java_thread >=S0 && java_thread <=S7) { 1198 get_thread(java_thread);
1199 #else
1199 #ifdef ASSERT 1200 #ifdef ASSERT
1200 { Label L; 1201 {
1201 get_thread(AT); 1202 Label L;
1202 beq(java_thread, AT, L); 1203 get_thread(AT);
1203 delayed()->nop(); 1204 beq(java_thread, AT, L);
1204 stop("MacroAssembler::call_VM_base: edi not callee saved?"); 1205 delayed()->nop();
1205 bind(L); 1206 stop("MacroAssembler::call_VM_base: edi not callee saved?");
1206 } 1207 bind(L);
1207 #endif 1208 }
1208 } else { 1209 #endif
1209 get_thread(java_thread);
1210 }
1211 #endif 1210 #endif
1212 1211
1213 // discard thread and arguments 1212 // discard thread and arguments
1214 ld_ptr(SP, java_thread, in_bytes(JavaThread::last_Java_sp_offset())); 1213 ld_ptr(SP, java_thread, in_bytes(JavaThread::last_Java_sp_offset()));
1215 // reset last Java frame 1214 // reset last Java frame

mercurial