# HG changeset patch # User Andreas Woess # Date 1360885420 -3600 # Node ID 2c6d04c5e60f65b0e60cb74ac2188d97540992bd # Parent af07019db85d3f38ddb47baf2e188afd3f2d2da7 Enable invokedynamic and make bytecode known to Graal. diff -r af07019db85d -r 2c6d04c5e60f graal/com.oracle.graal.bytecode/src/com/oracle/graal/bytecode/Bytecodes.java --- a/graal/com.oracle.graal.bytecode/src/com/oracle/graal/bytecode/Bytecodes.java Wed Feb 13 18:46:24 2013 +0100 +++ b/graal/com.oracle.graal.bytecode/src/com/oracle/graal/bytecode/Bytecodes.java Fri Feb 15 00:43:40 2013 +0100 @@ -226,7 +226,7 @@ public static final int INVOKESPECIAL = 183; // 0xB7 public static final int INVOKESTATIC = 184; // 0xB8 public static final int INVOKEINTERFACE = 185; // 0xB9 - public static final int XXXUNUSEDXXX = 186; // 0xBA + public static final int INVOKEDYNAMIC = 186; // 0xBA public static final int NEW = 187; // 0xBB public static final int NEWARRAY = 188; // 0xBC public static final int ANEWARRAY = 189; // 0xBD @@ -552,7 +552,7 @@ def(INVOKESPECIAL , "invokespecial" , "bjj" , 5, TRAP | INVOKE); def(INVOKESTATIC , "invokestatic" , "bjj" , 5, TRAP | INVOKE); def(INVOKEINTERFACE , "invokeinterface" , "bjja_", 7, TRAP | INVOKE); - def(XXXUNUSEDXXX , "xxxunusedxxx" , "" , 0); + def(INVOKEDYNAMIC , "invokedynamic" , "bjjjj", 7, TRAP | INVOKE); def(NEW , "new" , "bii" , 6, TRAP); def(NEWARRAY , "newarray" , "bc" , 6, TRAP); def(ANEWARRAY , "anewarray" , "bii" , 6, TRAP); diff -r af07019db85d -r 2c6d04c5e60f graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Wed Feb 13 18:46:24 2013 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Fri Feb 15 00:43:40 2013 +0100 @@ -345,7 +345,8 @@ case INVOKEINTERFACE: case INVOKESPECIAL: case INVOKESTATIC: - case INVOKEVIRTUAL: { + case INVOKEVIRTUAL: + case INVOKEDYNAMIC: { current = null; addSuccessor(bci, makeBlock(stream.nextBCI())); ExceptionDispatchBlock handler = handleExceptions(bci); diff -r af07019db85d -r 2c6d04c5e60f src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Wed Feb 13 18:46:24 2013 +0100 +++ b/src/share/vm/runtime/globals.hpp Fri Feb 15 00:43:40 2013 +0100 @@ -3588,7 +3588,7 @@ product(uintx, SharedDummyBlockSize, 0, \ "Size of dummy block used to shift heap addresses (in bytes)") \ \ - diagnostic(bool, EnableInvokeDynamic, false, \ + diagnostic(bool, EnableInvokeDynamic, true, \ "support JSR 292 (method handles, invokedynamic, " \ "anonymous classes") \ \