diff src/share/vm/graal/graalCodeInstaller.hpp @ 18176:c2270ad35f57

Better construction of data section and data patches.
author Roland Schatz <roland.schatz@oracle.com>
date Mon, 27 Oct 2014 14:07:49 +0100
parents 8c079b8d0446
children a8cff27ca2e1
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.hpp	Mon Oct 27 13:39:12 2014 -0700
+++ b/src/share/vm/graal/graalCodeInstaller.hpp	Mon Oct 27 14:07:49 2014 +0100
@@ -53,6 +53,7 @@
   Arena         _arena;
 
   jobject       _data_section_handle;
+  jobject       _data_section_patches_handle;
   jobject       _sites_handle;
   jobject       _exception_handlers_handle;
   CodeOffsets   _offsets;
@@ -86,8 +87,8 @@
   static LocationValue*       _illegal_value;
 
   jint pd_next_offset(NativeInstruction* inst, jint pc_offset, oop method);
-  void pd_patch_OopData(int pc_offset, oop data);
-  void pd_patch_DataSectionReference(int pc_offset, oop data);
+  void pd_patch_OopConstant(int pc_offset, Handle& constant);
+  void pd_patch_DataSectionReference(int pc_offset, int data_offset);
   void pd_relocate_CodeBlob(CodeBlob* cb, NativeInstruction* inst);
   void pd_relocate_ForeignCall(NativeInstruction* inst, jlong foreign_call_destination);
   void pd_relocate_JavaMethod(oop method, jint pc_offset);
@@ -96,6 +97,7 @@
   objArrayOop sites() { return (objArrayOop) JNIHandles::resolve(_sites_handle); }
   arrayOop code() { return (arrayOop) JNIHandles::resolve(_code_handle); }
   arrayOop data_section() { return (arrayOop) JNIHandles::resolve(_data_section_handle); }
+  objArrayOop data_section_patches() { return (objArrayOop) JNIHandles::resolve(_data_section_patches_handle); }
   objArrayOop exception_handlers() { return (objArrayOop) JNIHandles::resolve(_exception_handlers_handle); }
 #ifndef PRODUCT
   objArrayOop comments() { return (objArrayOop) JNIHandles::resolve(_comments_handle); }