authorgravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2020-04-05 14:08:25+10:00
committergravatar for quae@daurnimator.comdaurnimator <quae@daurnimator.com> 2020-04-05 14:08:25+10:00
loge9e43ed0d39f623d424f87fbd035f949cf5a3227
treeeb06e5334edfbd3be008fd9287f07b11a8336833
parentf9474443620c9c654c0a888a928557f8ec2815c8
signaturelock-open Commit is signed but in an unrecognized format.

compiler_rt/atomics: be consistent with `const value`


1 files changed, 11 insertions(+), 10 deletions(-)

lib/std/special/compiler_rt/atomics.zig+11-10
...@@ -154,7 +154,7 @@ fn atomicExchangeFn(comptime T: type) fn (*T, T, i32) callconv(.C) T {...@@ -154,7 +154,7 @@ fn atomicExchangeFn(comptime T: type) fn (*T, T, i32) callconv(.C) T {
154 if (@sizeOf(T) > largest_atomic_size) {154 if (@sizeOf(T) > largest_atomic_size) {
155 var sl = spinlocks.get(@ptrToInt(ptr));155 var sl = spinlocks.get(@ptrToInt(ptr));
156 defer sl.release();156 defer sl.release();
157 var value = ptr.*;157 const value = ptr.*;
158 ptr.* = val;158 ptr.* = val;
159 return value;159 return value;
160 } else {160 } else {
...@@ -177,11 +177,12 @@ fn atomicCompareExchangeFn(comptime T: type) fn (*T, *T, T, i32, i32) callconv(....@@ -177,11 +177,12 @@ fn atomicCompareExchangeFn(comptime T: type) fn (*T, *T, T, i32, i32) callconv(.
177 if (@sizeOf(T) > largest_atomic_size) {177 if (@sizeOf(T) > largest_atomic_size) {
178 var sl = spinlocks.get(@ptrToInt(ptr));178 var sl = spinlocks.get(@ptrToInt(ptr));
179 defer sl.release();179 defer sl.release();
180 if (ptr.* == expected.*) {180 const value = ptr.*;
181 if (value == expected.*) {
181 ptr.* = desired;182 ptr.* = desired;
182 return 1;183 return 1;
183 }184 }
184 expected.* = ptr.*;185 expected.* = value;
185 return 0;186 return 0;
186 } else {187 } else {
187 if (@cmpxchgStrong(T, ptr, expected.*, desired, .SeqCst, .SeqCst)) |old_value| {188 if (@cmpxchgStrong(T, ptr, expected.*, desired, .SeqCst, .SeqCst)) |old_value| {
...@@ -208,14 +209,14 @@ fn fetchFn(comptime T: type, comptime op: builtin.AtomicRmwOp) fn (*T, T, i32) c...@@ -208,14 +209,14 @@ fn fetchFn(comptime T: type, comptime op: builtin.AtomicRmwOp) fn (*T, T, i32) c
208 var sl = spinlocks.get(@ptrToInt(ptr));209 var sl = spinlocks.get(@ptrToInt(ptr));
209 defer sl.release();210 defer sl.release();
210211
211 var value = ptr.*;212 const value = ptr.*;
212 ptr.* = switch (op) {213 ptr.* = switch (op) {
213 .Add => ptr.* +% val,214 .Add => value +% val,
214 .Sub => ptr.* -% val,215 .Sub => value -% val,
215 .And => ptr.* & val,216 .And => value & val,
216 .Nand => ~(ptr.* & val),217 .Nand => ~(value & val),
217 .Or => ptr.* | val,218 .Or => value | val,
218 .Xor => ptr.* ^ val,219 .Xor => value ^ val,
219 else => @compileError("unsupported atomic op"),220 else => @compileError("unsupported atomic op"),
220 };221 };
221222