Merge branch 'master' of git://git.denx.de/u-boot-socfpga
[oweals/u-boot.git] / arch / arm / lib / ashldi3.S
index 9c34c212cb0ee2f663bf87dc7ed729914fc640dd..6c9ae91653327527c201a75d3df735323c89c93c 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <linux/linkage.h>
+#include <asm/assembler.h>
 
 #ifdef __ARMEB__
 #define al r1
 #define ah r1
 #endif
 
-.globl __ashldi3
-__ashldi3:
+ENTRY(__ashldi3)
 ENTRY(__aeabi_llsl)
+.pushsection .text.__ashldi3, "ax"
 
        subs    r3, r2, #32
        rsb     ip, r2, #32
        movmi   ah, ah, lsl r2
        movpl   ah, al, lsl r3
-       orrmi   ah, ah, al, lsr ip
+ ARM(  orrmi   ah, ah, al, lsr ip      )
+ THUMB(        lsrmi   r3, al, ip              )
+ THUMB(        orrmi   ah, ah, r3              )
        mov     al, al, lsl r2
-       mov     pc, lr
+       ret     lr
+
+.popsection
+ENDPROC(__ashldi3)
 ENDPROC(__aeabi_llsl)