re-enable RM.load check (#21196)

This commit is contained in:
Walter Bright 2025-04-10 00:59:10 -07:00 committed by GitHub
parent a0bf0f368a
commit 52cb9fdc1b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 1 deletions

View file

@ -978,7 +978,7 @@ void getlvalue(ref CodeBuilder cdb,ref code pcs,elem* e,regm_t keepmsk,RM rm = R
*/ */
if (cgstate.regcon.params & pregm /*&& s.Spreg2 == NOREG && !(pregm & XMMREGS)*/) if (cgstate.regcon.params & pregm /*&& s.Spreg2 == NOREG && !(pregm & XMMREGS)*/)
{ {
if (/*rm == RM.load &&*/ !cgstate.anyiasm) if (rm == RM.load && !cgstate.anyiasm)
{ {
auto voffset = e.Voffset; auto voffset = e.Voffset;
if (sz <= REGSIZE) if (sz <= REGSIZE)

View file

@ -253,6 +253,7 @@ Lp:
void cdaddass(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs) void cdaddass(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
{ {
//printf("cdaddass(e=%p, pretregs = %s)\n",e,regm_str(pretregs)); //printf("cdaddass(e=%p, pretregs = %s)\n",e,regm_str(pretregs));
//elem_print(e);
OPER op = e.Eoper; OPER op = e.Eoper;
regm_t retregs = 0; regm_t retregs = 0;
elem* e1 = e.E1; elem* e1 = e.E1;
@ -376,6 +377,7 @@ void cdaddass(ref CGstate cg, ref CodeBuilder cdb,elem* e,ref regm_t pretregs)
scodelem(cgstate,cdb,e.E2,retregs,0,true); // get rvalue scodelem(cgstate,cdb,e.E2,retregs,0,true); // get rvalue
getlvalue(cdb,cs,e1,retregs); // get lvalue getlvalue(cdb,cs,e1,retregs); // get lvalue
reg_t reg1; reg_t reg1;
//printf("cs.reg: %s cs.base: %s cs.index: %s\n", regm_str(mask(cs.reg)), regm_str(mask(cs.base)), regm_str(mask(cs.index)));
if (cs.reg != NOREG) if (cs.reg != NOREG)
reg1 = cs.reg; reg1 = cs.reg;
else else