Item v; Register r; if (type == JvmType.REFERENCE) { RefItem vr = vstack.popRef(); vr.load(eContext); r = vr.getRegister(); v = vr;
final WordItem val = (WordItem) vstack.pop(type); if ((type == JvmType.INT) && val.isConstant()) { final int ival = ((IntItem) val).getValue(); final boolean jump; switch (jccOpcode) { case X86Constants.JE: jump = (ival == 0); break; case X86Constants.JNE: jump = (ival != 0); break; case X86Constants.JL: jump = (ival < 0); break; case X86Constants.JGE: jump = (ival >= 0); break; case X86Constants.JG: jump = (ival > 0); break; case X86Constants.JLE: jump = (ival <= 0); break; default: throw new IllegalArgumentException("Unknown jccOpcode " + jccOpcode); } if (jump) {  vstack.push(eContext);  os.writeJCC(helper.getInstrLabel(address), jccOpcode); }
	private void visit_ifxx(int type, int address, int jccOpcode) {		//IMPROVE: Constant case / Local case		Item v;		Register r;		if (type == JvmType.REFERENCE) {			RefItem vr = vstack.popRef();			vr.load(eContext);			r = vr.getRegister();			v = vr;		} else {			IntItem vi = vstack.popInt();			vi.load(eContext);			r = vi.getRegister();			v = vi;		}		// flush vstack before jumping		vstack.push(eContext);		v.release(eContext);		os.writeTEST(r, r);		os.writeJCC(helper.getInstrLabel(address), jccOpcode);	}