diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2024-02-13 22:34:20 +0100 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2024-02-25 11:22:10 +0100 |
| commit | defef3f1a15be3b8f4e2074d581d43deb8296349 (patch) | |
| tree | 9602bde32ae50e879d66400730f524af6e4beda1 /src/arch | |
| parent | 88d0fef92d1ae0526ee63fede01e3887aa9f2a2a (diff) | |
| download | zig-defef3f1a15be3b8f4e2074d581d43deb8296349.tar.gz zig-defef3f1a15be3b8f4e2074d581d43deb8296349.zip | |
x86_64: fix inline asm match constraints
Diffstat (limited to 'src/arch')
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index b64c507708..f7afeed147 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -13500,6 +13500,7 @@ fn airAsm(self: *Self, inst: Air.Inst.Index) !void { } else if (constraint.len == 1 and std.ascii.isDigit(constraint[0])) arg: { const index = std.fmt.charToDigit(constraint[0], 10) catch unreachable; if (index >= args.items.len) return self.fail("constraint out of bounds: '{s}'", .{constraint}); + try self.genCopy(ty, args.items[index], input_mcv, .{}); break :arg args.items[index]; } else return self.fail("invalid constraint: '{s}'", .{constraint}); if (arg_mcv.getReg()) |reg| if (RegisterManager.indexOfRegIntoTracked(reg)) |_| { |
