diff options
| author | Jacob Young <jacobly0@users.noreply.github.com> | 2023-10-20 03:38:27 -0400 |
|---|---|---|
| committer | Jacob Young <jacobly0@users.noreply.github.com> | 2023-10-23 22:42:18 -0400 |
| commit | f7482a5c95dd549eb3da103eab42bac881ba0498 (patch) | |
| tree | 6e84d04898f32d1e8d7ebb2e4baf44c8487e522e /src/arch/x86_64/CodeGen.zig | |
| parent | 8f69e977f16d55539d55e8c84852a7c1c6a8cdf3 (diff) | |
| download | zig-f7482a5c95dd549eb3da103eab42bac881ba0498.tar.gz zig-f7482a5c95dd549eb3da103eab42bac881ba0498.zip | |
x86_64: implement inline asm GOT reference for PIC targets
Diffstat (limited to 'src/arch/x86_64/CodeGen.zig')
| -rw-r--r-- | src/arch/x86_64/CodeGen.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/arch/x86_64/CodeGen.zig b/src/arch/x86_64/CodeGen.zig index c7b3f5c304..b9f352480b 100644 --- a/src/arch/x86_64/CodeGen.zig +++ b/src/arch/x86_64/CodeGen.zig @@ -11315,6 +11315,10 @@ fn airAsm(self: *Self, inst: Air.Inst.Index) !void { ) } else return self.fail("invalid modifier: '{s}'", .{modifier}), + .lea_got => |sym_index| if (mem.eql(u8, modifier, "P")) + .{ .reg = try self.copyToTmpRegister(Type.usize, .{ .lea_got = sym_index }) } + else + return self.fail("invalid modifier: '{s}'", .{modifier}), else => return self.fail("invalid constraint: '{s}'", .{op_str}), }; } else if (mem.startsWith(u8, op_str, "$")) { |
