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 (/*rm == RM.load &&*/ !cgstate.anyiasm)
if (rm == RM.load && !cgstate.anyiasm)
{
auto voffset = e.Voffset;
if (sz <= REGSIZE)

View file

@ -253,6 +253,7 @@ Lp:
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));
//elem_print(e);
OPER op = e.Eoper;
regm_t retregs = 0;
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
getlvalue(cdb,cs,e1,retregs); // get lvalue
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)
reg1 = cs.reg;
else