IntItem v2 = vstack.popInt(); IntItem v1 = vstack.popInt(); prepareForOperation(v1, v2);  final Register r1 = v1.getRegister(); switch (v2.getKind()) { case Item.Kind.REGISTER: os.writeXOR(r1, v2.getRegister()); break; case Item.Kind.LOCAL: os.writeXOR(r1, FP, v2.getOffsetToFP()); break; case Item.Kind.CONSTANT: os.writeXOR(r1, v2.getValue()); break; } v2.release(eContext); vstack.push(v1);
ioperation(X86Operation.XOR, true);
	public final void visit_ixor() {		//REFACTOR: parametrize the os.write operations to avoid code		// duplication		//IMPROVE: allow parameter permutation		IntItem v2 = vstack.popInt();		IntItem v1 = vstack.popInt();		prepareForOperation(v1, v2);		final Register r1 = v1.getRegister();		switch (v2.getKind()) {		case Item.Kind.REGISTER:			os.writeXOR(r1, v2.getRegister());			break;		case Item.Kind.LOCAL:			os.writeXOR(r1, FP, v2.getOffsetToFP());			break;		case Item.Kind.CONSTANT:			os.writeXOR(r1, v2.getValue());			break;		}		v2.release(eContext);		vstack.push(v1);	}