tcg: Canonicalize alignment flags in MemOp
Having observed e.g. al8+leq in dumps, canonicalize to al+leq. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
d2ba802657
commit
76e366e728
@ -2765,7 +2765,12 @@ void tcg_gen_lookup_and_goto_ptr(void)
|
|||||||
static inline MemOp tcg_canonicalize_memop(MemOp op, bool is64, bool st)
|
static inline MemOp tcg_canonicalize_memop(MemOp op, bool is64, bool st)
|
||||||
{
|
{
|
||||||
/* Trigger the asserts within as early as possible. */
|
/* 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) {
|
switch (op & MO_SIZE) {
|
||||||
case MO_8:
|
case MO_8:
|
||||||
|
Loading…
Reference in New Issue
Block a user