EMIT(CPOS(s, MIR_Move.create(IA32_MOV, one, R(val1_reg)))); EMIT(CPOS(s, MIR_Move.create(IA32_MOV, lone, R(regpool.getSecondReg(val1_reg)))));
EMIT(CPOS(s, MIR_Move.create(IA32_MOV, one, new OPT_RegisterOperand(val1_reg, VM_TypeReference.Int)))); EMIT(CPOS(s, MIR_Move.create(IA32_MOV, lone, new OPT_RegisterOperand(regpool.getSecondReg(val1_reg), VM_TypeReference.Int))));
  protected final void LONG_CMP (OPT_Instruction s, OPT_RegisterOperand res, OPT_Operand val1, OPT_Operand val2) {	 OPT_RegisterOperand one = regpool.makeTempInt();	 OPT_RegisterOperand lone = regpool.makeTempInt();    OPT_Operand two, ltwo;    if (val1 instanceof OPT_RegisterOperand) {		OPT_Register val1_reg = val1.asRegister().register;		EMIT(CPOS(s, MIR_Move.create(IA32_MOV, one, R(val1_reg))));		EMIT(CPOS(s, MIR_Move.create(IA32_MOV, lone, R(regpool.getSecondReg(val1_reg)))));    } else {      OPT_LongConstantOperand tmp = (OPT_LongConstantOperand)val1;		EMIT(CPOS(s, MIR_Move.create(IA32_MOV, one, IC(tmp.upper32()))));		EMIT(CPOS(s, MIR_Move.create(IA32_MOV, lone, IC(tmp.lower32()))));    }    if (val2 instanceof OPT_RegisterOperand) {		two = val2;      ltwo = L(burs.ir.regpool.getSecondReg(val2.asRegister().register));    } else {      OPT_LongConstantOperand tmp = (OPT_LongConstantOperand)val2;      two = IC(tmp.upper32());      ltwo = IC(tmp.lower32());    }    EMIT(CPOS(s,MIR_Compare.create(IA32_CMP, lone.copyRO(), ltwo)));    EMIT(CPOS(s,MIR_BinaryAcc.create(IA32_SBB, one.copyRO(), two)));    EMIT(CPOS(s,MIR_Set.create(IA32_SET__B, res, OPT_IA32ConditionOperand.LT()))); // res = (val1 < val2) ? 1 :0    EMIT(CPOS(s,MIR_BinaryAcc.create(IA32_OR, one.copyRO(), lone.copyRO())));    EMIT(CPOS(s,MIR_Set.create(IA32_SET__B, lone.copyRO(),OPT_IA32ConditionOperand.NE()))); // lone = (val1 != val2) ? 1 : 0    EMIT(CPOS(s,MIR_UnaryAcc.create(IA32_NEG, res.copyRO()))); // res = (val1 < val2) ? -1 :0    EMIT(CPOS(s,MIR_BinaryAcc.create(IA32_OR, res.copyRO(), lone.copyRO())));	 EMIT(MIR_Unary.mutate(s,IA32_MOVSX__B,res.copyRO(),res.copyRO()));  }