aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-09-01 14:34:11 +0200
committerlemon <lsof@mailbox.org>2022-09-01 14:34:11 +0200
commitcbdd2b6be3252215bbca71b036f00add84c04714 (patch)
treed6552c31d48c7bf21e68d4e1eb7d1f0f51f59f74 /src
parent20be17c11145ac2243eb537c8478be20e4bceb54 (diff)
add some targets
Diffstat (limited to 'src')
-rw-r--r--src/targ.cff49
1 files changed, 47 insertions, 2 deletions
diff --git a/src/targ.cff b/src/targ.cff
index fefd10a..f0d5645 100644
--- a/src/targ.cff
+++ b/src/targ.cff
@@ -12,10 +12,52 @@ static const targs []const Targ = {
.sizesize: 8,
.f64align: 8,
.valistsize: 24, .valistalign: 8,
- .valistllvmty: "{ i32, i32, i8*, i8* }",
+ .valistllvmty: "{ i32, i32, ptr, ptr }",
.charsigned: #t,
.shortenum: #f,
- }
+ },
+ {
+ "amd64-windows",
+ .ptrsize: 8,
+ .intsize: 4,
+ .i64align: 8,
+ .longsize: 4, .longalign: 4,
+ .llongsize: 8, .llongalign: 8,
+ .sizesize: 8,
+ .f64align: 8,
+ .valistsize: 8, .valistalign: 8,
+ .valistllvmty: "ptr",
+ .charsigned: #t,
+ .shortenum: #f,
+ },
+ {
+ "aarch64-sysv",
+ .ptrsize: 8,
+ .intsize: 4,
+ .i64align: 8,
+ .longsize: 8, .longalign: 8,
+ .llongsize: 8, .llongalign: 8,
+ .sizesize: 8,
+ .f64align: 8,
+ .valistsize: 32, .valistalign: 8,
+ .valistllvmty: "{ ptr, ptr, ptr, i32, i32 }",
+ .charsigned: #f,
+ .shortenum: #f,
+ },
+ {
+ "i386-sysv",
+ .ptrsize: 4,
+ .intsize: 4,
+ .i64align: 4,
+ .longsize: 4, .longalign: 4,
+ .llongsize: 8, .llongalign: 4,
+ .sizesize: 4,
+ .f64align: 4,
+ .valistsize: 4, .valistalign: 4,
+ .valistllvmty: "ptr",
+ .charsigned: #t,
+ .shortenum: #f,
+ },
};
extern static g_targ Targ = {};
@@ -40,6 +82,9 @@ extern fn triple2targ(triple *const u8) *const u8 {
defmacro restp(s) [ (strstr(rest, s) != #null) ]
switch {
case archp("x86_64") and !restp("windows"); return "amd64-sysv";
+ case archp("x86_64") and restp("windows"); return "amd64-windows";
+ case archp("aarch64") and !restp("windows"); return "aarch64-sysv";
+ case archp("i386") and !restp("windows"); return "i386-sysv";
}
return #null;
}