changeset 19546:0362d64c0cd4

Small refactoring of DUP/POP bytecode processing.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Mon, 23 Feb 2015 00:24:12 +0100
parents 10a0f4aef97c
children 3be278f50e4b
files graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java
diffstat 2 files changed, 4 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java	Mon Feb 23 00:12:52 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java	Mon Feb 23 00:24:12 2015 +0100
@@ -223,21 +223,6 @@
 
     private void stackOp(int opcode) {
         switch (opcode) {
-            case POP: {
-                frameState.xpop();
-                break;
-            }
-            case POP2: {
-                frameState.xpop();
-                frameState.xpop();
-                break;
-            }
-            case DUP: {
-                ValueNode w = frameState.xpop();
-                frameState.xpush(w);
-                frameState.xpush(w);
-                break;
-            }
             case DUP_X1: {
                 ValueNode w1 = frameState.xpop();
                 ValueNode w2 = frameState.xpop();
@@ -1050,9 +1035,9 @@
         case BASTORE        : genStoreIndexed(Kind.Byte  ); break;
         case CASTORE        : genStoreIndexed(Kind.Char  ); break;
         case SASTORE        : genStoreIndexed(Kind.Short ); break;
-        case POP            : // fall through
-        case POP2           : // fall through
-        case DUP            : // fall through
+        case POP            : frameState.xpop(); break;
+        case POP2           : frameState.xpop(); frameState.xpop(); break;
+        case DUP            : frameState.xpush(frameState.xpeek()); break;
         case DUP_X1         : // fall through
         case DUP_X2         : // fall through
         case DUP2           : // fall through
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java	Mon Feb 23 00:12:52 2015 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java	Mon Feb 23 00:24:12 2015 +0100
@@ -711,7 +711,7 @@
         return stack[--stackSize];
     }
 
-    private ValueNode xpeek() {
+    public ValueNode xpeek() {
         return stack[stackSize - 1];
     }