v850: Use __volatile__ qualifier on test_bit asm statements
PATCH 1/1 v850: Use __volatile__ qualifier on test_bit asm statements
Otherwise recent versions of gcc seem to optimize away some necessary tests.
Signed-off-by Miles Bader <[email protected]>
include/asm-v850/bitops.h | 20 ++++++++++---------- 1 files changed, 10 insertions(+), 10 deletions(-)
include/asm-v850/bitops.h +10 -10
@@ -127,20 +127,20 @@#define test_and_change_bit (nr, addr) __tns_atomic_bit_op ("not1", nr, addr) -#define __const_test_bit (nr, addr) \ - ({ int __test_bit_res; \ - __asm__ ("tst1 (%1 - 0x123), %2; setf nz, %0" \ - : "=r" (__test_bit_res) \ - : "g" (((nr) & 0x7) + 0x123), \ - "m" (*((const char *)(addr) + ((nr) >> 3)))); \ - __test_bit_res; \ +#define __const_test_bit (nr, addr) \ + ({ int __test_bit_res; \ + __asm__ __volatile__ ("tst1 (%1 - 0x123), %2; setf nz, %0" \ + : "=r" (__test_bit_res) \ + : "g" (((nr) & 0x7) + 0x123), \ + "m" (*((const char *)(addr) + ((nr) >> 3)))); \ + __test_bit_res; \ })extern __inline__int __test_bit (int nr,const void *addr) {int res; - __asm__ ("tst1 %1, [%2]; setf nz, %0" - :"=r" (res) - :"r" (nr &0x7 ),"r" (addr + (nr >>3 ))); + __asm__ __volatile__ ("tst1 %1, [%2]; setf nz, %0" + :"=r" (res) + :"r" (nr &0x7 ),"r" (addr + (nr >>3 )));return res; }#define test_bit (nr,addr) \