diff options
author | Yoshinori Sato <ysato@users.sourceforge.jp> | 2015-06-20 14:02:19 +0900 |
---|---|---|
committer | Rich Felker <dalias@libc.org> | 2016-03-17 19:45:44 +0000 |
commit | 940d4113f3306e07a1f86541489b686d1a979d54 (patch) | |
tree | c1d78d1ae7991db8f0cd4ec2c20e7fd71fa6fb04 /arch/sh/lib/ashrsi3.S | |
parent | 2af7967a8c1cfe647d6a222be2d2e393025dcd6e (diff) |
sh: New gcc support
New gcc (4.8 or later) used new shift helper functions.
So we need added new helper to private libgcc.
Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
Signed-off-by: Rich Felker <dalias@libc.org>
Diffstat (limited to 'arch/sh/lib/ashrsi3.S')
-rw-r--r-- | arch/sh/lib/ashrsi3.S | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/arch/sh/lib/ashrsi3.S b/arch/sh/lib/ashrsi3.S index 6f3cf46b77c2..602599d80209 100644 --- a/arch/sh/lib/ashrsi3.S +++ b/arch/sh/lib/ashrsi3.S @@ -54,22 +54,37 @@ Boston, MA 02110-1301, USA. */ ! ! (none) ! +! __ashrsi3_r0 +! +! Entry: +! +! r4: Value to shift +! r0: Shifts +! +! Exit: +! +! r0: Result +! +! Destroys: +! +! (none) .global __ashrsi3 + .global __ashrsi3_r0 .align 2 __ashrsi3: - mov #31,r0 - and r0,r5 + mov r5,r0 + .align 2 +__ashrsi3_r0: + and #31,r0 + mov.l r4,@-r15 + mov r0,r4 mova ashrsi3_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 ashrsi3_table: |