Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 25 Mar 1998 18:12:40 +1100
From:      Bruce Evans <bde@zeta.org.au>
To:        ache@nagual.pp.ru, bartol@salk.edu, freebsd-current@FreeBSD.ORG
Subject:   Re: gcc bug in -current!!!
Message-ID:  <199803250712.SAA28158@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>I confirm this bug present. To narrow down search path, even cc from Mar 6
>works fine. Here is diff from assembler code generated by old and new cc
>(without optimization), old first: as we see, main change is that "fildq"
>replaced with "fildll". 

gas doesn't understand fildll (it silently (:-() converts it to fildl).
The following not-recently-changed code in i386.c generates the `q'.

>	    case 8:
>	      if (GET_MODE_CLASS (GET_MODE (x)) == MODE_INT)
>		{
>#ifdef GAS_MNEMONICS
>		  PUT_OP_SIZE ('Q', 'q', file);
>		  return;
>#else
>		  PUT_OP_SIZE ('Q', 'l', file);	/* Fall through */
>#endif
>		}
>

The elfization of freebsd.h clobbered the definition of GAS_MNEMONICS
by including <i386/i386.h>, <i386/att.h> and <linux.h> instead of
"i386/gstabs.h".  "i386/gstabs.h" is included mostly for its side
effect of including "i386/gas.h" which defines GAS_MNEMONICS and
includes "i386/i386.h" and "i386/bsd.h".  This change has some style
bugs :<>.  Summary: we are now att/linux instead of gas/bsd :-).  It's
surprising that more didn't break.

Bruce

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803250712.SAA28158>