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: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
f7ad538e1e
commit
2bb8656dad
10
tcg/tcg.c
10
tcg/tcg.c
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user