aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-05-24 19:23:33 +0200
committerAndrew Kelley <andrew@ziglang.org>2022-05-24 15:34:52 -0700
commit8c49420928b29271429cc09b5d5f1447a942f8d6 (patch)
treea6dfcb22fb8d86ba4159ed12491a67cc065e9b61 /src/codegen.zig
parentc043d57cabdc4db20a55a9877ec607c81d15442f (diff)
downloadzig-8c49420928b29271429cc09b5d5f1447a942f8d6.tar.gz
zig-8c49420928b29271429cc09b5d5f1447a942f8d6.zip
aarch64: update for new error union layout
Diffstat (limited to 'src/codegen.zig')
-rw-r--r--src/codegen.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig
index 4f400fa7fc..86f2613b5f 100644
--- a/src/codegen.zig
+++ b/src/codegen.zig
@@ -890,3 +890,19 @@ fn lowerDeclRef(
return Result{ .appended = {} };
}
+
+pub fn errUnionPayloadOffset(ty: Type, target: std.Target) u64 {
+ const payload_ty = ty.errorUnionPayload();
+ return if (Type.anyerror.abiAlignment(target) >= payload_ty.abiAlignment(target))
+ Type.anyerror.abiSize(target)
+ else
+ 0;
+}
+
+pub fn errUnionErrOffset(ty: Type, target: std.Target) u64 {
+ const payload_ty = ty.errorUnionPayload();
+ return if (Type.anyerror.abiAlignment(target) >= payload_ty.abiAlignment(target))
+ 0
+ else
+ payload_ty.abiSize(target);
+}