tcg-ppc64: Relax register restrictions in tcg_out_mem_long

In order to be able to use tcg_out_ld/st sensibly with scratch
registers, assert only when we'd incorrectly clobber a scratch.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Use tcg_out_{ld,st,cmp} internally

Rather than using tcg_out32 and opcodes directly.  This allows us
to remove LD_ADDR and CMP_L macros.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Make TCG_AREG0 and TCG_REG_CALL_STACK enum constants

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Move call macros out of tcg-target.h

These values are private to tcg.c; we don't need to expose
this nonsense to the translators.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Fix TCG_TARGET_CALL_STACK_OFFSET

The calling convention reserves space for the 8 register parameters on
the stack, so using only 6*8=48 as the offset was wrong.  We never saw
this bug because we don't have any helpers with more than 5 parameters.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Better parameterize the stack frame

In preparation for supporting other ABIs.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Support the ppc64 elfv2 ABI

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Merge 32-bit ABIs into the prologue / frame code

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Begin merging ppc32 with ppc64

Just enough to compile, assuming you edit config-host.mak manually.
It will still abort at runtime, due to missing brcond2, setcond2, mulu2.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Merge ppc32 brcond2, setcond2, mulu2

Now passes tcg_add_target_add_op_defs assertions, but
not complete enough to function.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-ppc64: Merge ppc32 qemu_ld/st

Signed-off-by: Richard Henderson <rth@twiddle.net>