src/cpu/sparc/vm/templateTable_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6474243 Cdiff src/cpu/sparc/vm/templateTable_sparc.cpp
src/cpu/sparc/vm/templateTable_sparc.cpp
Print this page
*** 2083,2093 ****
if (is_static) {
__ clr(Otos_i);
} else {
if (has_tos) {
// save object pointer before call_VM() clobbers it
! __ mov(Otos_i, Lscratch);
} else {
// Load top of stack (do not pop the value off the stack);
__ ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), Otos_i);
}
__ verify_oop(Otos_i);
--- 2083,2093 ----
if (is_static) {
__ clr(Otos_i);
} else {
if (has_tos) {
// save object pointer before call_VM() clobbers it
! __ push_ptr(Otos_i); // put object on tos where GC wants it.
} else {
// Load top of stack (do not pop the value off the stack);
__ ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), Otos_i);
}
__ verify_oop(Otos_i);
*** 2095,2105 ****
// Otos_i: object pointer or NULL if static
// Rcache: cache entry pointer
__ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access),
Otos_i, Rcache);
if (!is_static && has_tos) {
! __ mov(Lscratch, Otos_i); // restore object pointer
__ verify_oop(Otos_i);
}
__ get_cache_and_index_at_bcp(Rcache, index, 1);
__ bind(Label1);
}
--- 2095,2105 ----
// Otos_i: object pointer or NULL if static
// Rcache: cache entry pointer
__ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access),
Otos_i, Rcache);
if (!is_static && has_tos) {
! __ pop_ptr(Otos_i); // restore object pointer
__ verify_oop(Otos_i);
}
__ get_cache_and_index_at_bcp(Rcache, index, 1);
__ bind(Label1);
}
src/cpu/sparc/vm/templateTable_sparc.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File