From: George Koehler Date: Sun, 15 Oct 2017 19:22:52 +0000 (-0400) Subject: PowerPC ncg never uses the rules to stack LOCAL or DLOCAL. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=f0619ea4ae98901ab87a0cd8ab09f35010e53f63;p=ack.git PowerPC ncg never uses the rules to stack LOCAL or DLOCAL. --- diff --git a/mach/powerpc/ncg/table b/mach/powerpc/ncg/table index 23b904264..a116209d9 100644 --- a/mach/powerpc/ncg/table +++ b/mach/powerpc/ncg/table @@ -328,6 +328,7 @@ INSTRUCTIONS xori GPR:wo, GPR:ro, CONST:ro. xoris GPR:wo, GPR:ro, CONST:ro. + bug ">>> BUG" LABEL:ro cost(0, 0). comment "!" LABEL:ro cost(0, 0). @@ -588,16 +589,6 @@ TESTS STACKINGRULES - from LOCAL inreg(%off)==reg_float to STACK - gen - COMMENT("stack LOCAL") - stfsu %1, {IND_RC_W, sp, 0-4} - - from LOCAL to STACK - gen - COMMENT("stack LOCAL") - stwu %1, {IND_RC_W, sp, 0-4} - from REG to STACK gen COMMENT("stack REG") @@ -615,7 +606,7 @@ STACKINGRULES move %1, FSCRATCH stfdu FSCRATCH, {IND_RC_D, sp, 0-8} - from FREG+DLOCAL to STACK + from FREG to STACK gen COMMENT("stack FREG+DLOCAL") stfdu %1, {IND_RC_D, sp, 0-8} @@ -625,6 +616,16 @@ STACKINGRULES COMMENT("stack FSREG") stfsu %1, {IND_RC_W, sp, 0-4} + /* + * We never stack LOCAL or DLOCAL tokens, because we only use + * them for register variables, so ncg pushes the register, + * not the token. These rules only prevent an error in ncgg. + */ + from LOCAL to STACK + gen bug {LABEL, "STACKING LOCAL"} + from DLOCAL to STACK + gen bug {LABEL, "STACKING DLOCAL"} + COERCIONS