tcg-arm: Use ldrd/strd for appropriate qemu_ld/st64

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Rearrange slow-path qemu_ld/st

Instead of using a branch-call-branch sequence, arrange for a
call-branch sequence, using the ARM's conditional call insn.
This reduces the size of the slow-path within the TB, and makes
the GETPC_EXT implementation identical for TCG and not-TCG.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Use strd for tcg_out_arg_reg64

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Use QEMU_BUILD_BUG_ON to verify constraints on tlb

One of the two constraints we already checked via #if, but
the tlb offset distance was only checked at runtime.

Signed-off-by: Richard Henderson <rth@twiddle.net>
tcg-arm: Better pipeline for softmmu tlb access

Moves the load for the tlb addend earlier, to better load latency.
Avoids the writeback from the comparator load, since we know how
to adjust the offset between the two loads.

 :  e2862c03      add   r2, r6, #768    ; 0x300
 :  e20c00ff      and   r0, ip, #255    ; 0xff
 :  e0822280      add   r2, r2, r0, lsl #5
-:  e1e209d8      ldrd  r0, [r2, #152]!
+:  e1c209d8      ldrd  r0, [r2, #152]
 :  e31b0007      tst   fp, #7  ; 0x7
+:  e59220a8      ldr   r2, [r2, #168]
 :  0150068c      cmpeq r0, ip, lsl #13
 :  01510007      cmpeq r1, r7
-:  e5921010      ldr   r1, [r2, #16]
-:  018b40f1      strdeq        r4, [fp, r1]
+:  018b40f2      strdeq        r4, [fp, r2]
 :  1b0000cb      blne  0x75e7e6e4

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