- if (!expand_atomic_compare_and_swap ((is_bool ? &target : NULL),
- (is_bool ? NULL : &target),
- mem, old_val, new_val, false,
- MEMMODEL_SEQ_CST, MEMMODEL_SEQ_CST))
+ pbool = poval = NULL;
+ if (target != const0_rtx)
+ {
+ if (is_bool)
+ pbool = ⌖
+ else
+ poval = ⌖
+ }
+ if (!expand_atomic_compare_and_swap (pbool, poval, mem, old_val, new_val,
+ false, MEMMODEL_SEQ_CST,
+ MEMMODEL_SEQ_CST))