TempleOSCD_140715.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:09 +02:00
1 parent 7ef616a20e
commit 64f679eeb9
1095 files changed
+24814 -221011

No files matched your search

+9 -10
View File
@@ -5,9 +5,9 @@ U0 ICAddEct(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
Bool swap=FALSE;
if (r3!=result_reg) {
swap^=TRUE;
SwapU64(&t2,&t3);
SwapU64(&r2,&r3);
SwapU64(&d2,&d3);
SwapI64(&t2,&t3);
SwapI64(&r2,&r3);
SwapI64(&d2,&d3);
}
if (t2&RT_MASK>=RT_I64 && r2!=result_reg &&
TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) {
@@ -95,7 +95,7 @@ U0 ICAddSubEctImm(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
}
}
if (op.u8[0]==0x03 && MIN_I32<=d<=MAX_I32 &&
!Bt(&non_ptr_vars_mask,r2)) {
!Bt(&cmp.non_ptr_vars_mask,r2)) {
i=ICModr1(r1,TY_DISP+RT_I64,r2,d);
i.u8[1]|=0x48;
ICU24(tempi,i.u8[2]<<16+0x8D00+i.u8[1]);
@@ -215,9 +215,9 @@ U0 ICSub(CIntermediateCode *tempi,I64 t1,I64 r1,I64 d1,
Bool swap=FALSE;
if (r3!=REG_RAX) {
swap=TRUE;
SwapU64(&t2,&t3);
SwapU64(&r2,&r3);
SwapU64(&d2,&d3);
SwapI64(&t2,&t3);
SwapI64(&r2,&r3);
SwapI64(&d2,&d3);
}
if (t2&RT_MASK>=RT_I64 && r2.u8[0]!=REG_RAX && (t2&TY_MASK!=TY_SIB || r2.u8[1]&15!=REG_RAX) &&
TY_REG<=t2&TY_MASK<=TY_RIP_DISP32) {
@@ -410,7 +410,6 @@ U0 ICMulEqual(CIntermediateCode *tempi,I64 ip)
ICMov(tempi,tempi->r.type,tempi->r.reg,tempi->r.disp,TY_REG+RT_I64,r,0,ip);
}
U0 ICDiv(CIntermediateCode *tempi,I64 ip)
{
if (tempi->ic_flags & ICF_A1_FIRST) {
@@ -589,7 +588,7 @@ U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64
ICSlashOp(tempi,TY_DISP+type_pointed,r2,0,0x838000+op.u8[4],ip);
ICU8(tempi,d3);
done=TRUE;
} else if (op.u8[2]==0x24) { //AND
} else if (op.u8[2]==0x24) {//AND
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RCX,0,ip);
result_reg=REG_RAX;
@@ -599,7 +598,7 @@ U0 ICAddSubEctEqual(CIntermediateCode *tempi,I64 type_pointed,I64 t1,I64 r1,I64
ICU32(tempi,d3);
ICMov(tempi,TY_DISP+type_pointed,REG_RCX,0,TY_REG+RT_I64,result_reg,0,ip);
done=TRUE;
} else if (type_pointed&RT_MASK<RT_I64) { //OR/XOR
} else if (type_pointed&RT_MASK<RT_I64) {//OR/XOR
ICMov(tempi,TY_REG+RT_I64,REG_RCX,0,t2,r2,d2,ip);
ICMov(tempi,TY_REG+RT_I64,REG_RAX,0,TY_DISP+type_pointed,REG_RCX,0,ip);
result_reg=REG_RAX;