From 4d4bbd76240e155151d0bf964debe09ea05fc7ef Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sat, 15 Jan 2022 18:28:39 +0100 Subject: stage2: refactor handling of immediates in x86_64 backend Fixes issues with incorrect operand sizes in a handful of cases and allows for usage of differently sized integers in Zig sources. --- test/stage2/x86_64.zig | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'test') diff --git a/test/stage2/x86_64.zig b/test/stage2/x86_64.zig index b0fe97e8f9..699302746d 100644 --- a/test/stage2/x86_64.zig +++ b/test/stage2/x86_64.zig @@ -1700,6 +1700,36 @@ pub fn addCases(ctx: *TestContext) !void { \\ if (!ok) unreachable; \\} , ""); + case.addCompareOutput( + \\pub fn main() void { + \\ var x: u16 = undefined; + \\ set(&x); + \\ assert(x == 123); + \\} + \\ + \\fn set(x: *u16) void { + \\ x.* = 123; + \\} + \\ + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + , ""); + case.addCompareOutput( + \\pub fn main() void { + \\ var x: u8 = undefined; + \\ set(&x); + \\ assert(x == 123); + \\} + \\ + \\fn set(x: *u8) void { + \\ x.* = 123; + \\} + \\ + \\fn assert(ok: bool) void { + \\ if (!ok) unreachable; + \\} + , ""); } { -- cgit v1.2.3