diff options
author | J"orn Rennecke <joern.rennecke@superh.com> | 2002-07-17 16:09:43 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2002-07-17 17:09:43 +0100 |
commit | ac09192adbb3dc7b08846bd35bff94984caac912 (patch) | |
tree | 1be1c25cee2d6c01288ce3124ba345ebc1a07ada | |
parent | 68cef009977f9e12217108240e1b44b080da46e8 (diff) | |
download | gcc-ac09192adbb3dc7b08846bd35bff94984caac912.zip gcc-ac09192adbb3dc7b08846bd35bff94984caac912.tar.gz gcc-ac09192adbb3dc7b08846bd35bff94984caac912.tar.bz2 |
lib1funcs.asm (udivsi3_i4): Implement SHcompact version in SHmedia code.
* lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
SHmedia code.
From-SVN: r55533
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/sh/lib1funcs.asm | 25 |
2 files changed, 23 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8810a1..3efb6a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,7 @@ -Wed Jul 17 17:05:27 2002 J"orn Rennecke <joern.rennecke@superh.com> +Wed Jul 17 17:08:06 2002 J"orn Rennecke <joern.rennecke@superh.com> + + * lib1funcs.asm (udivsi3_i4): Implement SHcompact version in + SHmedia code. * sh.md (cmpgtudi_media): Remove spurious @. diff --git a/gcc/config/sh/lib1funcs.asm b/gcc/config/sh/lib1funcs.asm index 9d39bcc..c98208f 100644 --- a/gcc/config/sh/lib1funcs.asm +++ b/gcc/config/sh/lib1funcs.asm @@ -1217,13 +1217,27 @@ trivial: L1: .double 2147483648 -#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) || (defined (__SH5__) && ! defined __SH4_NOFPU__) +#elif defined (__SH5__) && ! defined (__SH4_NOFPU__) +#if ! __SH5__ || __SH5__ == 32 +!! args in r4 and r5, result in fpul, clobber r20, r21, dr0, fr33 + .mode SHmedia + .global GLOBAL(udivsi3_i4) +GLOBAL(udivsi3_i4): + addz.l r4,r63,r20 + addz.l r5,r63,r21 + fmov.qd r20,dr0 + fmov.qd r21,dr32 + ptabs r18,tr0 + float.qd dr0,dr0 + float.qd dr32,dr32 + fdiv.d dr0,dr32,dr0 + ftrc.dq dr0,dr32 + fmov.s fr33,fr32 + blink tr0,r63 +#endif /* ! __SH5__ || __SH5__ == 32 */ +#elif defined(__SH4_SINGLE__) || defined(__SH4_SINGLE_ONLY__) !! args in r4 and r5, result in fpul, clobber r0, r1, r4, r5, dr0, dr2, dr4 -#if ! __SH5__ || __SH5__ == 32 -#if __SH5__ - .mode SHcompact -#endif .global GLOBAL(udivsi3_i4) GLOBAL(udivsi3_i4): mov #1,r1 @@ -1273,7 +1287,6 @@ L1: #endif .double 2147483648 -#endif /* ! __SH5__ || __SH5__ == 32 */ #endif /* ! __SH4__ */ #endif |