tcg-aarch64: Rearrange prologue insn order

Loads LR earlier so that it's available for the return branch earlier.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Implement tcg_register_jit

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Avoid add with zero in tlb load

Some guest env are small enough to reach the tlb with only a 12-bit addition.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Use tcg_out_call for qemu_ld/st

In some cases, a direct branch will be in range.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Use ADR to pass the return address to the ld/st helpers

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Use TCGMemOp in qemu_ld/st

Making the bswap conditional on the memop instead of a
compile-time test instead.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Implement TCG_TARGET_HAS_new_ldst

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Introduce tcg_out_insn_3507

Cleaning up the implementation of REV and REV16 at the same time.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Merge aarch64_ldst_get_data/type into tcg_out_op

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Replace aarch64_ldst_op_data with TCGMemOp

The definition of op_data included opcode bits, not just
the size field of the various ldst instructions.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Replace aarch64_ldst_op_data with AArch64LdstType

The definition of op_type wasn't encoded for the proper shift for
the field, making the implementations confusing.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Prefer unsigned offsets before signed offsets for ldst

The assembler seems to prefer them, perhaps we should too.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Merge tcg_out_movr with tcg_out_mov

In the one case we rely on zero-extension, use ORR directly.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-aarch64: Support stores of zero

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