< prev index next >

src/cpu/aarch64/vm/jniFastGetField_aarch64.cpp

Print this page

        

@@ -27,10 +27,11 @@
 #include "asm/macroAssembler.hpp"
 #include "memory/resourceArea.hpp"
 #include "prims/jniFastGetField.hpp"
 #include "prims/jvm_misc.hpp"
 #include "runtime/safepoint.hpp"
+#include "runtime/jfieldIDWorkaround.hpp"
 
 #define __ masm->
 
 #define BUFFER_SIZE 30*wordSize
 

@@ -80,11 +81,11 @@
   __ eor(robj, c_rarg1, rcounter);
   __ eor(robj, robj, rcounter);               // obj, since
                                               // robj ^ rcounter ^ rcounter == robj
                                               // robj is address dependent on rcounter.
   __ ldr(robj, Address(robj, 0));             // *obj
-  __ lsr(roffset, c_rarg2, 2);                // offset
+  __ lsr(roffset, c_rarg2, jfieldIDWorkaround::offset_shift); // offset
 
   assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
   speculative_load_pclist[count] = __ pc();   // Used by the segfault handler
   switch (type) {
     case T_BOOLEAN: __ ldrb    (result, Address(robj, roffset)); break;
< prev index next >