Make dyngen_barrier() stronger on x86

GCC 5 will optimize out an empty 'asm volatile' in op_sraw_T0_T1, and then give us multiple return points. Add a nop so it doesn't do this, at the cost of lower code density.
This commit is contained in:
Dave Vasilevsky 2015-12-28 23:28:17 -05:00
parent c91ef547bd
commit f64b888f78

View File

@ -61,7 +61,11 @@
#endif #endif
// Force only one return point // Force only one return point
#if defined(__i386__) || defined(__x86_64__)
#define dyngen_barrier() asm volatile ("nop")
#else
#define dyngen_barrier() asm volatile ("") #define dyngen_barrier() asm volatile ("")
#endif
#ifndef OPPROTO #ifndef OPPROTO
#define OPPROTO #define OPPROTO