diff src/share/vm/graal/graalCodeInstaller.cpp @ 18177:89f97291c3a5

Hotspot: Support narrow oop relocations in constants section.
author Roland Schatz <roland.schatz@oracle.com>
date Mon, 27 Oct 2014 14:24:02 +0100
parents c2270ad35f57
children 37be28df9dd7
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Mon Oct 27 14:07:49 2014 +0100
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Mon Oct 27 14:24:02 2014 +0100
@@ -580,7 +580,11 @@
 
       address dest = _constants->start() + CompilationResult_Site::pcOffset(patch);
       if (HotSpotObjectConstant::compressed(constant)) {
-        fatal("unexpected compressed oop in data section");
+#ifdef _LP64
+        _constants->relocate(dest, oop_Relocation::spec(oop_index), relocInfo::narrow_oop_in_const);
+#else
+        fatal("unexpected compressed oop in 32-bit mode");
+#endif
       } else {
         _constants->relocate(dest, oop_Relocation::spec(oop_index));
       }