This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/33552] wrong code for multiple output asm, wrong df?
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 25 Sep 2007 13:58:36 -0000
- Subject: [Bug rtl-optimization/33552] wrong code for multiple output asm, wrong df?
- References: <bug-33552-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #5 from ubizjak at gmail dot com 2007-09-25 13:58 -------
(In reply to comment #1)
> #define add_ssaaaa(sh, sl, ah, al, bh, bl) \
> __asm__ ("addq %5,%q1\n\tadcq %3,%q0" \
> : "=r" (sh), "=&r" (sl) \
> : "0" ((UDItype)(ah)), "rme" ((UDItype)(bh)), \
> "%1" ((UDItype)(al)), "rme" ((UDItype)(bl)))
>
> marking %0 early-clobbered fixes the problem.
We also have longlong.h in gcc/ directory, where
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
__asm__ ("addq %5,%1\n\tadcq %3,%0" \
: "=r" ((UDItype) (sh)), \
"=&r" ((UDItype) (sl)) \
: "%0" ((UDItype) (ah)), \
"rme" ((UDItype) (bh)), \
"%1" ((UDItype) (al)), \
"rme" ((UDItype) (bl)))
It looks to me that gmp's longlong.h is buggy (gcc/longlong.h is used in
soft-fp TFmode calculations and these are used in a couple of places through
the testsuite).
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33552