Commit 70ead4341212ecb3181d5c780284cef0fc7b51fc

Authored by ths
1 parent 5bf08934

Use memory barriers in FORCE_RET / RETURN.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2273 c046a42c-6fe2-441c-8c8c-71466251a162
dyngen-exec.h
... ... @@ -188,7 +188,7 @@ extern int printf(const char *, ...);
188 188 #endif
189 189  
190 190 /* force GCC to generate only one epilog at the end of the function */
191   -#define FORCE_RET() asm volatile ("");
  191 +#define FORCE_RET() __asm__ __volatile__("" : : : "memory");
192 192  
193 193 #ifndef OPPROTO
194 194 #define OPPROTO
... ...
target-mips/exec.h
... ... @@ -45,9 +45,9 @@ register host_uint_t T2 asm(AREG3);
45 45 #endif
46 46  
47 47 #if defined (DEBUG_OP)
48   -#define RETURN() __asm__ __volatile__("nop");
  48 +# define RETURN() __asm__ __volatile__("nop" : : : "memory");
49 49 #else
50   -#define RETURN() __asm__ __volatile__("");
  50 +# define RETURN() __asm__ __volatile__("" : : : "memory");
51 51 #endif
52 52  
53 53 #include "cpu.h"
... ...
target-ppc/exec.h
... ... @@ -38,9 +38,9 @@ register uint32_t T2 asm(AREG3);
38 38 #define FT2 (env->ft2)
39 39  
40 40 #if defined (DEBUG_OP)
41   -#define RETURN() __asm__ __volatile__("nop");
  41 +# define RETURN() __asm__ __volatile__("nop" : : : "memory");
42 42 #else
43   -#define RETURN() __asm__ __volatile__("");
  43 +# define RETURN() __asm__ __volatile__("" : : : "memory");
44 44 #endif
45 45  
46 46 #include "cpu.h"
... ...