From 4ef6864a155cbb23edb5e5aaa5aa34fdd0e53b39 Mon Sep 17 00:00:00 2001 From: Jakub Konka Date: Sun, 8 Nov 2020 14:49:31 +0100 Subject: Add move wide with zero (movz) instruction --- src/codegen.zig | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/codegen.zig') diff --git a/src/codegen.zig b/src/codegen.zig index 47d33570d5..d946c913a9 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -2504,7 +2504,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { else => unreachable, // unexpected register size } }, - .immediate => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), + .immediate => |x| { + if (x <= math.maxInt(u16)) { + mem.writeIntLittle(u32, try self.code.addManyAsArray(4), Instruction.movz(reg, @intCast(u16, x), 0).toU32()); + } else { + return self.fail(src, "TODO genSetReg with 32,48,64bit immediates", .{}); + } + }, .register => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), else => return self.fail(src, "TODO implement genSetReg for aarch64 {}", .{mcv}), }, -- cgit v1.2.3