This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc 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] |
"Ed Connell" <Ed.Connell@sas.com> writes: > Hi > > fegetenv and getcontext currently corrupt the floating point > mask on x86. I have included a patch and a testcase. I > was only able to test this patch on 2.2.93 but looking at > CVS, I see no reason the behavior should be different now. > Someone involved with x86-64 should see if they need a > similar patch. The problem can be seen on RH 8 and RH 9. > > Cheers > Ed > > 2003-05-19 Ed Connell <ed.connell@sas.com> > > * sysdeps/unix/sysv/linux/i386/getcontext.S (getcontext): > Retain floating point mask > * sysdeps/i386/fpu/fegetenv.c (fegetenv): Likewise. > > --- glibc-2.3.2/sysdeps/i386/fpu/fegetenv.c 2001-07-07 15:21:23.000000000 -0400 > +++ glibc-2.3.2/sysdeps/i386/fpu/fegetenv.c.edconn 2003-05-19 16:27:16.000000000 -0400 > @@ -25,6 +25,7 @@ > __fegetenv (fenv_t *envp) > { > __asm__ ("fnstenv %0" : "=m" (*envp)); > + __asm__ ("fldenv %0" : "=m" (*envp)); Maybe I'm missing something but we store it in memory - and then you load it again directly? Why will that help? Andreas -- Andreas Jaeger, SuSE Linux AG, aj@suse.de, http://www.suse.de/~aj 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] |