This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Gas for IA64 does not correctly detect dependencies in auto mode
- From: Nick Clifton <nickc at redhat dot com>
- To: wilson at tuliptree dot org
- Cc: binutils at sources dot redhat dot com, smirnios at sybase dot com
- Date: 08 Apr 2003 10:52:43 +0100
- Subject: Re: Gas for IA64 does not correctly detect dependencies in auto mode
- References: <001901c2f561$3d0e5ee0$548f1fac@sybase.com><m33ckzr9op.fsf@workshop.nickc.cambridge.redhat.com><1049643116.1529.24.camel@leaf.tuliptree.org>
Hi Jim,
> Meanwhile, we can make a reasonable guess about what Intel will do to
> solve the problem.
I think that it is reasonable to assume that Intel will agree with
you.
> I have included a patch to opcodes/ia64-ic.tbl that solves the
> problem below.
>
> opcodes/ChangeLog
> 2003-04-06 James E Wilson <wilson at tuliptree dot org>
>
> * ia64-ic.tbl (fr-readers): Add mem-writers-fp.
> * ia64-asmtab.c: Regenerate.
Thanks very much. I have applied your patch, regenerated the
ia64-asmtab.c file and checked the results in. I also created a gas
test to catch this problem, as shown below.
Cheers
Nick
2003-04-08 Nick Clifton <nickc at redhat dot com>
* gas/ia64/dependency-1.s: New file: Test read before write dependency.
* gas/ia64/dependency-1.d: New file: Expected assembly results.
* gas/ia64/ia64.exp: Run the new test.
*** /dev/null Sat Aug 31 00:31:37 2002
--- gas/testsuite/gas/ia64/dependency-1.s Tue Apr 8 10:32:11 2003
***************
*** 0 ****
--- 1,7 ----
+ .text
+ .auto
+ .align 32
+
+ foo:
+ ldfs f8=[r32]
+ stfd [r33]=f8
*** /dev/null Sat Aug 31 00:31:37 2002
--- gas/testsuite/gas/ia64/dependency-1.d Tue Apr 8 10:41:59 2003
***************
*** 0 ****
--- 1,20 ----
+ # as: -xexplicit
+ # objdump: -d
+ # name: IA64 read-before-write dependency
+
+ # Note - this test is based on a bug reported here:
+ # http://sources.redhat.com/ml/bug-gnu-utils/2003-03/msg00270.html
+ # With follows up on the binutils mailing list here:
+ # http://sources.redhat.com/ml/binutils/2003-04/msg00162.html
+
+ .*: +file format .*
+
+ Disassembly of section \.text:
+
+ 0000000000000000 <foo>:
+ 0:.*0b 40 00 40 10 18.*\[MMI\].*ldfs f8=\[r32\];;
+ 6:.*00 40 84 30 33 00.*stfd \[r33\]=f8
+ c:.*00 00 04 00.*nop\.i 0x0;;
+ 10:.*0c 00 00 00 01 00.*\[MFI\].*nop.m 0x0
+ 16:.*00 00 00 02 00 00.*nop\.f 0x0
+ 1c:.*00 00 04 00.*nop\.i 0x0
Index: gas/testsuite/gas/ia64/ia64.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/ia64/ia64.exp,v
retrieving revision 1.4
retrieving revision 1.5
diff -c -3 -p -w -r1.4 -r1.5
*** gas/testsuite/gas/ia64/ia64.exp 5 Dec 2002 23:20:40 -0000 1.4
--- gas/testsuite/gas/ia64/ia64.exp 8 Apr 2003 09:50:07 -0000 1.5
*************** if [istarget "ia64-*"] then {
*** 39,42 ****
--- 39,44 ----
run_dump_test "ldxmov-1"
run_list_test "ldxmov-2" ""
run_dump_test "ltoff22x-1"
+
+ run_dump_test "dependency-1"
}