diff --git a/mach/i80/ncg/table b/mach/i80/ncg/table index 87d1d0a3e..1cd47d652 100644 --- a/mach/i80/ncg/table +++ b/mach/i80/ncg/table @@ -954,7 +954,7 @@ pat inc inx %1 yields %1 -pat inl ($1>0) && ($10) && ($1<=STACKHELPERS) uses hlreg gen Call {plabel, ".faddr", $1} @@ -964,10 +964,10 @@ pat inl ($1>0) && ($1=0-STACKHELPERS) uses hlreg gen - Call {plabel, ".faddrn", $1} + Call {plabel, ".faddrn", 0-$1} inr {m} jnz {label,1f} inx hl diff --git a/tests/plat/bugs/bug-164-faddrn_c.c b/tests/plat/bugs/bug-164-faddrn_c.c new file mode 100644 index 000000000..1187de9f9 --- /dev/null +++ b/tests/plat/bugs/bug-164-faddrn_c.c @@ -0,0 +1,16 @@ +#include +#include "test.h" + +int doit(void) +{ + char buf[128]; + int i; + i++; +} + +int main(int argc, char *argv[]) +{ + doit(); + finished(); + return 0; +}