[patch committed SH] Fix PR target/41015

Kaz Kojima kkojima@rr.iij4u.or.jp
Mon Aug 10 20:59:00 GMT 2009


Hi,

I've applied the attached patch from Sugioka Toshinobu to fix
PR target/41015.  It adds T register to clobber lists of SH
versions of udiv_qrnnd and sub_ddmmss in gcc/longlong.h.
Tested with bootstrap and the top level "make -k check" on
sh4-unknown-linux-gnu with no new failures.  It has been also
sanity-checked on i686-pc-linux-gnu.  I'll backport it to 4.4
when the tests are done on that branch.

Regards,
	kaz
--
2009-08-10  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>

	PR target/41015
	* longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
	(sub_ddmmss): Likewise.

--- ORIG/trunk/gcc/longlong.h	2009-02-14 09:34:32.000000000 +0900
+++ trunk/gcc/longlong.h	2009-08-10 14:34:32.000000000 +0900
@@ -982,7 +982,7 @@ UDItype __umulsidi3 (USItype, USItype);
 "	or r1,%0"							\
 	: "=r" (q), "=&z" (r)						\
 	: "1" (n1), "r" (n0), "rm" (d), "r" (&__udiv_qrnnd_16)		\
-	: "r1", "r2", "r4", "r5", "r6", "pr");				\
+	: "r1", "r2", "r4", "r5", "r6", "pr", "t");			\
   } while (0)
 
 #define UDIV_TIME 80
@@ -990,7 +990,7 @@ UDItype __umulsidi3 (USItype, USItype);
 #define sub_ddmmss(sh, sl, ah, al, bh, bl)				\
   __asm__ ("clrt;subc %5,%1; subc %4,%0"				\
 	   : "=r" (sh), "=r" (sl)					\
-	   : "0" (ah), "1" (al), "r" (bh), "r" (bl))
+	   : "0" (ah), "1" (al), "r" (bh), "r" (bl) : "t")
 
 #endif /* __sh__ */
 



More information about the Gcc-patches mailing list