Tweak some tokens in PowerPC ncg.
authorGeorge Koehler <xkernigh@netscape.net>
Wed, 1 Feb 2017 19:29:40 +0000 (14:29 -0500)
committerGeorge Koehler <xkernigh@netscape.net>
Wed, 1 Feb 2017 19:29:40 +0000 (14:29 -0500)
commit2cf24135a8c193d0b1cdeecc4abe84b308f85bf7
tree803240b2e50cecbc7458082e47266c6ec474e08a
parent1a44036a174795fb8fc923625b6d720062f3d2d3
Tweak some tokens in PowerPC ncg.

Remove the GPRINDIRECT token, and use the IND_RC_* tokens as operands
to instructions.  We no longer need to unpack an IND_RC_* token and
repack it as a GPRINDIRECT to use it in an instruction.

Allow storing IND_ALL_B and IND_ALL_H in register variables.  Create a
set ANY_BHW for anything that we can store in a regvar.

Push register variables on the stack without using GPRE, by changing
stwu to accept LOCAL.  Then ncg will replace the string ">>> BUG IN
LOCAL" with the register name.  (I copied ">>> BUG IN LOCAL" from
mach/arm/ncg/table.)

Fix the rule for "pat lil inreg($1)>0" to yield a IND_RC_W token, not
a register.  We might need to kill the token with "kills MEMORY".

Rename CONST_ALL to CONST_STACK, because it only includes constants on
the stack, and excludes CONST tokens.  Instructions still don't allow
CONST_STACK operands, so we still need to repack each CONST_STACK as a
CONST to use it in an instruction.

Rename LABEL_OFFSET_HI to just LABEL_HI, and same for LABEL_HA and
LABEL_HO.
mach/powerpc/ncg/table