ack/mach/powerpc
George Koehler 48788287b8 Add more chances to put results in register variables.
When a rule `uses REG ... yields %a`, the result %a is always a
temporary, never a regvar.  If the EM code uses _stl_ to put the
result in a regvar, then ncg emits _mr_ to move %a to the regvar.

There are two ways to put the result in the regvar without %a:

  1. Yield a token, as in `yields {MUL_RR, %2, %1}`, so that _stl_
     can move the token to the regvar without using %a.

  2. Provide a pattern, like `sli stl`, that just puts the result
     in `{LOCAL, $2}` and not %a.

Allow some tokens, like SUM_RIS and XEQ, onto the stack; and add
tokens like MUL_RR, and patterns like `sli stl`.

Delete patterns for `stl lol` and `sdl ldl` to avoid an extra
temporary %a when the local is a regvar.  Delete `lal sti lal loi`
because it would emit wrong code.
2017-12-08 17:19:26 -05:00
..
as Rename RELOLIS to RELOPPC_LIS. 2017-10-18 15:39:31 -04:00
libem Use lwzu, stwu to tighten more loops. 2017-10-18 12:12:42 -04:00
libend Mostly add support for the experimental and largely broken linuxppc platform. 2016-09-15 23:12:03 +02:00
mcg Use a better NOT; and after remembering that PowerPC bit numbers are all 2017-01-07 01:03:15 +01:00
ncg Add more chances to put results in register variables. 2017-12-08 17:19:26 -05:00
top In PowerPC top, don't delete addi r0, r0, 0 2017-01-26 12:44:32 -05:00