diff src/share/vm/graal/graalCodeInstaller.cpp @ 17084:26f5733fb645

Fix the endianess issue, when using JSR/RET instruction and deoptimization happens in this subroutine
author Stefan Anzinger <stefan.anzinger@oracle.com>
date Tue, 09 Sep 2014 12:15:29 -0700
parents 4e2d34d7715b
children 6fcb6691fe5f
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Tue Sep 09 12:11:57 2014 -0700
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Tue Sep 09 12:15:29 2014 -0700
@@ -278,7 +278,10 @@
     record_metadata_in_constant(value, oop_recorder);
     if (value->is_a(PrimitiveConstant::klass())) {
       assert(!reference, "unexpected primitive constant type");
-      if (type == T_INT || type == T_FLOAT) {
+      if(value->is_a(RawConstant::klass())) {
+        jlong prim = PrimitiveConstant::primitive(value);
+        return new ConstantLongValue(prim);
+      } else if (type == T_INT || type == T_FLOAT) {
         jint prim = (jint)PrimitiveConstant::primitive(value);
         return new ConstantIntValue(prim);
       } else {