On 5/21/23 04:15, Philippe Mathieu-Daudé wrote:
Hi Richard,
On 20/5/23 18:26, Richard Henderson wrote:
With the current structure of cputlb.c, there is no difference
between the little-endian and big-endian entry points, aside
from the assert. Unify the pairs of functions.
The only use of the functions with explicit endianness was in
target/sparc64, and that was only to satisfy the assert.
I'm having hard time to follow all the handling of the various
ASI definitions from target/sparc/asi.h. ...
Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
include/exec/cpu_ldst.h | 58 ++-----
accel/tcg/cputlb.c | 122 +++-----------
accel/tcg/user-exec.c | 322 ++++++++++--------------------------
target/arm/tcg/m_helper.c | 4 +-
target/sparc/ldst_helper.c | 18 +-
accel/tcg/ldst_common.c.inc | 24 +--
6 files changed, 137 insertions(+), 411 deletions(-)
diff --git a/target/sparc/ldst_helper.c b/target/sparc/ldst_helper.c
index 7972d56a72..981a47d8bb 100644
--- a/target/sparc/ldst_helper.c
+++ b/target/sparc/ldst_helper.c
@@ -1334,25 +1334,13 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong
addr,
Shouldn't we propagate the ASI endianness?
Already done in translate, get_asi():
/* The little-endian asis all have bit 3 set. */
if (asi & 8) {
memop ^= MO_BSWAP;
}
r~