libm-i387 fdim bug (`gas' incompatibility)
Eugene M. Indenbom
bom@classic.iki.rssi.ru
Thu Apr 1 00:00:00 GMT 1999
>Submitter-Id:
net >Originator: Eugene M. Indenbom >Organization:ÃÂ Space
Research Institute, Moscow, Russia >Confidential: no >Synopsis:
fdim* math function returns bad result >Severity: <[ non-critical |
serious | critical ] (one line)> >Priority: <[ low | medium | high ]
(one line)> >Category: libc >Class:ÃÂ <[ sw-bug | doc-bug
| change-request | support ] (one line)> >Release:
libc-2.0.112 >Environment: Host type: i586-pc-linux-gnu System:
Linux tver 2.2.0 #1 SMP Tue Jan 26 10:42:08 MSK 1999 i686
unknown Architecture: i686
ÃÂ
Addons: crypt
linuxthreads
ÃÂ
Build CC: gcc Compiler
version: egcs-2.91.60 19981201 (egcs-1.1.1 release) Kernel headers:
2.2.0 Symbol versioning: yes Build static: yes Build shared:
yes Build pic-default: no Build profile: yes Build omitfp: yes Build
bounded: no Build static-nss: no Stdio: libio
ÃÂ
Binutils:
2.9.1.0.19a
ÃÂ
>Description: ÃÂ fdim*
from libm.so returns -real value: ÃÂ libm_fdim( x, y ) = -real_fdim( x, y
) >How-To-Repeat: ÃÂ make check >Fix: ÃÂ the problem
arises from assembler fsubrp operands order ÃÂ in
sysdeps/libm-i387/s_fdim*.S. The current behavior of 'as' ÃÂ (starting at
least from binutils-2.9.1.0.7) is that operand ÃÂ order makes difference
so: ÃÂ fsubrp %st(1), %st <==> fsubp %st, %st(1) ÃÂ and is not
equivalent to expected: ÃÂ fsubrp %st, %st(1)
ÃÂ
ÃÂ Unified diffs fixing
problem are attached to this message.
glibc-2.0.112.patch
More information about the Libc-alpha
mailing list