aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/codegen.zig7
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}),
}
}