- case IFNULL: return new Branch(new Eq(pop(), new Constant(null)), new Label(i1));
- case IFNONNULL: return new Branch(new Not(new Eq(pop(),new Constant(null))),new Label(i1));
- case IFEQ: return new Branch( new Eq(new Constant(0), pop()), arg);
- case IFNE: return new Branch(new Not(new Eq(new Constant(0), pop())), arg);
- case IFLT: return new Branch( new Lt(new Constant(0), pop()), arg);
- case IFGE: return new Branch(new Not(new Lt(new Constant(0), pop())), arg);
- case IFGT: return new Branch( new Gt(new Constant(0), pop()), arg);
- case IFLE: return new Branch(new Not(new Gt(new Constant(0), pop())), arg);
- case IF_ICMPEQ: return new Branch( new Eq(pop(), pop()), arg);
- case IF_ICMPNE: return new Branch(new Not(new Eq(pop(), pop())), arg);
- case IF_ICMPLT: return new Branch( new Lt(pop(), pop()), arg);
- case IF_ICMPGE: return new Branch(new Not(new Lt(pop(), pop())), arg);
- case IF_ICMPGT: return new Branch( new Gt(pop(), pop()), arg);
- case IF_ICMPLE: return new Branch(new Not(new Gt(pop(), pop())), arg);
- case IF_ACMPEQ: return new Branch( new Eq(pop(), pop()), arg);
- case IF_ACMPNE: return new Branch(new Not(new Eq(pop(), pop())), arg);
- case ATHROW: return new Throw(pop());
- case GOTO: return new Branch(new Label(i1));
- case JSR: return new JSR(new Label(i1));
- case RET: return new RET();
- case RETURN: return new Return();
+ case IFNULL: return new If(new Eq(pop(), new Constant(null)), new Label(i1));
+ case IFNONNULL: return new If(new Not(new Eq(pop(),new Constant(null))),new Label(i1));
+ case IFEQ: return new If( new Eq(new Constant(0), pop()), new Label(i1));
+ case IFNE: return new If(new Not(new Eq(new Constant(0), pop())), new Label(i1));
+ case IFLT: return new If( new Lt(new Constant(0), pop()), new Label(i1));
+ case IFGE: return new If(new Not(new Lt(new Constant(0), pop())), new Label(i1));
+ case IFGT: return new If( new Gt(new Constant(0), pop()), new Label(i1));
+ case IFLE: return new If(new Not(new Gt(new Constant(0), pop())), new Label(i1));
+ case IF_ICMPEQ: return new If( new Eq(pop(), pop()), new Label(i1));
+ case IF_ICMPNE: return new If(new Not(new Eq(pop(), pop())), new Label(i1));
+ case IF_ICMPLT: return new If( new Lt(pop(), pop()), new Label(i1));
+ case IF_ICMPGE: return new If(new Not(new Lt(pop(), pop())), new Label(i1));
+ case IF_ICMPGT: return new If( new Gt(pop(), pop()), new Label(i1));
+ case IF_ICMPLE: return new If(new Not(new Gt(pop(), pop())), new Label(i1));
+ case IF_ACMPEQ: return new If( new Eq(pop(), pop()), new Label(i1));
+ case IF_ACMPNE: return new If(new Not(new Eq(pop(), pop())), new Label(i1));
+ case ATHROW: return new Throw(pop());
+ case GOTO: return new Goto(locals[pc][i1]);
+ case JSR: push(new Label(pc)); return new JSR(new Label(i1));
+ case RET: return new RET(pop());
+ case RETURN: return new Return();