X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=urcu%2Fuatomic_arch_s390.h;fp=urcu%2Fuatomic_arch_s390.h;h=b67259ec082c7d26ac947ec6087c5f98e12963a4;hp=6b4e17eb78ad7cda400a0cae63e24f863502ea89;hb=2837ec4082909692bd56aa2b0e217d3e30a3e71b;hpb=9c697e4db52c0af85da8a44f26a2c5e04ad27b1b diff --git a/urcu/uatomic_arch_s390.h b/urcu/uatomic_arch_s390.h index 6b4e17e..b67259e 100644 --- a/urcu/uatomic_arch_s390.h +++ b/urcu/uatomic_arch_s390.h @@ -52,6 +52,7 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len) { switch (len) { case 4: + { unsigned int old_val; __asm__ __volatile__( @@ -60,8 +61,10 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len) : "=&r"(old_val), "=m" (*addr) : "r"(val), "m" (*addr) : "memory", "cc"); + } #if (BITS_PER_LONG == 64) case 8: + { unsigned long old_val; __asm__ __volatile__( @@ -70,6 +73,7 @@ unsigned long _uatomic_exchange(volatile void *addr, unsigned long val, int len) : "=&r"(old_val), "=m" (*addr) : "r"(val), "m" (*addr) : "memory", "cc"); + } #endif default: __asm__ __volatile__(".long 0xd00d00"); @@ -90,6 +94,7 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old, { switch (len) { case 4: + { unsigned int old_val = (unsigned int)old; __asm__ __volatile__( @@ -98,6 +103,7 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old, : "r"(new) : "memory", "cc"); return old_val; + } #if (BITS_PER_LONG == 64) case 8: __asm__ __volatile__(