aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/codegen.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 20b2968c48..e33cacc787 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -303,6 +303,20 @@ pub fn generateSymbol(
},
},
.Pointer => switch (typed_value.val.tag()) {
+ .zero, .one, .int_u64, .int_big_positive => {
+ switch (target.cpu.arch.ptrBitWidth()) {
+ 32 => {
+ const x = typed_value.val.toUnsignedInt();
+ mem.writeInt(u32, try code.addManyAsArray(4), @intCast(u32, x), endian);
+ },
+ 64 => {
+ const x = typed_value.val.toUnsignedInt();
+ mem.writeInt(u64, try code.addManyAsArray(8), x, endian);
+ },
+ else => unreachable,
+ }
+ return Result{ .appended = {} };
+ },
.variable => {
const decl = typed_value.val.castTag(.variable).?.data.owner_decl;
return lowerDeclRef(bin_file, src_loc, typed_value, decl, code, debug_output, reloc_info);