aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/llvm/Builder.zig17
1 files changed, 17 insertions, 0 deletions
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;
}