Mercurial > hg > truffle
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]; }