Add a rule for sdl ldl $1==$2 to work around a bug.
authorGeorge Koehler <xkernigh@netscape.net>
Fri, 30 Sep 2016 15:50:50 +0000 (11:50 -0400)
committerGeorge Koehler <xkernigh@netscape.net>
Fri, 30 Sep 2016 15:50:50 +0000 (11:50 -0400)
commite22c8881e7e0fc683e3fddb8aa9844f4a4c7e8ff
treea4653ee230245c85a1ba322e64283029b2141223
parent6ae415d48b44da1dd8e9d2fe6333bb1bdb85c2cf
Add a rule for sdl ldl $1==$2 to work around a bug.

In our powerpc table, sdl fails to kill the old value of the local.
This is a bug, because a later ldl can load the old value instead of
the newly stored value.  By rewriting "sdl 0" "ldl 0" as "dup 8" "sdl
0", the newly added rule works around the bug, but only when the ldl
is immediately after the sdl.

This rule improves code that uses double-precision floating point.
The output of printf("%f", 6.0) in C changes from all zero digits to
"6000000" but still doesn't print the decimal point.  The result of
atof("-123.456") becomes correct.  In startrek, I can now move the
Enterprise, but I still can't fire phasers without crashing the game.

We already have a rule for stl lol $1==$2.  We had two copies of the
rule, so I am deleting the second copy.
mach/powerpc/ncg/table