From f210ef4f8ea1a77ac5181379cb0b038725312895 Mon Sep 17 00:00:00 2001 From: ceriel Date: Wed, 9 Nov 1988 15:49:29 +0000 Subject: [PATCH] fixed problem with DUP: it also dupped tokens with side-effects --- mach/m68020/ncg/table | 6 ++++-- mach/m68k2/ncg/table | 6 ++++-- mach/m68k4/ncg/table | 6 ++++-- mach/moon3/ncg/table | 6 ++++-- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/mach/m68020/ncg/table b/mach/m68020/ncg/table index f8c98447a..b66640017 100644 --- a/mach/m68020/ncg/table +++ b/mach/m68020/ncg/table @@ -393,6 +393,7 @@ t_address = address + t_regAregXcon + t_regAcon . #define t_address address #endif TBL68020 +safe_any4 = any4 - (pre_dec4 + post_inc4) . INSTRUCTIONS @@ -2828,13 +2829,14 @@ pat dch leaving loi 4 pat dup $1==4 with exact STACK gen move_l {indirect4, sp}, {pre_dec4, sp} -with any4 yields %1 %1 +with safe_any4 yields %1 %1 +with exact pre_dec4 + post_inc4 yields {indirect4, %1.reg} %1 pat dup $1==8 with exact STACK gen move_l {offsetted4, sp, 4}, {pre_dec4, sp} move_l {offsetted4, sp, 4}, {pre_dec4, sp} -with any4 any4 yields %2 %1 %2 %1 +with safe_any4 safe_any4 yields %2 %1 %2 %1 pat dup $1>8 with STACK diff --git a/mach/m68k2/ncg/table b/mach/m68k2/ncg/table index f8c98447a..b66640017 100644 --- a/mach/m68k2/ncg/table +++ b/mach/m68k2/ncg/table @@ -393,6 +393,7 @@ t_address = address + t_regAregXcon + t_regAcon . #define t_address address #endif TBL68020 +safe_any4 = any4 - (pre_dec4 + post_inc4) . INSTRUCTIONS @@ -2828,13 +2829,14 @@ pat dch leaving loi 4 pat dup $1==4 with exact STACK gen move_l {indirect4, sp}, {pre_dec4, sp} -with any4 yields %1 %1 +with safe_any4 yields %1 %1 +with exact pre_dec4 + post_inc4 yields {indirect4, %1.reg} %1 pat dup $1==8 with exact STACK gen move_l {offsetted4, sp, 4}, {pre_dec4, sp} move_l {offsetted4, sp, 4}, {pre_dec4, sp} -with any4 any4 yields %2 %1 %2 %1 +with safe_any4 safe_any4 yields %2 %1 %2 %1 pat dup $1>8 with STACK diff --git a/mach/m68k4/ncg/table b/mach/m68k4/ncg/table index f8c98447a..b66640017 100644 --- a/mach/m68k4/ncg/table +++ b/mach/m68k4/ncg/table @@ -393,6 +393,7 @@ t_address = address + t_regAregXcon + t_regAcon . #define t_address address #endif TBL68020 +safe_any4 = any4 - (pre_dec4 + post_inc4) . INSTRUCTIONS @@ -2828,13 +2829,14 @@ pat dch leaving loi 4 pat dup $1==4 with exact STACK gen move_l {indirect4, sp}, {pre_dec4, sp} -with any4 yields %1 %1 +with safe_any4 yields %1 %1 +with exact pre_dec4 + post_inc4 yields {indirect4, %1.reg} %1 pat dup $1==8 with exact STACK gen move_l {offsetted4, sp, 4}, {pre_dec4, sp} move_l {offsetted4, sp, 4}, {pre_dec4, sp} -with any4 any4 yields %2 %1 %2 %1 +with safe_any4 safe_any4 yields %2 %1 %2 %1 pat dup $1>8 with STACK diff --git a/mach/moon3/ncg/table b/mach/moon3/ncg/table index f8c98447a..b66640017 100644 --- a/mach/moon3/ncg/table +++ b/mach/moon3/ncg/table @@ -393,6 +393,7 @@ t_address = address + t_regAregXcon + t_regAcon . #define t_address address #endif TBL68020 +safe_any4 = any4 - (pre_dec4 + post_inc4) . INSTRUCTIONS @@ -2828,13 +2829,14 @@ pat dch leaving loi 4 pat dup $1==4 with exact STACK gen move_l {indirect4, sp}, {pre_dec4, sp} -with any4 yields %1 %1 +with safe_any4 yields %1 %1 +with exact pre_dec4 + post_inc4 yields {indirect4, %1.reg} %1 pat dup $1==8 with exact STACK gen move_l {offsetted4, sp, 4}, {pre_dec4, sp} move_l {offsetted4, sp, 4}, {pre_dec4, sp} -with any4 any4 yields %2 %1 %2 %1 +with safe_any4 safe_any4 yields %2 %1 %2 %1 pat dup $1>8 with STACK -- 2.34.1