From 8bf4dc7e2589dfba2d78bfd23510dee99737a8e7 Mon Sep 17 00:00:00 2001 From: ths Date: Sat, 23 Dec 2006 00:49:32 +0000 Subject: [PATCH] Use memory barriers in FORCE_RET / RETURN. --- dyngen-exec.h | 2 +- target-mips/exec.h | 4 ++-- target-ppc/exec.h | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dyngen-exec.h b/dyngen-exec.h index 0c392283..2f387856 100644 --- a/dyngen-exec.h +++ b/dyngen-exec.h @@ -188,7 +188,7 @@ extern int printf(const char *, ...); #endif /* force GCC to generate only one epilog at the end of the function */ -#define FORCE_RET() asm volatile (""); +#define FORCE_RET() __asm__ __volatile__("" : : : "memory"); #ifndef OPPROTO #define OPPROTO diff --git a/target-mips/exec.h b/target-mips/exec.h index 9e1fcdc0..e364d8a6 100644 --- a/target-mips/exec.h +++ b/target-mips/exec.h @@ -45,9 +45,9 @@ register host_uint_t T2 asm(AREG3); #endif #if defined (DEBUG_OP) -#define RETURN() __asm__ __volatile__("nop"); +# define RETURN() __asm__ __volatile__("nop" : : : "memory"); #else -#define RETURN() __asm__ __volatile__(""); +# define RETURN() __asm__ __volatile__("" : : : "memory"); #endif #include "cpu.h" diff --git a/target-ppc/exec.h b/target-ppc/exec.h index 3ef0968b..89171f9d 100644 --- a/target-ppc/exec.h +++ b/target-ppc/exec.h @@ -38,9 +38,9 @@ register uint32_t T2 asm(AREG3); #define FT2 (env->ft2) #if defined (DEBUG_OP) -#define RETURN() __asm__ __volatile__("nop"); +# define RETURN() __asm__ __volatile__("nop" : : : "memory"); #else -#define RETURN() __asm__ __volatile__(""); +# define RETURN() __asm__ __volatile__("" : : : "memory"); #endif #include "cpu.h" -- 2.39.5