public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Re: [PATCH] ia64 application register handling
@ 2005-01-25  7:37 Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2005-01-25  7:37 UTC (permalink / raw)
  To: hp; +Cc: binutils

Hmm, I can do that, but especially replacing [[:space:]] is ugly
(because in an editor you just can't see what's inside the brackets.
Since these constructs have been part of the regular expression
specifications for years, I'd rather change the requirements on the TCL
version if older ones don't offer reasonable support. This would even
more apply to brace constructs, since you can't even express e.g. {3,5}
without braces.

Jan

>>> Hans-Peter Nilsson <hp@bitrange.com> 25.01.05 00:01:14 >>>
On Mon, 24 Jan 2005, Jan Beulich wrote:
> gas/testsuite/
> 	* gas/ia64/mov-ar.[ds]: New.


> +++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	2005-01-21
> 15:37:10.000000000 +0100
...
>
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m

Please don't use [:stuff:] notation in testsuite regexps.  See
<URL:http://sources.redhat.com/ml/binutils/2004-12/msg00262.html>.

brgds, H-P

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ia64 application register handling
@ 2005-01-27  8:41 Jan Beulich
  0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2005-01-27  8:41 UTC (permalink / raw)
  To: wilson; +Cc: binutils

>In the emit_one_bundle hunk, inside the #if 0, you accidentally lost a
>comment.  However, this code is long obsolete.  An idesc no longer has
a
>next field; this was dropped even before the code was contributed to
the
>FSF.  I suspect this happened when Bob Manson wrote the ia64-gen.c
>program.  So we should just drop this #if 0 code instead of putting
the
>comment back.

Actually, the comment wasn't lost accidently, but intentionally. But
maybe it should have been modified slightly by adding the word 'other'.
Since this was in an #if 0 block, thus counting as comment, I took the
freedom to slightly change this to

 #if 0
-	  know (!idesc->next);	/* no resolved dynamic ops have
collisions */
+	  else
+	    /* no other resolved dynamic ops have collisions */
+	    know (!get_next_opcode (idesc));
 #endif

Jan

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ia64 application register handling
  2005-01-24  9:51 Jan Beulich
  2005-01-24 23:01 ` Hans-Peter Nilsson
@ 2005-01-27  1:52 ` James E Wilson
  1 sibling, 0 replies; 5+ messages in thread
From: James E Wilson @ 2005-01-27  1:52 UTC (permalink / raw)
  To: Jan Beulich; +Cc: binutils

On Mon, 2005-01-24 at 01:50, Jan Beulich wrote:
> 	* config/tc-ia64.c (emit_one_bundle): Add late resolution of
> move
> 	to/from application registers dynamic insns.
> 	(md_assemble): Defer resolution of move to/from application
> registers
> 	dynamic insns when they can be issued on either the I- or
> M-units.

Ok.

In the emit_one_bundle hunk, inside the #if 0, you accidentally lost a
comment.  However, this code is long obsolete.  An idesc no longer has a
next field; this was dropped even before the code was contributed to the
FSF.  I suspect this happened when Bob Manson wrote the ia64-gen.c
program.  So we should just drop this #if 0 code instead of putting the
comment back.

As for the use of [:stuff:], I don't have a strong opinion.  It is fine
with me.  Since you are only adding this to IA-64 specific tests,
perhaps it won't be a problem for H-P.  As far as I know, he isn't doing
any IA-64 specific testing.  If you added this to generic tests, then it
would be a serious problem for him.  H-P says the feature has been there
since at least tcl/tk 8.2.3, which I see was released Dec 16, 1999. 
That was over 5 years ago, before there were even any IA-64 operating
systems available.  I don't see why we need to restrict IA-64 testcases
in order to support old versions of tcl/tk.  I think it would be
reasonable to require at least tcl/tk 8.2.3 to run the binutils
testsuite.  I don't mind if someone wants to overrule me though.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] ia64 application register handling
  2005-01-24  9:51 Jan Beulich
@ 2005-01-24 23:01 ` Hans-Peter Nilsson
  2005-01-27  1:52 ` James E Wilson
  1 sibling, 0 replies; 5+ messages in thread
From: Hans-Peter Nilsson @ 2005-01-24 23:01 UTC (permalink / raw)
  To: Jan Beulich; +Cc: binutils

On Mon, 24 Jan 2005, Jan Beulich wrote:
> gas/testsuite/
> 	* gas/ia64/mov-ar.[ds]: New.


> +++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	2005-01-21
> 15:37:10.000000000 +0100
...
> +[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m

Please don't use [:stuff:] notation in testsuite regexps.  See
<URL:http://sources.redhat.com/ml/binutils/2004-12/msg00262.html>.

brgds, H-P

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] ia64 application register handling
@ 2005-01-24  9:51 Jan Beulich
  2005-01-24 23:01 ` Hans-Peter Nilsson
  2005-01-27  1:52 ` James E Wilson
  0 siblings, 2 replies; 5+ messages in thread
From: Jan Beulich @ 2005-01-24  9:51 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 7076 bytes --]

The adjustments to deal with application registers accessible by both M-
and
I-units done so far were still insufficient; especially when using
manual
bundling errors could still result due to prematurely forcing such
moves to
happen on an M-unit. Decision what unit to run those on is now deferred
until
bundle generation. As a side effect, an ill error generation condition
for
chk.s in a similar scenario was also removed.

Built and tested on ia64-unknown-linux-gnu.

Jan

gas/
2005-01-24  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Add late resolution of
move
	to/from application registers dynamic insns.
	(md_assemble): Defer resolution of move to/from application
registers
	dynamic insns when they can be issued on either the I- or
M-units.

gas/testsuite/
2005-01-24  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/dv-waw-err.l: Don't expect ar112 move warning to
refer to
	M-unit.
	* gas/ia64/mov-ar.[ds]: New.
	* gas/ia64/ia64.exp: Run new test.

---
/home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/config/tc-ia64.c	2005-01-18
10:43:33.000000000 +0100
+++ 2005-01-24.08.40/gas/config/tc-ia64.c	2005-01-24
10:06:35.868911608 +0100
@@ -6370,25 +6370,41 @@ emit_one_bundle ()
       /* resolve dynamic opcodes such as "break", "hint", and "nop": 
*/
       if (idesc->type == IA64_TYPE_DYN)
 	{
+	  enum ia64_opnd opnd1, opnd2;
+
 	  if ((strcmp (idesc->name, "nop") == 0)
 	      || (strcmp (idesc->name, "hint") == 0)
 	      || (strcmp (idesc->name, "break") == 0))
 	    insn_unit = required_unit;
-	  else if (strcmp (idesc->name, "chk.s") == 0)
+	  else if (strcmp (idesc->name, "chk.s") == 0
+	      || strcmp (idesc->name, "mov") == 0)
 	    {
 	      insn_unit = IA64_UNIT_M;
-	      if (required_unit == IA64_UNIT_I)
+	      if (required_unit == IA64_UNIT_I
+		  || (required_unit == IA64_UNIT_F && template == 6))
 		insn_unit = IA64_UNIT_I;
 	    }
 	  else
 	    as_fatal ("emit_one_bundle: unexpected dynamic op");
 
 	  sprintf (mnemonic, "%s.%c", idesc->name,
"?imbf??"[insn_unit]);
+	  opnd1 = idesc->operands[0];
+	  opnd2 = idesc->operands[1];
 	  ia64_free_opcode (idesc);
-	  md.slot[curr].idesc = idesc = ia64_find_opcode (mnemonic);
+	  idesc = ia64_find_opcode (mnemonic);
+	  /* moves to/from ARs have collisions */
+	  if (opnd1 == IA64_OPND_AR3 || opnd2 == IA64_OPND_AR3)
+	    {
+	      while (idesc != NULL
+		     && (idesc->operands[0] != opnd1
+			 || idesc->operands[1] != opnd2))
+		idesc = get_next_opcode (idesc);
+	    }
 #if 0
-	  know (!idesc->next);	/* no resolved dynamic ops have
collisions */
+	  else
+	    know (!idesc->next);
 #endif
+	  md.slot[curr].idesc = idesc;
 	}
       else
 	{
@@ -10071,17 +10087,22 @@ md_assemble (str)
 	    {
 	      if (ar_is_only_in_integer_unit
(CURR_SLOT.opnd[rop].X_add_number))
 		mnemonic = "mov.i";
-	      else
+	      else if (ar_is_only_in_memory_unit
(CURR_SLOT.opnd[rop].X_add_number))
 		mnemonic = "mov.m";
+	      else
+		rop = -1;
 	    }
 	  else
 	    abort ();
-	  ia64_free_opcode (idesc);
-	  idesc = ia64_find_opcode (mnemonic);
-	  while (idesc != NULL
-		 && (idesc->operands[0] != opnd1
-		     || idesc->operands[1] != opnd2))
-	    idesc = get_next_opcode (idesc);
+	  if (rop >= 0)
+	    {
+	      ia64_free_opcode (idesc);
+	      idesc = ia64_find_opcode (mnemonic);
+	      while (idesc != NULL
+		     && (idesc->operands[0] != opnd1
+			 || idesc->operands[1] != opnd2))
+		idesc = get_next_opcode (idesc);
+	    }
 	}
     }
   else if (strcmp (idesc->name, "mov.i") == 0
---
/home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/dv-waw-err.l	2000-09-22
21:43:48.000000000 +0200
+++
2005-01-24.08.40/gas/testsuite/gas/ia64/dv-waw-err.l	2005-01-21
13:29:04.000000000 +0100
@@ -81,7 +81,7 @@
 .*:108: Warning: This is the location of the conflicting usage
 .*:114: Warning: Use of 'st8\.spill' .* WAW dependency 'AR\[UNAT\]{%},
% in 0 - 63' \(impliedf\)
 .*:113: Warning: This is the location of the conflicting usage
-.*:119: Warning: Use of 'mov\.m' .* WAW dependency 'AR%, % in 48 - 63,
112-127' \(impliedf\), specific resource number is 48
+.*:119: Warning: Use of 'mov(\.[im])?' .* WAW dependency 'AR%, % in 48
- 63, 112-127' \(impliedf\), specific resource number is 48
 .*:118: Warning: This is the location of the conflicting usage
 .*:124: Warning: Use of 'mov' .* WAW dependency 'BR%, % in 0 - 7'
\(impliedf\), specific resource number is 1
 .*:123: Warning: This is the location of the conflicting usage
---
/home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/ia64.exp	2004-07-02
08:26:34.000000000 +0200
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/ia64.exp	2005-01-24
09:58:13.223409953 +0100
@@ -24,6 +24,7 @@ if [istarget "ia64-*"] then {
     run_dump_test "opc-i"
     run_dump_test "opc-m"
     run_dump_test "opc-x"
+    run_dump_test "mov-ar"
 
     run_list_test "dv-raw-err" ""
     run_list_test "dv-waw-err" ""
---
/home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	1970-01-01
01:00:00.000000000 +0100
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	2005-01-21
15:37:10.000000000 +0100
@@ -0,0 +1,26 @@
+# objdump: -d
+# name: ia64 app reg moves
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar.k0=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar127=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar47=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar112=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar48=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar111=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar63=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar.pfs=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar112=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar63=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m
ar127=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar48=r0;;
---
/home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.s	1970-01-01
01:00:00.000000000 +0100
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.s	2005-01-21
15:27:48.000000000 +0100
@@ -0,0 +1,21 @@
+.explicit
+_start:
+{.mfi
+	mov	ar0 = r0
+	mov	ar127 = r0
+} ;; {.mfi
+	mov	ar47 = r0
+	mov	ar112 = r0
+} ;; {.mfi
+	mov	ar48 = r0
+	mov	ar111 = r0
+} ;; {.mfi
+	mov	ar63 = r0
+	mov	ar64 = r0
+} ;; {.mfi
+	mov	ar112 = r0
+	mov	ar63 = r0
+} ;; {.mfi
+	mov	ar127 = r0
+	mov	ar48 = r0
+} ;;


[-- Attachment #2: binutils-mainline-ia64-ar.patch --]
[-- Type: text/plain, Size: 7075 bytes --]

The adjustments to deal with application registers accessible by both M- and
I-units done so far were still insufficient; especially when using manual
bundling errors could still result due to prematurely forcing such moves to
happen on an M-unit. Decision what unit to run those on is now deferred until
bundle generation. As a side effect, an ill error generation condition for
chk.s in a similar scenario was also removed.

Built and tested on ia64-unknown-linux-gnu.

Jan

gas/
2005-01-24  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (emit_one_bundle): Add late resolution of move
	to/from application registers dynamic insns.
	(md_assemble): Defer resolution of move to/from application registers
	dynamic insns when they can be issued on either the I- or M-units.

gas/testsuite/
2005-01-24  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/dv-waw-err.l: Don't expect ar112 move warning to refer to
	M-unit.
	* gas/ia64/mov-ar.[ds]: New.
	* gas/ia64/ia64.exp: Run new test.

--- /home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/config/tc-ia64.c	2005-01-18 10:43:33.000000000 +0100
+++ 2005-01-24.08.40/gas/config/tc-ia64.c	2005-01-24 10:06:35.868911608 +0100
@@ -6370,25 +6370,41 @@ emit_one_bundle ()
       /* resolve dynamic opcodes such as "break", "hint", and "nop":  */
       if (idesc->type == IA64_TYPE_DYN)
 	{
+	  enum ia64_opnd opnd1, opnd2;
+
 	  if ((strcmp (idesc->name, "nop") == 0)
 	      || (strcmp (idesc->name, "hint") == 0)
 	      || (strcmp (idesc->name, "break") == 0))
 	    insn_unit = required_unit;
-	  else if (strcmp (idesc->name, "chk.s") == 0)
+	  else if (strcmp (idesc->name, "chk.s") == 0
+	      || strcmp (idesc->name, "mov") == 0)
 	    {
 	      insn_unit = IA64_UNIT_M;
-	      if (required_unit == IA64_UNIT_I)
+	      if (required_unit == IA64_UNIT_I
+		  || (required_unit == IA64_UNIT_F && template == 6))
 		insn_unit = IA64_UNIT_I;
 	    }
 	  else
 	    as_fatal ("emit_one_bundle: unexpected dynamic op");
 
 	  sprintf (mnemonic, "%s.%c", idesc->name, "?imbf??"[insn_unit]);
+	  opnd1 = idesc->operands[0];
+	  opnd2 = idesc->operands[1];
 	  ia64_free_opcode (idesc);
-	  md.slot[curr].idesc = idesc = ia64_find_opcode (mnemonic);
+	  idesc = ia64_find_opcode (mnemonic);
+	  /* moves to/from ARs have collisions */
+	  if (opnd1 == IA64_OPND_AR3 || opnd2 == IA64_OPND_AR3)
+	    {
+	      while (idesc != NULL
+		     && (idesc->operands[0] != opnd1
+			 || idesc->operands[1] != opnd2))
+		idesc = get_next_opcode (idesc);
+	    }
 #if 0
-	  know (!idesc->next);	/* no resolved dynamic ops have collisions */
+	  else
+	    know (!idesc->next);
 #endif
+	  md.slot[curr].idesc = idesc;
 	}
       else
 	{
@@ -10071,17 +10087,22 @@ md_assemble (str)
 	    {
 	      if (ar_is_only_in_integer_unit (CURR_SLOT.opnd[rop].X_add_number))
 		mnemonic = "mov.i";
-	      else
+	      else if (ar_is_only_in_memory_unit (CURR_SLOT.opnd[rop].X_add_number))
 		mnemonic = "mov.m";
+	      else
+		rop = -1;
 	    }
 	  else
 	    abort ();
-	  ia64_free_opcode (idesc);
-	  idesc = ia64_find_opcode (mnemonic);
-	  while (idesc != NULL
-		 && (idesc->operands[0] != opnd1
-		     || idesc->operands[1] != opnd2))
-	    idesc = get_next_opcode (idesc);
+	  if (rop >= 0)
+	    {
+	      ia64_free_opcode (idesc);
+	      idesc = ia64_find_opcode (mnemonic);
+	      while (idesc != NULL
+		     && (idesc->operands[0] != opnd1
+			 || idesc->operands[1] != opnd2))
+		idesc = get_next_opcode (idesc);
+	    }
 	}
     }
   else if (strcmp (idesc->name, "mov.i") == 0
--- /home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/dv-waw-err.l	2000-09-22 21:43:48.000000000 +0200
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/dv-waw-err.l	2005-01-21 13:29:04.000000000 +0100
@@ -81,7 +81,7 @@
 .*:108: Warning: This is the location of the conflicting usage
 .*:114: Warning: Use of 'st8\.spill' .* WAW dependency 'AR\[UNAT\]{%}, % in 0 - 63' \(impliedf\)
 .*:113: Warning: This is the location of the conflicting usage
-.*:119: Warning: Use of 'mov\.m' .* WAW dependency 'AR%, % in 48 - 63, 112-127' \(impliedf\), specific resource number is 48
+.*:119: Warning: Use of 'mov(\.[im])?' .* WAW dependency 'AR%, % in 48 - 63, 112-127' \(impliedf\), specific resource number is 48
 .*:118: Warning: This is the location of the conflicting usage
 .*:124: Warning: Use of 'mov' .* WAW dependency 'BR%, % in 0 - 7' \(impliedf\), specific resource number is 1
 .*:123: Warning: This is the location of the conflicting usage
--- /home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/ia64.exp	2004-07-02 08:26:34.000000000 +0200
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/ia64.exp	2005-01-24 09:58:13.223409953 +0100
@@ -24,6 +24,7 @@ if [istarget "ia64-*"] then {
     run_dump_test "opc-i"
     run_dump_test "opc-m"
     run_dump_test "opc-x"
+    run_dump_test "mov-ar"
 
     run_list_test "dv-raw-err" ""
     run_list_test "dv-waw-err" ""
--- /home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	1970-01-01 01:00:00.000000000 +0100
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.d	2005-01-21 15:37:10.000000000 +0100
@@ -0,0 +1,26 @@
+# objdump: -d
+# name: ia64 app reg moves
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+0 <_start>:
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar.k0=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar127=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar47=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar112=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar48=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar111=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar63=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar.pfs=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar112=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar63=r0;;
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+\[MFI\][[:space:]]+mov\.m ar127=r0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+nop\.f 0x0
+[[:space:]]*[[:xdigit:]]*:[[:space:][:xdigit:]]+mov\.i ar48=r0;;
--- /home/jbeulich/src/binutils/mainline/2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.s	1970-01-01 01:00:00.000000000 +0100
+++ 2005-01-24.08.40/gas/testsuite/gas/ia64/mov-ar.s	2005-01-21 15:27:48.000000000 +0100
@@ -0,0 +1,21 @@
+.explicit
+_start:
+{.mfi
+	mov	ar0 = r0
+	mov	ar127 = r0
+} ;; {.mfi
+	mov	ar47 = r0
+	mov	ar112 = r0
+} ;; {.mfi
+	mov	ar48 = r0
+	mov	ar111 = r0
+} ;; {.mfi
+	mov	ar63 = r0
+	mov	ar64 = r0
+} ;; {.mfi
+	mov	ar112 = r0
+	mov	ar63 = r0
+} ;; {.mfi
+	mov	ar127 = r0
+	mov	ar48 = r0
+} ;;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2005-01-27  8:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-01-25  7:37 [PATCH] ia64 application register handling Jan Beulich
  -- strict thread matches above, loose matches on Subject: below --
2005-01-27  8:41 Jan Beulich
2005-01-24  9:51 Jan Beulich
2005-01-24 23:01 ` Hans-Peter Nilsson
2005-01-27  1:52 ` James E Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).