]> gcc.gnu.org Git - gcc.git/commitdiff
lib1funcs.asm (udivsi3_i4): Implement SHcompact version in SHmedia code.
authorJ"orn Rennecke <joern.rennecke@superh.com>
Wed, 17 Jul 2002 16:09:43 +0000 (16:09 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Wed, 17 Jul 2002 16:09:43 +0000 (17:09 +0100)
* lib1funcs.asm (udivsi3_i4): Implement SHcompact version in
SHmedia code.

From-SVN: r55533

gcc/ChangeLog
gcc/config/sh/lib1funcs.asm

index b8810a1a226c960291fa243e6760edf00322db87..3efb6a15c8483d613532d86e36d64923a1b67c65 100644 (file)
@@ -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 @.
 
index 9d39bcc01d00ed16928e8c6e2aec625afc8291ed..c98208f7517269889dcd48b4067a233a1c089d86 100644 (file)
@@ -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
 
This page took 0.099878 seconds and 5 git commands to generate.