OSDN Git Service

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[uclinux-h8/linux.git] / arch / sh / lib / lshrsi3.S
index 1e7aaa5..f2a6959 100644 (file)
@@ -54,21 +54,37 @@ Boston, MA 02110-1301, USA.  */
 !
 ! (none)
 !
+! __lshrsi3_r0
+!
+! Entry:
+!
+! r0: Value to shift
+! r5: Shifts
+!
+! Exit:
+!
+! r0: Result
+!
+! Destroys:
+!
+! (none)
+!
        .global __lshrsi3
+       .global __lshrsi3_r0
        
        .align  2
 __lshrsi3:
-       mov     #31,r0
-       and     r0,r5
+       mov     r5,r0
+       .align  2
+__lshrsi3_r0:
+       and     #31,r0
+       mov.l   r4,@-r15
+       mov     r0,r4
        mova    lshrsi3_table,r0
-       mov.b   @(r0,r5),r5
-#ifdef __sh1__
-       add     r5,r0
+       mov.b   @(r0,r4),r4
+       add     r4,r0
        jmp     @r0
-#else
-       braf    r5
-#endif
-       mov     r4,r0
+       mov.l   @r15+,r0
 
        .align  2
 lshrsi3_table: