From 52cb9fdc1bcb071e77745daeb43f80eb77727218 Mon Sep 17 00:00:00 2001 From: Walter Bright Date: Thu, 10 Apr 2025 00:59:10 -0700 Subject: [PATCH] re-enable RM.load check (#21196) --- compiler/src/dmd/backend/arm/cod1.d | 2 +- compiler/src/dmd/backend/arm/cod4.d | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/src/dmd/backend/arm/cod1.d b/compiler/src/dmd/backend/arm/cod1.d index 488f78fdc8..3b76f6d4da 100644 --- a/compiler/src/dmd/backend/arm/cod1.d +++ b/compiler/src/dmd/backend/arm/cod1.d @@ -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) diff --git a/compiler/src/dmd/backend/arm/cod4.d b/compiler/src/dmd/backend/arm/cod4.d index e0f73ddb72..ee76051057 100644 --- a/compiler/src/dmd/backend/arm/cod4.d +++ b/compiler/src/dmd/backend/arm/cod4.d @@ -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