< prev index next >

src/cpu/x86/vm/jniFastGetField_x86_32.cpp

Print this page

        

@@ -26,10 +26,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
 

@@ -84,11 +85,11 @@
   } else {
     __ movptr (rdx, Address(rsp, 2*wordSize));  // obj
   }
   __ movptr(rax, Address(rsp, 3*wordSize));  // jfieldID
   __ movptr(rdx, Address(rdx, 0));           // *obj
-  __ shrptr (rax, 2);                         // offset
+  __ shrptr (rax, jfieldIDWorkaround::offset_shift); // offset
 
   assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
   speculative_load_pclist[count] = __ pc();
   switch (type) {
     case T_BOOLEAN: __ movzbl (rax, Address(rdx, rax, Address::times_1)); break;

@@ -201,11 +202,11 @@
   } else {
     __ movptr(rdx, Address(rsp, 3*wordSize));  // obj
   }
   __ movptr(rsi, Address(rsp, 4*wordSize));  // jfieldID
   __ movptr(rdx, Address(rdx, 0));           // *obj
-  __ shrptr(rsi, 2);                         // offset
+  __ shrptr(rsi, jfieldIDWorkaround::offset_shift); // offset
 
   assert(count < LIST_CAPACITY-1, "LIST_CAPACITY too small");
   speculative_load_pclist[count++] = __ pc();
   __ movptr(rax, Address(rdx, rsi, Address::times_1));
 #ifndef _LP64

@@ -290,11 +291,11 @@
   } else {
     __ movptr(rdx, Address(rsp, 2*wordSize)); // obj
   }
   __ movptr(rax, Address(rsp, 3*wordSize));  // jfieldID
   __ movptr(rdx, Address(rdx, 0));           // *obj
-  __ shrptr(rax, 2);                         // offset
+  __ shrptr(rax, jfieldIDWorkaround::offset_shift); // offset
 
   assert(count < LIST_CAPACITY, "LIST_CAPACITY too small");
   speculative_load_pclist[count] = __ pc();
   switch (type) {
 #ifndef _LP64
< prev index next >