aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlntue <35648136+lntue@users.noreply.github.com>2024-03-07 15:23:37 -0500
committerGitHub <noreply@github.com>2024-03-07 15:23:37 -0500
commitd0b702279819fe2fd3b3d2bfa274c895ac49f23b (patch)
tree9855e7c6af71d4305e1bf03a459a0cef3a6c7517
parent292a28df6c55679fad0589dea35278a8c66b2ae1 (diff)
downloadllvm-d0b702279819fe2fd3b3d2bfa274c895ac49f23b.zip
llvm-d0b702279819fe2fd3b3d2bfa274c895ac49f23b.tar.gz
llvm-d0b702279819fe2fd3b3d2bfa274c895ac49f23b.tar.bz2
[libc] Refactor stdfix extension from llvm_libc_ext.td to llvm_libc_stdfix_ext.td. (#84365)
This fixes runtime build for armv6 baremetal targets: https://github.com/llvm/llvm-project/pull/83959#issuecomment-1984221249
-rw-r--r--libc/config/baremetal/api.td2
-rw-r--r--libc/config/linux/api.td1
-rw-r--r--libc/spec/llvm_libc_ext.td20
-rw-r--r--libc/spec/llvm_libc_stdfix_ext.td24
4 files changed, 26 insertions, 21 deletions
diff --git a/libc/config/baremetal/api.td b/libc/config/baremetal/api.td
index 008eb45..33b3a03 100644
--- a/libc/config/baremetal/api.td
+++ b/libc/config/baremetal/api.td
@@ -2,7 +2,7 @@ include "config/public_api.td"
include "spec/stdc.td"
include "spec/stdc_ext.td"
-include "spec/llvm_libc_ext.td"
+include "spec/llvm_libc_stdfix_ext.td"
def AssertMacro : MacroDef<"assert"> {
let Defn = [{
diff --git a/libc/config/linux/api.td b/libc/config/linux/api.td
index 526fd03..75432a2a 100644
--- a/libc/config/linux/api.td
+++ b/libc/config/linux/api.td
@@ -7,6 +7,7 @@ include "spec/gnu_ext.td"
include "spec/bsd_ext.td"
include "spec/stdc_ext.td"
include "spec/llvm_libc_ext.td"
+include "spec/llvm_libc_stdfix_ext.td"
def AssertMacro : MacroDef<"assert"> {
let Defn = [{
diff --git a/libc/spec/llvm_libc_ext.td b/libc/spec/llvm_libc_ext.td
index 3241ec0..ca61d4ef 100644
--- a/libc/spec/llvm_libc_ext.td
+++ b/libc/spec/llvm_libc_ext.td
@@ -51,29 +51,9 @@ def LLVMLibcExt : StandardSpec<"llvm_libc_ext"> {
]
>;
- HeaderSpec StdFix = HeaderSpec<
- "stdfix.h",
- [], // macros
- [], // types
- [], // enums
- [ // functions
- GuardedFunctionSpec<"sqrtuhr", RetValSpec<UnsignedShortFractType>, [ArgSpec<UnsignedShortFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- GuardedFunctionSpec<"sqrtur", RetValSpec<UnsignedFractType>, [ArgSpec<UnsignedFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- GuardedFunctionSpec<"sqrtulr", RetValSpec<UnsignedLongFractType>, [ArgSpec<UnsignedLongFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
-
- GuardedFunctionSpec<"sqrtuhk", RetValSpec<UnsignedShortAccumType>, [ArgSpec<UnsignedShortAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- GuardedFunctionSpec<"sqrtuk", RetValSpec<UnsignedAccumType>, [ArgSpec<UnsignedAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- GuardedFunctionSpec<"sqrtulk", RetValSpec<UnsignedLongAccumType>, [ArgSpec<UnsignedLongAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
-
- GuardedFunctionSpec<"uhksqrtus", RetValSpec<UnsignedShortAccumType>, [ArgSpec<UnsignedShortType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- GuardedFunctionSpec<"uksqrtui", RetValSpec<UnsignedAccumType>, [ArgSpec<UnsignedIntType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
- ]
- >;
-
let Headers = [
Assert,
Sched,
- StdFix,
Strings,
];
}
diff --git a/libc/spec/llvm_libc_stdfix_ext.td b/libc/spec/llvm_libc_stdfix_ext.td
new file mode 100644
index 0000000..75bde47
--- /dev/null
+++ b/libc/spec/llvm_libc_stdfix_ext.td
@@ -0,0 +1,24 @@
+def LLVMLibcStdfixExt : StandardSpec<"llvm_libc_stdfix_ext"> {
+ HeaderSpec StdFix = HeaderSpec<
+ "stdfix.h",
+ [], // macros
+ [], // types
+ [], // enums
+ [ // functions
+ GuardedFunctionSpec<"sqrtuhr", RetValSpec<UnsignedShortFractType>, [ArgSpec<UnsignedShortFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ GuardedFunctionSpec<"sqrtur", RetValSpec<UnsignedFractType>, [ArgSpec<UnsignedFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ GuardedFunctionSpec<"sqrtulr", RetValSpec<UnsignedLongFractType>, [ArgSpec<UnsignedLongFractType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+
+ GuardedFunctionSpec<"sqrtuhk", RetValSpec<UnsignedShortAccumType>, [ArgSpec<UnsignedShortAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ GuardedFunctionSpec<"sqrtuk", RetValSpec<UnsignedAccumType>, [ArgSpec<UnsignedAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ GuardedFunctionSpec<"sqrtulk", RetValSpec<UnsignedLongAccumType>, [ArgSpec<UnsignedLongAccumType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+
+ GuardedFunctionSpec<"uhksqrtus", RetValSpec<UnsignedShortAccumType>, [ArgSpec<UnsignedShortType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ GuardedFunctionSpec<"uksqrtui", RetValSpec<UnsignedAccumType>, [ArgSpec<UnsignedIntType>], "LIBC_COMPILER_HAS_FIXED_POINT">,
+ ]
+ >;
+
+ let Headers = [
+ StdFix,
+ ];
+}