diff options
Diffstat (limited to 'lib/arm/bswapsi2.S')
-rw-r--r-- | lib/arm/bswapsi2.S | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/arm/bswapsi2.S b/lib/arm/bswapsi2.S index 309b202c0..7e3ab7f48 100644 --- a/lib/arm/bswapsi2.S +++ b/lib/arm/bswapsi2.S @@ -1,4 +1,4 @@ -//===------- bswapsi2 - Implement bswapsi2 ---------------------------------===// +//===------- bswapsi2 - Implement bswapsi2 --------------------------------===// // // The LLVM Compiler Infrastructure // @@ -18,13 +18,12 @@ DEFINE_COMPILERRT_FUNCTION(__bswapsi2) #if __ARM_ARCH_5TEJ__ || __ARM_ARCH_4T__ // before armv6 does not have "rev" instruction - mov r1, #255, 24 - mov r2, #255, 16 - and r1, r1, r0, lsr #8 - and r2, r2, r0, lsl #8 - orr r1, r1, r0, lsr #24 - orr r0, r2, r0, lsl #24 - orr r0, r0, r1 + mov r1, #0xff00 + and r2, r1, r0, lsr #8 + and r1, r1, r0 + orr r2, r2, r0, lsr #24 + orr r2, r2, r0, lsl #24 + orr r0, r2, r1, lsl #8 #else rev r0, r0 // reverse bytes in parameter and put into result register #endif |