# HG changeset patch # User Christian Haeubl # Date 1332529955 25200 # Node ID ae72dd38eeb15d05b94ef58e8230a4fdc939f965 # Parent 5717fc2be01c3e9692e3a7e41f6a75be544dfb7a bugfix, parallel GC seems stable diff -r 5717fc2be01c -r ae72dd38eeb1 graal/com.oracle.graal.java/src/com/oracle/graal/java/bytecode/BytecodeStream.java --- 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 diff -r 5717fc2be01c -r ae72dd38eeb1 src/share/vm/graal/graalCompilerToVM.cpp --- 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) {