From de0cf984ec31830a0a931955b9b8cd6b41ecfb1b Mon Sep 17 00:00:00 2001 From: amylaar Date: Wed, 17 Jul 2002 16:09:43 +0000 Subject: [PATCH] * lib1funcs.asm (udivsi3_i4): Implement SHcompact version in SHmedia code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@55533 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 ++++- gcc/config/sh/lib1funcs.asm | 25 +++++++++++++++++++------ 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8810a1a226..3efb6a15c84 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,7 @@ -Wed Jul 17 17:05:27 2002 J"orn Rennecke +Wed Jul 17 17:08:06 2002 J"orn Rennecke + + * 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 9d39bcc01d0..c98208f7517 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 -- 2.11.4.GIT