[PATCH] D36762: [Builtins][ARM] Force ARM state for bswap for pre-ARMv6
Weiming Zhao via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 15 11:45:46 PDT 2017
weimingz created this revision.
Herald added subscribers: kristof.beyls, javed.absar, aemerson.
The instructions for bswp guarded by "__ARM_ARCH < 6" is ARM code. E.g., bic (immediate), eor (register-shifted register).
This patch forces ARM state even if -mthumb is used (e.g. -mthumb is passed as a global option by build system)
https://reviews.llvm.org/D36762
Files:
lib/builtins/arm/bswapdi2.S
lib/builtins/arm/bswapsi2.S
Index: lib/builtins/arm/bswapsi2.S
===================================================================
--- lib/builtins/arm/bswapsi2.S
+++ lib/builtins/arm/bswapsi2.S
@@ -22,6 +22,7 @@
DEFINE_COMPILERRT_FUNCTION(__bswapsi2)
#if __ARM_ARCH < 6
// before armv6 does not have "rev" instruction
+ .arm
eor r1, r0, r0, ror #16
bic r1, r1, #0xff0000
mov r1, r1, lsr #8
Index: lib/builtins/arm/bswapdi2.S
===================================================================
--- lib/builtins/arm/bswapdi2.S
+++ lib/builtins/arm/bswapdi2.S
@@ -23,6 +23,7 @@
#if __ARM_ARCH < 6
// before armv6 does not have "rev" instruction
// r2 = rev(r0)
+ .arm
eor r2, r0, r0, ror #16
bic r2, r2, #0xff0000
mov r2, r2, lsr #8
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36762.111218.patch
Type: text/x-patch
Size: 748 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170815/0d22b3f7/attachment.bin>
More information about the llvm-commits
mailing list