diff options
| author | joachimschmidt557 <joachim.schmidt557@outlook.com> | 2021-01-18 21:51:56 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2021-01-18 22:22:53 +0100 |
| commit | 6c7e66613d57aec2f2949c065ea6431ff6c31f88 (patch) | |
| tree | 893d0c5e90cc82f9a90f5c2d3a62d3267d4181a1 | |
| parent | 1a05b545205863c6bf9cbdee9157ad0c440300ca (diff) | |
| download | zig-6c7e66613d57aec2f2949c065ea6431ff6c31f88.tar.gz zig-6c7e66613d57aec2f2949c065ea6431ff6c31f88.zip | |
stage2 AArch64: implement jump
| -rw-r--r-- | src/codegen.zig | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 9566856122..14572c2012 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -2349,6 +2349,13 @@ fn Function(comptime arch: std.Target.Cpu.Arch) type { return self.fail(src, "TODO: enable larger branch offset", .{}); } }, + .aarch64, .aarch64_be, .aarch64_32 => { + if (math.cast(i28, @intCast(i32, index) - @intCast(i32, self.code.items.len + 8))) |delta| { + writeInt(u32, try self.code.addManyAsArray(4), Instruction.b(delta).toU32()); + } else |err| { + return self.fail(src, "TODO: enable larger branch offset", .{}); + } + }, else => return self.fail(src, "TODO implement jump for {}", .{self.target.cpu.arch}), } } |
