Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F133528372
D10838.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D10838.diff
View Options
Index: head/contrib/compiler-rt/lib/builtins/README.txt
===================================================================
--- head/contrib/compiler-rt/lib/builtins/README.txt
+++ head/contrib/compiler-rt/lib/builtins/README.txt
@@ -57,8 +57,8 @@
si_int __popcountdi2(di_int a); // bit population
si_int __popcountti2(ti_int a); // bit population
-uint32_t __bswapsi2(uint32_t a); // a byteswapped, arm only
-uint64_t __bswapdi2(uint64_t a); // a byteswapped, arm only
+uint32_t __bswapsi2(uint32_t a); // a byteswapped, arm/mips only
+uint64_t __bswapdi2(uint64_t a); // a byteswapped, arm/mips only
// Integral arithmetic
Index: head/contrib/compiler-rt/lib/builtins/bswapdi2.c
===================================================================
--- head/contrib/compiler-rt/lib/builtins/bswapdi2.c
+++ head/contrib/compiler-rt/lib/builtins/bswapdi2.c
@@ -0,0 +1,28 @@
+/* ===-- bswapdi2.c - Implement __bswapdi2 ---------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __bswapdi2 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+COMPILER_RT_ABI uint64_t
+__bswapdi2 (uint64_t u)
+{
+ return ((((u) & 0xff00000000000000ULL) >> 56)
+ | (((u) & 0x00ff000000000000ULL) >> 40)
+ | (((u) & 0x0000ff0000000000ULL) >> 24)
+ | (((u) & 0x000000ff00000000ULL) >> 8)
+ | (((u) & 0x00000000ff000000ULL) << 8)
+ | (((u) & 0x0000000000ff0000ULL) << 24)
+ | (((u) & 0x000000000000ff00ULL) << 40)
+ | (((u) & 0x00000000000000ffULL) << 56));
+}
Index: head/contrib/compiler-rt/lib/builtins/bswapsi2.c
===================================================================
--- head/contrib/compiler-rt/lib/builtins/bswapsi2.c
+++ head/contrib/compiler-rt/lib/builtins/bswapsi2.c
@@ -0,0 +1,25 @@
+/* ===-- bswapsi2.c - Implement __bswapsi2 ---------------------------------===
+ *
+ * The LLVM Compiler Infrastructure
+ *
+ * This file is dual licensed under the MIT and the University of Illinois Open
+ * Source Licenses. See LICENSE.TXT for details.
+ *
+ * ===----------------------------------------------------------------------===
+ *
+ * This file implements __bswapsi2 for the compiler_rt library.
+ *
+ * ===----------------------------------------------------------------------===
+ */
+
+#include "int_lib.h"
+
+COMPILER_RT_ABI uint32_t
+__bswapsi2 (uint32_t u)
+{
+
+ return ((((u) & 0xff000000) >> 24)
+ | (((u) & 0x00ff0000) >> 8)
+ | (((u) & 0x0000ff00) << 8)
+ | (((u) & 0x000000ff) << 24));
+}
Index: head/lib/libcompiler_rt/Makefile.inc
===================================================================
--- head/lib/libcompiler_rt/Makefile.inc
+++ head/lib/libcompiler_rt/Makefile.inc
@@ -224,3 +224,10 @@
SRCS+= switchu8.S
SRCS+= sync_synchronize.S
.endif
+
+# GCC-6.3 on mips32 requires bswap32 built-in.
+.if ${MACHINE_CPUARCH} == "mips"
+SRCS+= bswapdi2.c
+SRCS+= bswapsi2.c
+.endif
+
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Oct 27, 10:44 AM (2 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24289151
Default Alt Text
D10838.diff (3 KB)
Attached To
Mode
D10838: Add bswapsi2/bswapdi2 support to libcompiler-rt for mips platforms.
Attached
Detach File
Event Timeline
Log In to Comment