changeset 5155:51fb8bc5ecf6

Merge
author Christian Haeubl <christian.haeubl@oracle.com>
date Fri, 23 Mar 2012 12:13:04 -0700
parents ae72dd38eeb1 (diff) 57546200db29 (current diff)
children 482265e41a1a 6e385457d6fc
files
diffstat 2 files changed, 8 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/bytecode/BytecodeStream.java	Fri Mar 23 13:33:56 2012 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/bytecode/BytecodeStream.java	Fri Mar 23 12:13:04 2012 -0700
@@ -22,6 +22,7 @@
  */
 package com.oracle.graal.java.bytecode;
 
+
 /**
  * A utility class that makes iterating over bytecodes and reading operands
  * simpler and less error prone. For example, it handles the {@link Bytecodes#WIDE} instruction
--- a/src/share/vm/graal/graalCompilerToVM.cpp	Fri Mar 23 13:33:56 2012 +0100
+++ b/src/share/vm/graal/graalCompilerToVM.cpp	Fri Mar 23 12:13:04 2012 -0700
@@ -62,10 +62,14 @@
   if (RewriteBytecodes || RewriteFrequentPairs) {
     BytecodeStream s(method);
     while(!s.is_last_bytecode()) {
-      jbyte code = s.next();
-      env->SetByteArrayRegion(result, s.bci(), 1, &code);
+      s.next();
+      Bytecodes::Code code = s.raw_code();
+      if (!Bytecodes::is_java_code(code)) {
+        jbyte original_code = Bytecodes::java_code(code);
+        env->SetByteArrayRegion(result, s.bci(), 1, &original_code);
+      }
     }
-  }
+  }  
 
   // replace all breakpoints
   if (method->number_of_breakpoints() > 0) {