This is the mail archive of the gcc-patches@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] |
Loren James Rittle <rittle@latour.rsch.comm.mot.com> writes: > I am passing this patch on for real.c expert opinion. The trick is > that a bit-field r->sign undergoes promotion from 'unsigned int :1' to > 'signed int' since 31 is signed with greater range. On the 3.3 > branch, "GCC cross-compiler running on AMD64 64bit host [to i386 > target; forced with -mcpu switch] will output the following incorrect > assembly instruction which causes as(1) to choke: > > movl $0xffffffffbfc90fdb, %eax > > while native compiler outputs > > movl $0xbfc90fdb, %eax" (from Alexander Kabaev) Do you have a testcase for this one? That would help ... Andreas > May this be installed on mainline and 3.3 branch? As an alternate, it > is a one-line cast (appears to be used in the local file). > > * real.c (encode_ieee_single): Ensure proper promotion. > > Index: real.c > =================================================================== > RCS file: /home/ncvs/src/contrib/gcc/real.c,v > retrieving revision 1.1.1.6 > diff -u -r1.1.1.6 real.c > --- real.c 11 Jul 2003 03:40:49 -0000 1.1.1.6 > +++ real.c 21 Oct 2003 21:05:31 -0000 > @@ -2612,9 +2612,10 @@ > const REAL_VALUE_TYPE *r; > { > unsigned long image, sig, exp; > + unsigned long sign = r->sign; > bool denormal = (r->sig[SIGSZ-1] & SIG_MSB) == 0; > > - image = r->sign << 31; > + image = sign << 31; > sig = (r->sig[SIGSZ-1] >> (HOST_BITS_PER_LONG - 24)) & 0x7fffff; > > switch (r->class) > > Andreas -- Andreas Jaeger, aj@suse.de, http://www.suse.de/~aj SuSE Linux AG, Deutschherrnstr. 15-19, 90429 Nürnberg, Germany GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
pgp00000.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |