From 2801bf6400123b72ec1dcac7552a35c41bec365e Mon Sep 17 00:00:00 2001 From: antlilja Date: Sat, 26 Aug 2023 18:34:14 +0200 Subject: [PATCH] LLVM Builder: Add strtab helper to String --- src/codegen/llvm/Builder.zig | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/codegen/llvm/Builder.zig b/src/codegen/llvm/Builder.zig index 20cc8dc5a2..2d9fe2c634 100644 --- a/src/codegen/llvm/Builder.zig +++ b/src/codegen/llvm/Builder.zig @@ -130,6 +130,11 @@ pub const String = enum(u32) { }; }; +pub const StrtabString = struct { + offset: usize, + size: usize, +}; + pub const Type = enum(u32) { void, half, @@ -2159,6 +2164,18 @@ pub const Global = struct { return builder.globals.keys()[@intFromEnum(self.unwrap(builder))]; } + pub fn strtab(self: Index, builder: *const Builder) StrtabString { + const name_index = self.name(builder).toIndex() orelse return .{ + .offset = 0, + .size = 0, + }; + + return .{ + .offset = builder.string_indices.items[name_index], + .size = builder.string_indices.items[name_index + 1] - builder.string_indices.items[name_index] - 1, + }; + } + pub fn typeOf(self: Index, builder: *const Builder) Type { return self.ptrConst(builder).type; }