delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2000/04/14/02:28:35

From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: inefficiency of GCC output code & -O problem
Date: Fri, 14 Apr 2000 07:15:03 +0200
Organization: NetVision Israel
Lines: 18
Message-ID: <38F6A957.90A167DE@is.elta.co.il>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 1000413112851 DOT 28180G-100000 AT is> <38F6137B DOT 47481761 AT mtu-net DOT ru> <38f6342c DOT 52524603 AT news DOT freeserve DOT net> <38F637C7 DOT 4F4ECB6 AT mtu-net DOT ru>
NNTP-Posting-Host: ras1-p116.rvt.netvision.net.il
Mime-Version: 1.0
X-Trace: news.netvision.net.il 955689248 2311 62.0.172.118 (14 Apr 2000 05:14:08 GMT)
X-Complaints-To: abuse AT netvision DOT net DOT il
NNTP-Posting-Date: 14 Apr 2000 05:14:08 GMT
X-Mailer: Mozilla 4.7 [en] (Win98; I)
X-Accept-Language: en,ru,hebrew
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

"Alexei A. Frounze" wrote:
> 
> Steamer wrote:
> > The bugs in your code are in the interface between the C and the inline
> > assembly.  They may not cause a problem if you don't use -O2, but they
> > surely will as soon as the optimizer starts trying to rearrange things,
> > remove redundant instructions, avoid unnecessary memory access, etc.
> 
> Thus design of the optimizer is buggy as well. :))

No, the optimizer is okay, and the interface between GCC and Gas is okay as
well.  You just need to put into the inline assembly the necessary magic
(constraints and clobbered registers) to let GCC know enough about the inline
fragment so that it could Do The Right Thing.

However, if you intend purposefully to fight GCC and deliberately not abide
by the rules of correct inline assembly, don't be surprised if GCC and Gas
will fight back and produce invalid code... ;-)

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019