================
@@ -2381,11 +2392,104 @@ def AArch64SystemLibrary :
SystemRuntimeLibrary<isAArch64_ExceptArm64EC,
["compiler-rt", "libatomic", "llvm-client-runtime", "libm", "libc", "unwind",
"sme"]>;
+//===----------------------------------------------------------------------===//
+// ARM64EC helpers for the x87 `long double` format
+//===----------------------------------------------------------------------===//
+
+// These are not the exact x87 soft-float helpers of libgcc: The value stays
+// an 80-bit x87 image in a 16-byte slot, but every operation on it is carried
+// out in `double`. These are named with an `__arm64ec_` prefix so they will
+// not be confused with, or silently bound to, an exact implementation of the
+// same format.
+defset list<RuntimeLibcallImpl> Arm64ECF80Impls = {
+ def arm64ec___addxf3 : RuntimeLibcallImpl<ADD_F80, "__arm64ec_addxf3">;
----------------
efriedma-quic wrote:
I think you have this backwards. The unprefixed function is the one x64 code
uses; the one with the `#` is the Arm64 entry point. Since these are libcalls
for use from Arm64 code, they should have the `#`.
https://github.com/llvm/llvm-project/pull/237057
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits