os.writeXOR(Register.ESI, Register.ESI); os.writeSUB(Register.EAX, Register.EBX); os.writeSBB(Register.EDX, Register.ECX); os.writeJCC(ltLabel, X86Constants.JL); os.writeOR(Register.EAX, Register.EDX); os.writeJCC(endLabel, X86Constants.JZ);  os.writeINC(Register.ESI); os.writeJMP(endLabel);  os.setObjectRef(ltLabel); os.writeDEC(Register.ESI); os.setObjectRef(endLabel); helper.writePUSH(Register.ESI); }
Label ltLabel = new Label(curInstrLabel + "lt"); Label endLabel = new Label(curInstrLabel + "end");  os.writeXOR(Register.ESI, Register.ESI); os.writeSUB(Register.EAX, Register.EBX); os.writeSBB(Register.EDX, Register.ECX); os.writeJCC(ltLabel, X86Constants.JL); os.writeOR(Register.EAX, Register.EDX); os.writeJCC(endLabel, X86Constants.JZ);  os.writeINC(Register.ESI); os.writeJMP(endLabel);  os.setObjectRef(ltLabel); os.writeDEC(Register.ESI); os.setObjectRef(endLabel); helper.writePUSH(Register.ESI); }
	public final void visit_lcmp() {		//TODO: port to orp-style		vstack.push(eContext);		Item v2 = vstack.popItem(Item.LONG);		Item v1 = vstack.popItem(Item.LONG);		v2.release(eContext);		v1.release(eContext);		vstack.pushItem(IntItem.createStack());				helper.writePOP64(Register.EBX, Register.ECX); // Value 2		helper.writePOP64(Register.EAX, Register.EDX); // Value 1		Label ltLabel = new Label(curInstrLabel + "lt");		Label endLabel = new Label(curInstrLabel + "end");		os.writeXOR(Register.ESI, Register.ESI);		os.writeSUB(Register.EAX, Register.EBX);		os.writeSBB(Register.EDX, Register.ECX);		os.writeJCC(ltLabel, X86Constants.JL); // JL		os.writeOR(Register.EAX, Register.EDX);		os.writeJCC(endLabel, X86Constants.JZ); // value1 == value2		/** GT */		os.writeINC(Register.ESI);		os.writeJMP(endLabel);		/** LT */		os.setObjectRef(ltLabel);		os.writeDEC(Register.ESI);		os.setObjectRef(endLabel);		helper.writePUSH(Register.ESI);	}