diff --git a/mach/m68k2/cg/table b/mach/m68k2/cg/table index 47da138d..ba019c79 100644 --- a/mach/m68k2/cg/table +++ b/mach/m68k2/cg/table @@ -1048,7 +1048,8 @@ adp $1 >= 1 && $1 <= 8 ... | ADDSCR | "add.l #$1,%[1]" erase(%[1]) setcc(%[1]) | %[1] | | -adp | nocoercions: EXTERNAL_ADDR | | {EXTERNAL_ADDR,%[1.off] + "+" +adp $1 >= 0-32767 && $1 <= 32767 + | nocoercions: EXTERNAL_ADDR | | {EXTERNAL_ADDR,%[1.off] + "+" + tostring($1)} | | ... | nocoercions: LOCAL_ADDR | | {LOCAL_ADDR,%[1.off]+$1} | | ... | nocoercions: REGOFF_ADDR | | {REGOFF_ADDR,%[1.reg],%[1.off]+$1} | | @@ -1056,6 +1057,11 @@ adp | nocoercions: EXTERNAL_ADDR | | {EXTERNAL_ADDR,%[1.off] + "+" ... | ADDSCR | "lea $1(%[1]),%[1]" erase(%[1]) setcc(%[1]) | %[1] | | +adp | nocoercions: EXTERNAL_ADDR | | {EXTERNAL_ADDR,%[1.off] + "+" + + tostring($1)} | | +... | ADDSCR | "add.l #$1,%[1]" + erase(%[1]) + setcc(%[1]) | %[1] | | /* The next patterns are for efficient translation of "*p++" in C */ ldl ldl adp sdl $1 == $2 && $2 == $4 | |