Commit 2bb8656d authored by Richard Henderson's avatar Richard Henderson
Browse files

tcg: Tidy generated code for tcg_outN



Aliasing was forcing s->code_ptr to be re-read after the store.
Keep the pointer in a local variable to help the compiler.

Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
parent f7ad538e
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -121,14 +121,16 @@ static inline void tcg_out8(TCGContext *s, uint8_t v)

static inline void tcg_out16(TCGContext *s, uint16_t v)
{
    *(uint16_t *)s->code_ptr = v;
    s->code_ptr += 2;
    uint8_t *p = s->code_ptr;
    *(uint16_t *)p = v;
    s->code_ptr = p + 2;
}

static inline void tcg_out32(TCGContext *s, uint32_t v)
{
    *(uint32_t *)s->code_ptr = v;
    s->code_ptr += 4;
    uint8_t *p = s->code_ptr;
    *(uint32_t *)p = v;
    s->code_ptr = p + 4;
}

/* label relocation processing */