| author | |
| committer | |
| log | 6d9bdc8733419ebfc9527d114b637c57d3fd8a42 |
| tree | 7a2ed1ad926b0507612563675adfed555a8471fd |
| parent | a2f6e068b0082692f2c5475c1e31290b9c016010 |
3 files changed, 3 insertions(+), 7 deletions(-)
src/arch/x86_64/CodeGen.zig+1-1| ... | ... | @@ -7242,7 +7242,7 @@ fn airCmpxchg(self: *Self, inst: Air.Inst.Index) !void { |
| 7242 | 7242 | |
| 7243 | 7243 | try self.spillEflagsIfOccupied(); |
| 7244 | 7244 | _ = try self.addInst(.{ .tag = .cmpxchg, .ops = .lock_mr_sib, .data = .{ .rx = .{ |
| 7245 | .r = new_reg, | |
| 7245 | .r = registerAlias(new_reg, val_abi_size), | |
| 7246 | 7246 | .payload = try self.addExtra(Mir.MemorySib.encode(ptr_mem)), |
| 7247 | 7247 | } } }); |
| 7248 | 7248 |
src/arch/x86_64/encodings.zig+2-2| ... | ... | @@ -257,8 +257,8 @@ pub const table = &[_]Entry{ |
| 257 | 257 | |
| 258 | 258 | .{ .cmpxchg, .mr, .rm8, .r8, .none, .none, &.{ 0x0f, 0xb0 }, 0, .none }, |
| 259 | 259 | .{ .cmpxchg, .mr, .rm8, .r8, .none, .none, &.{ 0x0f, 0xb0 }, 0, .rex }, |
| 260 | .{ .cmpxchg, .mr, .rm16, .r16, .none, .none, &.{ 0x0f, 0xb1 }, 0, .rex }, | |
| 261 | .{ .cmpxchg, .mr, .rm32, .r32, .none, .none, &.{ 0x0f, 0xb1 }, 0, .rex }, | |
| 260 | .{ .cmpxchg, .mr, .rm16, .r16, .none, .none, &.{ 0x0f, 0xb1 }, 0, .none }, | |
| 261 | .{ .cmpxchg, .mr, .rm32, .r32, .none, .none, &.{ 0x0f, 0xb1 }, 0, .none }, | |
| 262 | 262 | .{ .cmpxchg, .mr, .rm64, .r64, .none, .none, &.{ 0x0f, 0xb1 }, 0, .long }, |
| 263 | 263 | |
| 264 | 264 | .{ .cmpxchg8b , .m, .m64, .none, .none, .none, &.{ 0x0f, 0xc7 }, 1, .none }, |
test/behavior/atomics.zig-4| ... | ... | @@ -5,7 +5,6 @@ const expectEqual = std.testing.expectEqual; |
| 5 | 5 | |
| 6 | 6 | test "cmpxchg" { |
| 7 | 7 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 8 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | |
| 9 | 8 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 10 | 9 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 11 | 10 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| ... | ... | @@ -96,7 +95,6 @@ test "cmpxchg with ptr" { |
| 96 | 95 | |
| 97 | 96 | test "cmpxchg with ignored result" { |
| 98 | 97 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 99 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | |
| 100 | 98 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 101 | 99 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 102 | 100 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| ... | ... | @@ -143,7 +141,6 @@ var a_global_variable = @as(u32, 1234); |
| 143 | 141 | |
| 144 | 142 | test "cmpxchg on a global variable" { |
| 145 | 143 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 146 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | |
| 147 | 144 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 148 | 145 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 149 | 146 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| ... | ... | @@ -384,7 +381,6 @@ fn testAtomicRmwInt128(comptime signedness: std.builtin.Signedness) !void { |
| 384 | 381 | |
| 385 | 382 | test "atomics with different types" { |
| 386 | 383 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 387 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | |
| 388 | 384 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 389 | 385 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 390 | 386 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |