This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch committed SH] Fix PR target/41015
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 11 Aug 2009 05:59:14 +0900 (JST)
- Subject: [patch committed SH] Fix PR target/41015
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__ */