< prev index next >

src/cpu/sparc/vm/jniFastGetField_sparc.cpp

Print this page

        

*** 26,35 **** --- 26,36 ---- #include "asm/macroAssembler.inline.hpp" #include "memory/resourceArea.hpp" #include "prims/jniFastGetField.hpp" #include "prims/jvm_misc.hpp" #include "runtime/safepoint.hpp" + #include "runtime/jfieldIDWorkaround.hpp" // TSO ensures that loads are blocking and ordered with respect to // to earlier loads, so we don't need LoadLoad membars. #define __ masm->
*** 38,48 **** // Common register usage: // O0: env // O1: obj // O2: jfieldID ! // O4: offset (O2 >> 2) // G4: old safepoint counter address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) { const char *name; switch (type) { --- 39,49 ---- // Common register usage: // O0: env // O1: obj // O2: jfieldID ! // O4: offset (O2 >> 3) // G4: old safepoint counter address JNI_FastGetField::generate_fast_get_int_field0(BasicType type) { const char *name; switch (type) {
*** 65,75 **** __ sethi (cnt_addrlit, O3); Address cnt_addr(O3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, 2, O4); __ ld_ptr (O1, 0, O5); assert(count < LIST_CAPACITY, "LIST_CAPACITY too small"); speculative_load_pclist[count] = __ pc(); switch (type) { --- 66,76 ---- __ sethi (cnt_addrlit, O3); Address cnt_addr(O3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, jfieldIDWorkaround::offset_shift, O4); __ ld_ptr (O1, 0, O5); assert(count < LIST_CAPACITY, "LIST_CAPACITY too small"); speculative_load_pclist[count] = __ pc(); switch (type) {
*** 144,154 **** __ sethi (cnt_addrlit, G3); Address cnt_addr(G3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, 2, O4); __ ld_ptr (O1, 0, O5); __ add (O5, O4, O5); #ifndef _LP64 assert(count < LIST_CAPACITY-1, "LIST_CAPACITY too small"); --- 145,155 ---- __ sethi (cnt_addrlit, G3); Address cnt_addr(G3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, jfieldIDWorkaround::offset_shift, O4); __ ld_ptr (O1, 0, O5); __ add (O5, O4, O5); #ifndef _LP64 assert(count < LIST_CAPACITY-1, "LIST_CAPACITY too small");
*** 216,226 **** __ sethi (cnt_addrlit, O3); Address cnt_addr(O3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, 2, O4); __ ld_ptr (O1, 0, O5); assert(count < LIST_CAPACITY, "LIST_CAPACITY too small"); speculative_load_pclist[count] = __ pc(); switch (type) { --- 217,227 ---- __ sethi (cnt_addrlit, O3); Address cnt_addr(O3, cnt_addrlit.low10()); __ ld (cnt_addr, G4); __ andcc (G4, 1, G0); __ br (Assembler::notZero, false, Assembler::pn, label1); ! __ delayed()->srl (O2, jfieldIDWorkaround::offset_shift, O4); __ ld_ptr (O1, 0, O5); assert(count < LIST_CAPACITY, "LIST_CAPACITY too small"); speculative_load_pclist[count] = __ pc(); switch (type) {
< prev index next >