assertCondition(eContext.getGPRPool().isFree(X86Register.ECX), "ECX not free");
assertCondition(eContext.getGPRPool().isFree(X86Register.EDX), "EDX not free");
assertCondition(eContext.getGPRPool().isFree(X86Register.ESI), "ESI not free");
writePOP64(X86Register.EBX, X86Register.ECX); // Value 2
final GPR v2_lsb = X86Register.EBX;
final GPR v2_msb = X86Register.ECX;
writePOP64(X86Register.ESI, X86Register.EDI); // Value 1
final GPR v1_lsb = X86Register.ESI;
final GPR v1_msb = X86Register.EDI;
final Label tmp1 = new Label(curInstrLabel + "$tmp1");
final Label tmp2 = new Label(curInstrLabel + "$tmp2");
final GPR EAX = X86Register.EAX;
final GPR EDX = X86Register.EDX;
os.writeMOV(INTSIZE, EAX, v1_msb); // hi2
os.writeOR(EAX, v2_msb); // hi1 | hi2
os.writeJCC(tmp1, X86Constants.JNZ);
os.writeMOV(INTSIZE, EAX, v1_lsb); // lo2