This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils 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]

Re: Gas for IA64 does not correctly detect dependencies in auto mode


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"
  }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]