tcg/arm: fix TLB access in qemu-ld/st ops
authorAurelien Jarno <aurelien@aurel32.net>
Tue, 9 Oct 2012 19:53:11 +0000 (21:53 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Sat, 24 Nov 2012 12:19:53 +0000 (13:19 +0100)
commitd17bd1d8cc27f8c1a24c65f555a77a661c332b7f
treee0c6555b1cf94b4ff3fe521c86c746b66aeea325
parent1ccbc2851282564308f790753d7158487b6af8e2
tcg/arm: fix TLB access in qemu-ld/st ops

The TCG arm backend considers likely that the offset to the TLB
entries does not exceed 12 bits for mem_index = 0. In practice this is
not true for at least the MIPS target.

The current patch fixes that by loading the bits 23-12 with a separate
instruction, and using loads with address writeback, independently of
the value of mem_idx. In total this allow a 24-bit offset, which is a
lot more than needed.

Cc: Andrzej Zaborowski <balrogg@gmail.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: qemu-stable@nongnu.org
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
tcg/arm/tcg-target.c