aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-04-10 19:52:17 +0100
committergingerBill <bill@gingerbill.org>2020-04-10 19:52:17 +0100
commit62dc99dbefa4dece8948672c295745f572d2978a (patch)
tree45e5bce72540765bc21fb2c33875c92cc338c0c5 /src
parentb925ad592766c4c0cba0a63aeac8b6503580309b (diff)
Begin to make the -llvm-api more general
Diffstat (limited to 'src')
-rw-r--r--src/build_settings.cpp11
-rw-r--r--src/llvm_backend.cpp4
2 files changed, 10 insertions, 5 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp
index 8cb40cadc..d9d810ea4 100644
--- a/src/build_settings.cpp
+++ b/src/build_settings.cpp
@@ -65,6 +65,7 @@ struct TargetMetrics {
isize word_size;
isize max_align;
String target_triplet;
+ String target_data_layout;
};
@@ -148,14 +149,15 @@ gb_global TargetMetrics target_windows_386 = {
TargetArch_386,
4,
8,
- str_lit("i686-pc-windows"),
+ str_lit("i386-pc-windows-msvc"),
};
gb_global TargetMetrics target_windows_amd64 = {
TargetOs_windows,
TargetArch_amd64,
8,
16,
- str_lit("x86_64-pc-windows-gnu"),
+ str_lit("x86_64-pc-windows-msvc"),
+ str_lit("e-m:w-i64:64-f80:128-n8:16:32:64-S128"),
};
gb_global TargetMetrics target_linux_386 = {
@@ -163,7 +165,8 @@ gb_global TargetMetrics target_linux_386 = {
TargetArch_386,
4,
8,
- str_lit("i686-pc-linux-gnu"),
+ str_lit("i386-pc-linux-gnu"),
+
};
gb_global TargetMetrics target_linux_amd64 = {
TargetOs_linux,
@@ -171,6 +174,7 @@ gb_global TargetMetrics target_linux_amd64 = {
8,
16,
str_lit("x86_64-pc-linux-gnu"),
+ str_lit("e-m:w-i64:64-f80:128-n8:16:32:64-S128"),
};
gb_global TargetMetrics target_darwin_amd64 = {
@@ -179,6 +183,7 @@ gb_global TargetMetrics target_darwin_amd64 = {
8,
16,
str_lit("x86_64-apple-darwin"),
+ str_lit("e-m:o-i64:64-f80:128-n8:16:32:64-S128"),
};
gb_global TargetMetrics target_essence_amd64 = {
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 22ae6f601..50f6bde73 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -10985,8 +10985,8 @@ void lb_generate_code(lbGenerator *gen) {
LLVMInitializeNativeTarget();
- char const *target_triple = "x86_64-pc-windows-msvc";
- char const *target_data_layout = "e-m:w-i64:64-f80:128-n8:16:32:64-S128";
+ char const *target_triple = alloc_cstring(heap_allocator(), build_context.metrics.target_triplet);
+ char const *target_data_layout = alloc_cstring(heap_allocator(), build_context.metrics.target_data_layout);
LLVMSetTarget(mod, target_triple);
LLVMTargetRef target = {};