[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 02/26] tcg: Avoid stores to unaligned addresses
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 02/26] tcg: Avoid stores to unaligned addresses |
Date: |
Mon, 12 May 2014 16:30:50 -0700 |
From: Peter Maydell <address@hidden>
Avoid stores to unaligned addresses in TCG code generation, by using the
usual memcpy() approach. (Using bswap.h would drag a lot of QEMU baggage
into TCG, so it's simpler just to do direct memcpy() here.)
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Peter Maydell <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/tcg.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tcg/tcg.c b/tcg/tcg.c
index e71f7a0..293f00b 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -125,21 +125,21 @@ static inline void tcg_out8(TCGContext *s, uint8_t v)
static inline void tcg_out16(TCGContext *s, uint16_t v)
{
uint8_t *p = s->code_ptr;
- *(uint16_t *)p = v;
+ memcpy(p, &v, sizeof(v));
s->code_ptr = p + 2;
}
static inline void tcg_out32(TCGContext *s, uint32_t v)
{
uint8_t *p = s->code_ptr;
- *(uint32_t *)p = v;
+ memcpy(p, &v, sizeof(v));
s->code_ptr = p + 4;
}
static inline void tcg_out64(TCGContext *s, uint64_t v)
{
uint8_t *p = s->code_ptr;
- *(uint64_t *)p = v;
+ memcpy(p, &v, sizeof(v));
s->code_ptr = p + 8;
}
--
1.9.0
- [Qemu-devel] [PULL 00/26] tcg updates, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 01/26] exec-all.h: Use stl_p to avoid undefined behaviour patching x86 jumps, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 02/26] tcg: Avoid stores to unaligned addresses,
Richard Henderson <=
- [Qemu-devel] [PULL 03/26] tcg: Avoid undefined behaviour patching code at unaligned addresses, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 04/26] tcg: Introduce byte pointer arithmetic helpers, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 05/26] tcg: Define tcg_insn_unit for code pointers, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 06/26] tcg-i386: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 08/26] tcg-ppc: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 07/26] tcg-ppc64: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 09/26] tcg-sparc: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 10/26] tcg-arm: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 11/26] tcg-aarch64: Define TCG_TARGET_INSN_UNIT_SIZE, Richard Henderson, 2014/05/12
- [Qemu-devel] [PULL 17/26] tcg-i386: Rename tcg_out_calli to tcg_out_call, Richard Henderson, 2014/05/12