aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-02-20 14:19:52 +0000
committergingerBill <bill@gingerbill.org>2022-02-20 14:19:52 +0000
commit1bec9e5331bad9aaecee8ba80bf2cbeb97bb3ef0 (patch)
tree14c4ffc406a42eab4c792e4d8a4272ee46856ea8 /src/llvm_abi.cpp
parentba61d911da7f08dfac7dd5eaf6ed7f6754e16eca (diff)
Add `freestanding_amd64_gnu`
Diffstat (limited to 'src/llvm_abi.cpp')
-rw-r--r--src/llvm_abi.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp
index 0244b73d6..770e54ac8 100644
--- a/src/llvm_abi.cpp
+++ b/src/llvm_abi.cpp
@@ -1194,8 +1194,10 @@ LB_ABI_INFO(lb_get_abi_info) {
switch (build_context.metrics.arch) {
case TargetArch_amd64:
- if (build_context.metrics.os == TargetOs_windows) {
+ if (build_context.metrics.os == TargetOs_windows || build_context.metrics.abi == TargetABI_MSVC) {
return lbAbiAmd64Win64::abi_info(c, arg_types, arg_count, return_type, return_is_defined, calling_convention);
+ } else if (build_context.metrics.abi == TargetABI_GNU) {
+ return lbAbiAmd64SysV::abi_info(c, arg_types, arg_count, return_type, return_is_defined, calling_convention);
} else {
return lbAbiAmd64SysV::abi_info(c, arg_types, arg_count, return_type, return_is_defined, calling_convention);
}