aboutsummaryrefslogtreecommitdiff
path: root/src/target.zig
diff options
context:
space:
mode:
authorAlex Rønne Petersen <alex@alexrp.com>2024-11-02 10:27:03 +0100
committerGitHub <noreply@github.com>2024-11-02 10:27:03 +0100
commit8abbdb56a4fce176cb8ec24e5d4724ac16196a0b (patch)
tree90157927058b6e273bec741d04787623b828574c /src/target.zig
parentfccf15fc9f77001c513946cd1f37e8f6a57188e1 (diff)
parent79717740bdce162caa34936040cd774dbe4c15a2 (diff)
downloadzig-8abbdb56a4fce176cb8ec24e5d4724ac16196a0b.tar.gz
zig-8abbdb56a4fce176cb8ec24e5d4724ac16196a0b.zip
Merge pull request #21729 from alexrp/target-cpu-baseline
`std.Target.Cpu.Model`: Further refinements to `generic()` and `baseline()`
Diffstat (limited to 'src/target.zig')
-rw-r--r--src/target.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/target.zig b/src/target.zig
index 00e804d441..e4f1d28043 100644
--- a/src/target.zig
+++ b/src/target.zig
@@ -315,6 +315,20 @@ pub fn clangAssemblerSupportsMcpuArg(target: std.Target) bool {
};
}
+/// Some experimental or poorly-maintained LLVM targets do not properly process CPU models in their
+/// Clang driver code. For these, we should omit the `-Xclang -target-cpu -Xclang <model>` flags.
+pub fn clangSupportsTargetCpuArg(target: std.Target) bool {
+ return switch (target.cpu.arch) {
+ .arc,
+ .msp430,
+ .ve,
+ .xcore,
+ .xtensa,
+ => false,
+ else => true,
+ };
+}
+
pub fn clangSupportsFloatAbiArg(target: std.Target) bool {
return switch (target.cpu.arch) {
.arm,