delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2003/04/29/04:20:39

Sender: rich AT phekda DOT freeserve DOT co DOT uk
Message-ID: <3EAE2E30.A6C01D94@phekda.freeserve.co.uk>
Date: Tue, 29 Apr 2003 08:48:00 +0100
From: Richard Dawe <rich AT phekda DOT freeserve DOT co DOT uk>
X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.23 i586)
X-Accept-Language: de,fr
MIME-Version: 1.0
To: Ben Peddell <killer DOT lightspeed AT bigpond DOT com>
CC: DJGPP newsgroup <djgpp AT delorie DOT com>
Subject: Re: Bug 00314 -- div() still broken
References: <3e9c6920$0$21928$afc38c87@> <fA9pa.20115$1s1 DOT 299825 AT newsfeeds DOT bigpond DOT com> <3EA5477F DOT 2020901 AT cyberoptics DOT com> <SzSpa.21592$1s1 DOT 332473 AT newsfeeds DOT bigpond DOT com> <3ea85d95$0$12489$4c41069e AT reader1 DOT ash DOT ops DOT us DOT uu DOT net> <Ah9qa.22112$1s1 DOT 343387 AT newsfeeds DOT bigpond DOT com> <3ea97d4c$0$19415$4c41069e AT reader1 DOT ash DOT ops DOT us DOT uu DOT net> <3EABC30B DOT 40106 AT bigpond DOT com>

Hello.

Ben Peddell wrote:
>
> Richard Dawe wrote:
[snip]
>  > I've just looked at the gcc 2.95.2 sources and it looks like
>  > -fpcc-struct-return (i.e.: use memory) is the default there.
>  >
>  > The gcc 3.2.2 source seems to default to using registers. See the end
>  > gcc/config/i386/djgpp.h:
>  >
>  > /* Don't default to pcc-struct-return, because gcc is the only
>  > compiler,
>  >    and we want to retain compatibility with older gcc versions.  */
>  > #define DEFAULT_PCC_STRUCT_RETURN 0
> 
> I wonder where they got that from?

Andris copied them from the configuration file for another i386 platform.

> Did they accidentally put that in the wrong target? What systems default
> to structures in registers? Watch for ABI bugs of this sort in them.

FreeBSD, Cygwin default to using registers.

Linux, NetBSD ELF don't.

> GCC 3.2 still had structures in memory, and it is supposed to have had
> an ABI change from the previous GCCs.
[snip]

Which ABI? The C++ ABI changed between gcc 2.x and 3.x. It also changed later
in the gcc 3.x, because bugs were fixed in early versions of gcc 3.x, which
changed the ABI (for the better).

I thought the C ABI was set in stone.

Bye, Rich =]

-- 
Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]

- Raw text -


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