ack/mach/powerpc/ncg
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
..
mach.c Add enough return types to the K&R C that the ACK builds (on Linux) using clang 2016-11-10 22:04:18 +01:00
mach.h Archival checkin (semi-working code). 2007-11-02 18:56:58 +00:00
table Rewrite how PowerPC ncg does conditional branches and tests. 2017-01-25 19:08:55 -05:00