aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java2
-rw-r--r--src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java14
2 files changed, 13 insertions, 3 deletions
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java
index c15d431c..4a74b6d9 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmBackend.java
@@ -113,6 +113,8 @@ public class LlvmBackend implements Backend {
.toString()
);
+ clangArgs.addAll(this.target.clangFlags());
+
runInheritIo(clangArgs);
}
diff --git a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java
index cf2d09ad..ea462382 100644
--- a/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java
+++ b/src/main/java/org/shedlang/compiler/backends/llvm/LlvmTarget.java
@@ -1,15 +1,19 @@
package org.shedlang.compiler.backends.llvm;
+import java.util.List;
+
public enum LlvmTarget {
- AMD64("amd64", "x86_64-unknown-linux-gnu"),
- I686("i686", "i686-unknown-linux-gnu");
+ AMD64("amd64", "x86_64-unknown-linux-gnu", List.of()),
+ I686("i686", "i686-unknown-linux-gnu", List.of("-m32"));
private final String targetName;
private final String targetTriple;
+ private final List<String> clangFlags;
- LlvmTarget(String targetName, String targetTriple) {
+ LlvmTarget(String targetName, String targetTriple, List<String> clangFlags) {
this.targetName = targetName;
this.targetTriple = targetTriple;
+ this.clangFlags = clangFlags;
}
public String targetName() {
@@ -19,4 +23,8 @@ public enum LlvmTarget {
public String targetTriple() {
return this.targetTriple;
}
+
+ public List<String> clangFlags() {
+ return this.clangFlags;
+ }
}