- 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 IFEQ: return new Branch( new Eq(new Constant(0), pop()), label);
+ case IFNE: return new Branch(new Not(new Eq(new Constant(0), pop())), label);
+ case IFLT: return new Branch( new Lt(new Constant(0), pop()), label);
+ case IFGE: return new Branch(new Not(new Lt(new Constant(0), pop())), label);
+ case IFGT: return new Branch( new Gt(new Constant(0), pop()), label);
+ case IFLE: return new Branch(new Not(new Gt(new Constant(0), pop())), label);
+ case IF_ICMPEQ: return new Branch( new Eq(pop(), pop()), label);
+ case IF_ICMPNE: return new Branch(new Not(new Eq(pop(), pop())), label);
+ case IF_ICMPLT: return new Branch( new Lt(pop(), pop()), label);
+ case IF_ICMPGE: return new Branch(new Not(new Lt(pop(), pop())), label);
+ case IF_ICMPGT: return new Branch( new Gt(pop(), pop()), label);
+ case IF_ICMPLE: return new Branch(new Not(new Gt(pop(), pop())), label);
+ case IF_ACMPEQ: return new Branch( new Eq(pop(), pop()), label);
+ case IF_ACMPNE: return new Branch(new Not(new Eq(pop(), pop())), label);
+ case ATHROW: return new Throw(pop());
+ case GOTO: return new Branch(locals[pc][i1]);
+ case JSR: push(new Label(pc+3)); return new JSR(new Label(pc+i1));
+ case RET: return new RET();
+ case RETURN: return new Return();