< prev index next >

src/hotspot/cpu/x86/interpreterRT_x86_64.cpp

Print this page

        

@@ -289,10 +289,14 @@
     break;
   }
 #endif
 }
 
+void InterpreterRuntime::SignatureHandlerGenerator::pass_valuetype() {
+  pass_object();
+}
+
 void InterpreterRuntime::SignatureHandlerGenerator::generate(uint64_t fingerprint) {
   // generate code to handle arguments
   iterate(fingerprint);
 
   // return result handler

@@ -354,10 +358,15 @@
     } else {
       *_to++ = (*from_addr == 0) ? NULL : (intptr_t) from_addr;
     }
   }
 
+  virtual void pass_valuetype() {
+    // values are handled with oops, like objects
+    pass_object();
+  }
+
   virtual void pass_float()
   {
     jint from_obj = *(jint *)(_from+Interpreter::local_offset_in_bytes(0));
     _from -= Interpreter::stackElementSize;
 

@@ -449,10 +458,15 @@
     } else {
       *_to++ = (*from_addr == 0) ? NULL : (intptr_t) from_addr;
     }
   }
 
+  virtual void pass_valuetype() {
+    // values are handled with oops, like objects
+    pass_object();
+  }
+
   virtual void pass_float()
   {
     jint from_obj = *(jint*)(_from+Interpreter::local_offset_in_bytes(0));
     _from -= Interpreter::stackElementSize;
 
< prev index next >