aboutsummaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2024-02-13 22:34:20 +0100
committerJacob Young <jacobly0@users.noreply.github.com>2024-02-25 11:22:10 +0100
commitdefef3f1a15be3b8f4e2074d581d43deb8296349 (patch)
tree9602bde32ae50e879d66400730f524af6e4beda1 /src/arch
parent88d0fef92d1ae0526ee63fede01e3887aa9f2a2a (diff)
downloadzig-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.zig1
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)) |_| {