[llvm-commits] [Patch] Unbreak compiler-rt on FreeBSD/sparc64 and FreeBSD/mips64
Ed Schouten
ed at 80386.nl
Sat Dec 31 05:11:19 PST 2011
Hi,
It seems the MIPS64 check is incorrect, as we must test against both
__mips_n64 and __mips_o64. Updated patch below:
Index: lib/int_lib.h
===================================================================
--- lib/int_lib.h (revision 229003)
+++ lib/int_lib.h (working copy)
@@ -153,4 +153,24 @@
long double f;
} long_double_bits;
+/*
+ * Workaround for LLVM bug 11663. Prevent endless recursion in
+ * __c?zdi2(), where calls to __builtin_c?z() are expanded to
+ * __c?zdi2() instead of __c?zsi2().
+ *
+ * Instead of placing this workaround in c?zdi2.c, put it in this
+ * global header to prevent other C files from making the detour
+ * through __c?zdi2() as well.
+ *
+ * This problem has only been observed on FreeBSD for sparc64 and
+ * mips64 with GCC 4.2.1.
+ */
+#if defined(__FreeBSD__) && (defined(__sparc64__) || \
+ defined(__mips_n64) || defined(__mips_o64))
+si_int __clzsi2(si_int);
+si_int __ctzsi2(si_int);
+#define __builtin_clz __clzsi2
+#define __builtin_ctz __ctzsi2
+#endif
+
#endif /* INT_LIB_H */
--
Ed Schouten <ed at 80386.nl>
WWW: http://80386.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20111231/d1476c14/attachment.sig>
More information about the llvm-commits
mailing list