This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
PATCH: Add an ia64 gas testcase for @nat|@qnan
- From: "H. J. Lu" <hjl at lucon dot org>
- To: jbeulich at novell dot com
- Cc: wilson at specifixinc dot com, binutils at sources dot redhat dot com
- Date: Sun, 13 Feb 2005 11:22:01 -0800
- Subject: PATCH: Add an ia64 gas testcase for @nat|@qnan
- References: <20050213171834.GA23705@lucon.org> <20050213184215.GA24871@lucon.org>
On Sun, Feb 13, 2005 at 10:42:15AM -0800, H. J. Lu wrote:
> On Sun, Feb 13, 2005 at 09:18:34AM -0800, H. J. Lu wrote:
> > After applied 2 patches enclosed here, I can compile glibc in CVS. But
> > I got so many failures in "make check":
> >
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/basic-test.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-double.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-float.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-idouble.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-ifloat.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-ldouble.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/math/test-ildoubl.out]
> > Error 1
> > make[3]: *** [math/xtests] Error 2
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/stdio-common/tstscanf.out]
> > Error 1
> > make[4]: ***
> > [/export/build/gnu/glibc-nptl/build-ia64-linux/stdio-common/tstdiomisc.out]
> > Error 1
> >
> > It looks like the math functions are wrong. Replacing the new assembler
> > with the old one fixes the problem.
> >
>
> The problem is caused by
>
> http://sourceware.org/ml/binutils/2005-02/msg00122.html
>
> Gas no longer handles
>
> fclass.m p6, p7 = farg0, @inf|@pos
>
> correctly. Jan, could you please fix it?
>
I am going to check in this testcase to catch the error.
H.J.
----
2005-02-13 H.J. Lu <hongjiu.lu@intel.com>
* gas/ia64/ia64.exp: Add "operand-or".
* gas/ia64/operand-or.d: New file.
* gas/ia64/operand-or.s: Likewise.
--- gas/testsuite/gas/ia64/ia64.exp.or 2005-02-11 13:21:20.000000000 -0800
+++ gas/testsuite/gas/ia64/ia64.exp 2005-02-13 11:18:23.604690961 -0800
@@ -72,4 +72,6 @@ if [istarget "ia64-*"] then {
run_list_test "unwind-err" "-munwind-check=error"
run_list_test "hint.b-err" ""
run_list_test "hint.b-warn" "-mhint.b=warning"
+
+ run_dump_test "operand-or"
}
--- gas/testsuite/gas/ia64/operand-or.d.or 2005-02-13 11:18:23.604690961 -0800
+++ gas/testsuite/gas/ia64/operand-or.d 2005-02-13 11:18:23.604690961 -0800
@@ -0,0 +1,29 @@
+# objdump: -d --disassemble-zeroes
+# name: ia64 operand-or
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+000 <_start>:
+ 0: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 6: 30 20 80 09 28 00 fclass\.m p3,p4=f4,0x180
+ c: 00 00 00 20 nop\.b 0x0
+ 10: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 16: 30 20 c0 09 28 00 fclass\.m p3,p4=f4,0x1c0
+ 1c: 00 00 00 20 nop\.b 0x0
+ 20: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 26: 30 20 c0 89 28 00 fclass\.m p3,p4=f4,0x1c1
+ 2c: 00 00 00 20 nop\.b 0x0
+ 30: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 36: 30 20 c0 89 29 00 fclass\.m p3,p4=f4,0x1c3
+ 3c: 00 00 00 20 nop\.b 0x0
+ 40: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 46: 30 20 c8 89 29 00 fclass\.m p3,p4=f4,0x1cb
+ 4c: 00 00 00 20 nop\.b 0x0
+ 50: 1c 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 56: 30 20 d8 89 29 00 fclass\.m p3,p4=f4,0x1db
+ 5c: 00 00 00 20 nop\.b 0x0
+ 60: 1d 00 00 00 01 00 \[MFB\] nop\.m 0x0
+ 66: 30 20 f8 89 29 00 fclass\.m p3,p4=f4,0x1fb
+ 6c: 00 00 00 20 nop\.b 0x0;;
--- gas/testsuite/gas/ia64/operand-or.s.or 2005-02-13 11:18:23.605690831 -0800
+++ gas/testsuite/gas/ia64/operand-or.s 2005-02-13 11:18:23.605690831 -0800
@@ -0,0 +1,11 @@
+.text
+ .type _start,@function
+_start:
+
+ fclass.m p3, p4 = f4, @nat|@qnan
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan|@pos
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan|@pos|@neg
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan|@pos|@neg|@unorm
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan|@pos|@neg|@unorm|@norm
+ fclass.m p3, p4 = f4, @nat|@qnan|@snan|@pos|@neg|@unorm|@norm|@inf