changeset 5154:ae72dd38eeb1

bugfix, parallel GC seems stable
author Christian Haeubl <christian.haeubl@oracle.com>
date Fri, 23 Mar 2012 12:12:35 -0700
parents 5717fc2be01c
children 51fb8bc5ecf6
files graal/com.oracle.graal.java/src/com/oracle/graal/java/bytecode/BytecodeStream.java src/share/vm/graal/graalCompilerToVM.cpp
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	Thu Mar 22 19:06:04 2012 -0700
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/bytecode/BytecodeStream.java	Fri Mar 23 12:12:35 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	Thu Mar 22 19:06:04 2012 -0700
+++ b/src/share/vm/graal/graalCompilerToVM.cpp	Fri Mar 23 12:12:35 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) {