[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 01/17] tcg/ppc: disable atomic write check on ppc32
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PULL 01/17] tcg/ppc: disable atomic write check on ppc32 |
Date: |
Sun, 17 Sep 2017 08:05:19 -0700 |
From: Philippe Mathieu-Daudé <address@hidden>
This fixes building for ppc64 on ppc32 (changed in 5964fca8a12c):
tcg/ppc/tcg-target.inc.c: In function 'tb_target_set_jmp_target':
include/qemu/compiler.h:86:30: error: static assertion failed: \
"not expecting: sizeof(*(uint64_t *)jmp_addr) > ATOMIC_REG_SIZE"
QEMU_BUILD_BUG_ON(sizeof(*ptr) > ATOMIC_REG_SIZE); \
^
tcg/ppc/tcg-target.inc.c:1377:9: note: in expansion of macro 'atomic_set'
atomic_set((uint64_t *)jmp_addr, pair);
^
Suggested-by: Richard Henderson <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Message-Id: <address@hidden>
[rth: Added commentary requested by pmm.]
Signed-off-by: Richard Henderson <address@hidden>
---
tcg/ppc/tcg-target.inc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c
index 21d764c102..3c9355844a 100644
--- a/tcg/ppc/tcg-target.inc.c
+++ b/tcg/ppc/tcg-target.inc.c
@@ -1374,7 +1374,9 @@ void tb_target_set_jmp_target(uintptr_t tc_ptr, uintptr_t
jmp_addr,
pair = (uint64_t)i2 << 32 | i1;
#endif
- atomic_set((uint64_t *)jmp_addr, pair);
+ /* As per the enclosing if, this is ppc64. Avoid the _Static_assert
+ within atomic_set that would fail to build a ppc32 host. */
+ atomic_set__nocheck((uint64_t *)jmp_addr, pair);
flush_icache_range(jmp_addr, jmp_addr + 8);
} else {
intptr_t diff = addr - jmp_addr;
--
2.13.5
- [Qemu-devel] [PULL 00/17] TCG queued patches, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 01/17] tcg/ppc: disable atomic write check on ppc32,
Richard Henderson <=
- [Qemu-devel] [PULL 04/17] accel/tcg: move tcg-runtime to accel/tcg/, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 02/17] accel/tcg: move softmmu_template.h to accel/tcg/, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 03/17] accel/tcg: move user-exec to accel/tcg/, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 06/17] accel/tcg: move USER code to user-exec.c, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 05/17] accel/tcg: move atomic_template.h to accel/tcg/, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 07/17] tcg: Add tcg_op_supported, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 10/17] tcg: Remove tcg_regset_{or, and, andnot, not}, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 08/17] tcg: Remove tcg_regset_clear, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 09/17] tcg: Remove tcg_regset_set, Richard Henderson, 2017/09/17
- [Qemu-devel] [PULL 11/17] tcg: Remove tcg_regset_set32, Richard Henderson, 2017/09/17