From b642fa24a67f88082b768d39e443b03c7446be76 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 10 Mar 2022 15:32:10 -0700 Subject: stage2: implement integer pointer constants --- src/codegen.zig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') 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); -- cgit v1.2.3