diff src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp @ 16316:989ab80382c1

Using absolute addressing instead of pc relative in fixup.
author Stefan Anzinger <stefan.anzinger@gmail.com>
date Mon, 02 Jun 2014 20:41:44 +0200
parents 063ec2920d21
children 0e34c7fbd288
line wrap: on
line diff
--- a/src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp	Mon Jun 02 20:40:57 2014 +0200
+++ b/src/cpu/sparc/vm/graalCodeInstaller_sparc.cpp	Mon Jun 02 20:41:44 2014 +0200
@@ -59,11 +59,11 @@
 
 void CodeInstaller::pd_patch_DataSectionReference(int pc_offset, oop data) {
   address pc = _instructions->start() + pc_offset;
+  address const_start = _constants->start();
   jint offset = DataSectionReference::offset(data);
 
   NativeMovRegMem* load = nativeMovRegMem_at(pc);
-  int disp = _constants_size + pc_offset - offset - BytesPerInstWord;
-  load->set_offset(-disp);
+  load->add_offset_in_bytes((long)const_start+offset);
 }
 
 void CodeInstaller::pd_relocate_CodeBlob(CodeBlob* cb, NativeInstruction* inst) {