mirror of
https://github.com/dlang/dmd.git
synced 2025-04-30 07:00:14 +03:00
recognize (e ? e : f) (#20935)
This commit is contained in:
parent
6ee6720516
commit
ab57e77c03
2 changed files with 3 additions and 4 deletions
|
@ -2356,7 +2356,7 @@ void loaddata(ref CodeBuilder cdb, elem* e, ref regm_t outretregs)
|
||||||
if (tyfloating(tym))
|
if (tyfloating(tym))
|
||||||
{
|
{
|
||||||
loadea(cdb,e,cs,0,reg,0,0,0,RM.load);
|
loadea(cdb,e,cs,0,reg,0,0,0,RM.load);
|
||||||
outretregs = mask(reg);
|
outretregs = mask(reg) | flags;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -545,8 +545,7 @@ void cdcond(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
|
||||||
docommas(cdb,e1);
|
docommas(cdb,e1);
|
||||||
cgstate.stackclean++;
|
cgstate.stackclean++;
|
||||||
|
|
||||||
if (0 && !OTrel(op1) && e1 == e21 && // TODO AArch64
|
if (!OTrel(op1) && e1 == e21 && sz1 <= REGSIZE)
|
||||||
sz1 <= REGSIZE && !tyfloating(e1.Ety))
|
|
||||||
{ // Recognize (e ? e : f)
|
{ // Recognize (e ? e : f)
|
||||||
|
|
||||||
code* cnop1 = gen1(null, INSTR.nop);
|
code* cnop1 = gen1(null, INSTR.nop);
|
||||||
|
@ -561,7 +560,7 @@ void cdcond(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
|
||||||
const stackpushsave = cgstate.stackpush;
|
const stackpushsave = cgstate.stackpush;
|
||||||
|
|
||||||
retregs |= psw;
|
retregs |= psw;
|
||||||
if (retregs & (mBP | ALLREGS))
|
if (retregs & cgstate.allregs) // TODO AArch64 add support for fp registers
|
||||||
cgstate.regimmed_set(findreg(retregs),0);
|
cgstate.regimmed_set(findreg(retregs),0);
|
||||||
codelem(cgstate,cdb,e22,retregs,false);
|
codelem(cgstate,cdb,e22,retregs,false);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue