This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: middle-end/5345: ICE when using the "+m" constraint with built-in assembly


The following reply was made to PR middle-end/5345; it has been noted by GNATS.

From: Craig Rodrigues <rodrigc@mediaone.net>
To: gcc-gnats@gcc.gnu.org
Cc:  
Subject: Re: middle-end/5345: ICE when using the "+m" constraint with built-in assembly
Date: Mon, 14 Jan 2002 09:11:12 -0500

 ----- Forwarded message from Andrew Zabolotny <zap@cobra.ru> -----
 
 Delivered-To: rodrigc@gcc.gnu.org
 From: "Andrew Zabolotny" <zap@cobra.ru>
 To: "gcc-bugs@gcc.gnu.org" <gcc-bugs@gcc.gnu.org>,
    "gcc-prs@gcc.gnu.org" <gcc-prs@gcc.gnu.org>,
    "rodrigc@gcc.gnu.org" <rodrigc@gcc.gnu.org>
 Date: Mon, 14 Jan 2002 12:31:36 +0300 (MSK)
 Reply-To: "Andrew Zabolotny" <zap@cobra.ru>
 Priority: Normal
 X-Mailer: PMMail 2.10.1999 for OS/2 Warp 4.05
 In-Reply-To: <20020112191626.21789.qmail@sources.redhat.com>
 Subject: Re: middle-end/5345: ICE when using the "+m" constraint with built-in assembly
 
 On 12 Jan 2002 19:16:26 -0000, rodrigc@gcc.gnu.org wrote:
 
 >Synopsis: ICE when using the "+m" constraint with built-in assembly
 >
 >State-Changed-From-To: open->analyzed
 >State-Changed-By: rodrigc
 >State-Changed-When: Sat Jan 12 11:16:26 2002
 >State-Changed-Why:
 >    I can reproduce your error with gcc 3.0.3.
 >    
 >    With gcc 3.1 in CVS, I get a different error message:
 >    gcc-ice.cpp: In function `float qsqrt(float)':
 >    gcc-ice.cpp:18: output constraint 0 cannot be specified together with
 >    "st"
 >       clobber
 >    gcc-ice.cpp:44: confused by earlier errors, bailing out
 Hmm... it looks like the problem has been at least partially fixed. Can you 
 please try to remove the "st" constraint, e.g. the last three lines of the asm 
 directive will look like this:
 
 		"fmulp	%%st(1)\n"		// a
 	: "=&t" (ret), "+m" (x) : "m" (0.5F), "m" (1.5F)
 	: "eax", "st(1)", "st(2)", "st(3)", "st(4)", "st(5)", "st(6)", "st(7)"
   );
 
 The "st" constraint which was specified before is indeed doubtful, but it worked 
 with gcc <=2.95.3.
 
 >    I am not enough of an asm expert to know what the correct
 >    remedy is.
 Is it reasonable for me to rise this question on gcc mailing list? Where else I 
 can get an expert advice on built-in gcc assembly?
 
 Greetings,
     _\ndy
 
 ----- End forwarded message -----
 
 -- 
 Craig Rodrigues        
 http://www.gis.net/~craigr    
 rodrigc@mediaone.net          


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]