@@ -42,6 +42,7 @@ import dmd.backend.ty;
42
42
import dmd.backend.evalu8 : el_toldoubled;
43
43
import dmd.backend.x86.xmm;
44
44
import dmd.backend.arm.cod1 : getlvalue, loadFromEA, storeToEA;
45
+ import dmd.backend.arm.cod2 : tyToExtend;
45
46
import dmd.backend.arm.cod3 : COND , conditionCode, gentstreg;
46
47
import dmd.backend.arm.instr;
47
48
@@ -883,6 +884,7 @@ void cdcmp(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
883
884
/* See if we should reverse the comparison, so a JA => JC, and JBE => JNC
884
885
* (This is already reflected in the jop)
885
886
*/
887
+ if (0 )
886
888
if ((jop == COND .cs || jop == COND .cc) &&
887
889
(op == OPgt || op == OPle) &&
888
890
(tyuns(tym) || tyuns(e2.Ety))
@@ -1599,7 +1601,7 @@ void cdshtlng(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
1599
1601
}
1600
1602
else
1601
1603
{
1602
- // BUG : not generating LDRSH
1604
+ // TODO AArch64 : not generating LDRSH
1603
1605
loadFromEA(cs,reg,8 ,2 ); // LDRSH Xreg,[sp,#8]
1604
1606
cdb.gen(&cs);
1605
1607
}
@@ -1628,7 +1630,7 @@ void cdshtlng(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
1628
1630
}
1629
1631
else
1630
1632
{
1631
- // BUG: not generating LDRSW
1633
+ cs.Sextend = cast ( ubyte )tyToExtend(TYint);
1632
1634
loadFromEA(cs,reg,8 ,4 ); // LDRSW Xreg,[sp,#8]
1633
1635
cdb.gen(&cs);
1634
1636
}
0 commit comments