authorgravatar for joachim.schmidt557@outlook.comJoachim Schmidt <joachim.schmidt557@outlook.com> 2021-01-18 21:51:56+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2021-01-18 22:22:53+01:00
log6c7e66613d57aec2f2949c065ea6431ff6c31f88
tree893d0c5e90cc82f9a90f5c2d3a62d3267d4181a1
parent1a05b545205863c6bf9cbdee9157ad0c440300ca

stage2 AArch64: implement jump


1 files changed, 7 insertions(+), 0 deletions(-)

src/codegen.zig+7
...@@ -2349,6 +2349,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {...@@ -2349,6 +2349,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type {
2349 return self.fail(src, "TODO: enable larger branch offset", .{});2349 return self.fail(src, "TODO: enable larger branch offset", .{});
2350 }2350 }
2351 },2351 },
2352 .aarch64, .aarch64_be, .aarch64_32 => {
2353 if (math.cast(i28, @intCast(i32, index) - @intCast(i32, self.code.items.len + 8))) |delta| {
2354 writeInt(u32, try self.code.addManyAsArray(4), Instruction.b(delta).toU32());
2355 } else |err| {
2356 return self.fail(src, "TODO: enable larger branch offset", .{});
2357 }
2358 },
2352 else => return self.fail(src, "TODO implement jump for {}", .{self.target.cpu.arch}),2359 else => return self.fail(src, "TODO implement jump for {}", .{self.target.cpu.arch}),
2353 }2360 }
2354 }2361 }