[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 64/66] tcg: Canonicalize alignment flags in MemOp
From: |
Richard Henderson |
Subject: |
[PATCH v3 64/66] tcg: Canonicalize alignment flags in MemOp |
Date: |
Wed, 18 Aug 2021 09:19:18 -1000 |
Having observed e.g. al8+leq in dumps, canonicalize to al+leq.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
tcg/tcg-op.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tcg/tcg-op.c b/tcg/tcg-op.c
index b1cfd36f29..61b492d89f 100644
--- a/tcg/tcg-op.c
+++ b/tcg/tcg-op.c
@@ -2765,7 +2765,12 @@ void tcg_gen_lookup_and_goto_ptr(void)
static inline MemOp tcg_canonicalize_memop(MemOp op, bool is64, bool st)
{
/* Trigger the asserts within as early as possible. */
- (void)get_alignment_bits(op);
+ unsigned a_bits = get_alignment_bits(op);
+
+ /* Prefer MO_ALIGN+MO_XX over MO_ALIGN_XX+MO_XX */
+ if (a_bits == (op & MO_SIZE)) {
+ op = (op & ~MO_AMASK) | MO_ALIGN;
+ }
switch (op & MO_SIZE) {
case MO_8:
--
2.25.1
- Re: [PATCH v3 60/66] tcg/aarch64: Support raising sigbus for user-only, (continued)
[PATCH v3 64/66] tcg: Canonicalize alignment flags in MemOp,
Richard Henderson <=
[PATCH v3 65/66] tcg/riscv: Support raising sigbus for user-only, Richard Henderson, 2021/08/18
[PATCH v3 66/66] tcg/riscv: Remove add with zero on user-only memory access, Richard Henderson, 2021/08/18