ack/mach/powerpc
George Koehler f64b7d8ea0 Rewrite how PowerPC ncg does conditional branches and tests.
The rewritten code rules bring 3 new features:

  1.  The new rules compare a small constant with a register by
      reversing the comparison and using `cmpwi` or `cmplwi`.  The old
      rules put the constant in a register.

  2.  The new rules emit shorter code to yield the test results,
      without referencing the tables in mach/powerpc/ncg/tge.s.

  3.  The new rules use the extended `beq` and relatives, not the
      basic `bc`, in the assembly output.

I delete the old tristate tokens and the old moves, because they
confused me.  Some of the old moves weren't really moves.  For
example, `move R3, C0` and then `move C0, R0` did not move r3 to r0.

I rename C0 to CR0.
2017-01-25 19:08:55 -05:00
..
as Teach the assembler about PowerPC extended mnemonics. 2017-01-21 23:49:29 -05:00
libem In PowerPC libem, use the new features of our assembler. 2017-01-23 17:16:39 -05: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 Rewrite how PowerPC ncg does conditional branches and tests. 2017-01-25 19:08:55 -05:00
top Get top working with the PowerPC; use it to eliminate useless branches and 2016-10-29 23:37:11 +02:00