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: [PATCH] Re: ia64 gas default mode


>>> James E Wilson <wilson@specifixinc.com> 11.02.05 01:19:13 >>>
>On Tue, 2005-02-08 at 02:58, Jan Beulich wrote:
>> 	* config/tc-ia64.c (md_parse_option): Handle -xnone and
>> -xdebugn.
>> 	(md_show_usage): Add -xnone.
>
>You didn't add -xdebugn to md_show_usage.
>
>Also, you didn't update the texinfo docs.  gas/doc/c-ia64.texi needs
the
>exact same changes.
>
>Otherwise this looks OK.

Update below/attached.

Jan

gas/
2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* config/tc-ia64.c (md_parse_option): Handle -xnone and
-xdebugn.
	(md_show_usage): Add -xnone, -xdebugn, and -xdebugx. Relocate
default
	indicator.
	(ia64_init): Set md.detect_dv.
	(ia64_start_line): New static variable warned. Warn only once
when
	encountering explicit stops in automatic mode.
	* doc/c-ia64.texi: Describe -xnone, -xdebugn, and -xdebugx.
	* NEWS: Mention new default mode.

gas/testsuite/
2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* gas/ia64/label.l: Adjust line numbers.
	* gas/ia64/label.s: Add .explicit.
	* gas/ia64/nop_x.s: Likewise.
	* gas/ia64/opc-a.d: Add assembler option -xnone.
	* gas/ia64/opc-b.d: Likewise.
	* gas/ia64/opc-f.d: Likewise.
	* gas/ia64/opc-i.d: Likewise.
	* gas/ia64/opc-m.d: Likewise.
	* gas/ia64/opc-x.d: Likewise.
	* gas/ia64/pseudo.d: Likewise.
	* gas/ia64/regs.d: Likewise.
	* gas/ia64/tls.d: Likewise.
	* gas/ia64/unwind-err.l: Adjust line numbers.
	* gas/ia64/unwind-err.s: Remove explicit stops.


ld/testsuite/
2005-02-11  Jan Beulich  <jbeulich@novell.com>

	* ld-elfvers/vers.exp (as_options): New. Set to -x for ia64.
	(build_binary): Pass as_options to ld_assemble.
	(test_ldfail): Likewise.
	(build_exec): Likewise.
	Pass as_options to run_ld_link_tests.
	* ld-ia64/tlsbin.s: Add .explicit.
	* ld-ia64/tlsbinpic.s: Likewise.
	* ld-ia64/tlspic1.s: Likewise.

---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/NEWS	2004-12-14
08:44:20.000000000 +0100
+++ 2005-02-11/gas/NEWS	2005-02-11 12:04:54.105276040 +0100
@@ -1,5 +1,8 @@
 -*- text -*-
 
+* The IA64 port now uses automatic dependency violation removal as its
default
+  mode.
+
 * Port to MAXQ processor contributed by HCL Tech.
 
 * Added support for generating unwind tables for ARM ELF targets.
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/config/tc-ia64.c	2005-02-11
11:09:20.000000000 +0100
+++ 2005-02-11/gas/config/tc-ia64.c	2005-02-11 12:01:05.033100304
+0100
@@ -6744,6 +6744,10 @@ md_parse_option (c, arg)
 	{
 	  md.default_explicit_mode = 0;
 	}
+      else if (strcmp (arg, "none") == 0)
+	{
+	  md.detect_dv = 0;
+	}
       else if (strcmp (arg, "debug") == 0)
 	{
 	  md.debug_dv = 1;
@@ -6753,6 +6757,11 @@ md_parse_option (c, arg)
 	  md.default_explicit_mode = 1;
 	  md.debug_dv = 1;
 	}
+      else if (strcmp (arg, "debugn") == 0)
+	{
+	  md.debug_dv = 1;
+	  md.detect_dv = 0;
+	}
       else
 	{
 	  as_bad (_("Unrecognized option '-x%s'"), arg);
@@ -6792,9 +6801,14 @@ IA-64 options:\n\
 			  EF_IA_64_NOFUNCDESC_CONS_GP)\n\
   -milp32|-milp64|-mlp64|-mp64	select data model (default
-mlp64)\n\
   -mle | -mbe		  select little- or big-endian byte order
(default -mle)\n\
-  -x | -xexplicit	  turn on dependency violation checking
(default)\n\
-  -xauto		  automagically remove dependency violations\n\
-  -xdebug		  debug dependency violation checker\n"),
+  -x | -xexplicit	  turn on dependency violation checking\n\
+  -xauto		  automagically remove dependency violations
(default)\n\
+  -xnone		  turn off dependency violation checking\n\
+  -xdebug		  debug dependency violation checker\n\
+  -xdebugn		  debug dependency violation checker but turn
off\n\
+			  dependency violation checking\n\
+  -xdebugx		  debug dependency violation checker and turn
on\n\
+			  dependency violation checking\n"),
 	stream);
 }
 
@@ -7137,6 +7151,7 @@ ia64_init (argc, argv)
      char **argv ATTRIBUTE_UNUSED;
 {
   md.flags = MD_FLAGS_DEFAULT;
+  md.detect_dv = 1;
 }
 
 /* Return a string for the target object file format.  */
@@ -7212,7 +7227,15 @@ ia64_start_line ()
   if (input_line_pointer[0] == ';' && input_line_pointer[-1] == ';')
     {
       if (md.detect_dv && !md.explicit_mode)
-	as_warn (_("Explicit stops are ignored in auto mode"));
+	{
+	  static int warned;
+
+	  if (!warned)
+	    {
+	      warned = 1;
+	      as_warn (_("Explicit stops are ignored in auto mode"));
+	    }
+	}
       else
 	insn_group_break (1, 0, 0);
     }
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/doc/c-ia64.texi	2005-02-11
08:39:38.000000000 +0100
+++ 2005-02-11/gas/doc/c-ia64.texi	2005-02-11 12:03:42.319189184
+0100
@@ -67,17 +67,25 @@ IA-64 machine code always uses little-en
 
 @item -x
 @item -xexplicit
-These options turn on dependency violation checking.  This checking is
turned on by
-default.
+These options turn on dependency violation checking.
 
 @item -xauto
 This option instructs the assembler to automatically insert stop bits
where necessary
-to remove dependency violations.
+to remove dependency violations.  This is the default mode.
+
+@item -xnone
+This option turns off dependency violation checking.
 
 @item -xdebug
 This turns on debug output intended to help tracking down bugs in the
dependency
 violation checker.
 
+@item -xdebugn
+This is a shortcut for -xnone -xdebug.
+
+@item -xdebugx
+This is a shortcut for -xexplicit -xdebug.
+
 @end table
 
 @cindex IA-64 Syntax
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/label.l	2005-01-21
15:52:42.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/label.l	2005-02-08
10:34:15.000000000 +0100
@@ -1,3 +1,3 @@
 .*: Assembler messages:
-.*:11: Error: Label must be first in a bundle
-.*:18: Error: Label must be first in a bundle
+.*:12: Error: Label must be first in a bundle
+.*:19: Error: Label must be first in a bundle
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/label.s	2005-01-20
11:37:08.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/label.s	2005-02-08
10:34:23.000000000 +0100
@@ -1,3 +1,4 @@
+.explicit
 start:
 {.mii
 label0:
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/nop_x.s	2005-01-21
15:56:11.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/nop_x.s	2005-02-08
10:34:49.000000000 +0100
@@ -1,3 +1,4 @@
+.explicit
 _start:
 {.mlx
 	nop	0
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-a.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-a.d	2005-02-04
11:11:47.000000000 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-a
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-b.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-b.d	2005-02-04
11:11:58.000000000 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 opc-b
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-f.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-f.d	2005-02-04
11:12:02.000000000 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d --disassemble-zeroes
 # name: ia64 opc-f
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-i.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-i.d	2005-02-04
11:12:06.000000000 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-i
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-m.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-m.d	2005-02-04
11:12:10.000000000 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-m
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/opc-x.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/opc-x.d	2005-02-04
11:12:18.000000000 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 opc-x
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/pseudo.d	2005-01-21
15:10:07.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/pseudo.d	2005-02-08
10:35:27.000000000 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 pseudo-ops
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/regs.d	2004-06-02
16:36:20.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/regs.d	2005-02-08
10:32:11.000000000 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 regs
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/tls.d	2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-11/gas/testsuite/gas/ia64/tls.d	2005-02-04
15:01:12.000000000 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -dr
 #name: ia64 tls
 
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/unwind-err.l	2005-01-28
10:15:27.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/unwind-err.l	2005-02-08
10:38:38.000000000 +0100
@@ -29,6 +29,6 @@
 .*:36: Error: .save.b outside of prologue
 .*:37: Error: .altrp outside of prologue
 .*:42: Error: .prologue within prologue
-.*:52: Error: .body outside of procedure
-.*:59: Warning: Initial .prologue.*
-.*:66: Warning: Initial .body.*
+.*:50: Error: .body outside of procedure
+.*:57: Warning: Initial .prologue.*
+.*:64: Warning: Initial .body.*
---
/home/jbeulich/src/binutils/mainline/2005-02-11/gas/testsuite/gas/ia64/unwind-err.s	2005-01-28
09:11:40.000000000 +0100
+++ 2005-02-11/gas/testsuite/gas/ia64/unwind-err.s	2005-02-08
10:36:18.000000000 +0100
@@ -42,11 +42,9 @@ start:
 	.prologue
 	.save		ar.lc, r31
 	mov		r31 = ar.lc
-	;;
 	.body
 	.body
 	br.ret.sptk	rp
-	;;
 .personality personality
 .handlerdata
 .body
---
/home/jbeulich/src/binutils/mainline/2005-02-11/ld/testsuite/ld-elfvers/vers.exp	2004-11-02
17:16:17.000000000 +0100
+++ 2005-02-11/ld/testsuite/ld-elfvers/vers.exp	2005-02-08
11:32:10.000000000 +0100
@@ -91,6 +91,11 @@ if [istarget mips*-*-*] {
     }
 }
 
+case $target_triplet in {
+    { ia64-*-* } { set as_options "-x" }
+    default { set as_options "" }
+}
+
 proc test_ar { test lib object expect } {
     global ar
     global nm
@@ -506,6 +511,7 @@ proc build_binary { shared pic test sour
     global host_triplet
     global tmpdir
     global as
+    global as_options
     global objdump
     global CC
     global CFLAGS
@@ -516,7 +522,7 @@ proc build_binary { shared pic test sour
 	return
     }
 
-    if ![ld_assemble $as $tmpdir/$libname.s $tmpdir/$libname.o ]    
{
+    if ![ld_assemble $as "$as_options $tmpdir/$libname.s"
$tmpdir/$libname.o ]     {
 	unresolved "$test"
 	return
     }
@@ -593,6 +599,7 @@ proc test_ldfail { test flag source exec
     global host_triplet
     global tmpdir
     global as
+    global as_options
     global objdump
     global CC
     global CFLAGS
@@ -609,7 +616,7 @@ proc test_ldfail { test flag source exec
 	return
     }
 
-    if ![ld_assemble $as $tmpdir/$execname.s $tmpdir/$execname.o ]    
{
+    if ![ld_assemble $as "$as_options $tmpdir/$execname.s"
$tmpdir/$execname.o ]     {
 	unresolved "$test"
 	return
     }
@@ -697,6 +704,7 @@ proc build_exec { test source execname f
     global host_triplet
     global tmpdir
     global as
+    global as_options
     global objdump
     global CC
     global CFLAGS
@@ -708,7 +716,7 @@ proc build_exec { test source execname f
 	return
     }
 
-    if ![ld_assemble $as $tmpdir/$execname.s $tmpdir/$execname.o ]    
{
+    if ![ld_assemble $as "$as_options $tmpdir/$execname.s"
$tmpdir/$execname.o ]     {
 	unresolved "$test"
 	return
     }
@@ -910,15 +918,15 @@ if [istarget sparc*-*-*] {
 }
 run_ld_link_tests [list "\"vers24a\"
 			 \"-shared --version-script
$srcdir/$subdir/vers24.map\"
-			 \"$as_pic_flags\" {vers24a.c vers24b.c} { {
readelf -Wrs vers24.rd } }
+			 \"$as_pic_flags $as_options\" {vers24a.c
vers24b.c} { { readelf -Wrs vers24.rd } }
 			 \"libvers24a.so\" \"-fpic\""]
 run_ld_link_tests [list "\"vers24b\"
 			 \"-shared --version-script
$srcdir/$subdir/vers24.map\"
-			 \"$as_pic_flags\" {vers24b.c vers24a.c} { {
readelf -Wrs vers24.rd } }
+			 \"$as_pic_flags $as_options\" {vers24b.c
vers24a.c} { { readelf -Wrs vers24.rd } }
 			 \"libvers24b.so\" \"-fpic\""]
 run_ld_link_tests [list "\"vers24c\"
 			 \"-shared --version-script
$srcdir/$subdir/vers24.map\"
-			 \"$as_pic_flags\" {vers24c.c} { { readelf -Wrs
vers24.rd } }
+			 \"$as_pic_flags $as_options\" {vers24c.c} { {
readelf -Wrs vers24.rd } }
 			 \"libvers24c.so\" \"-fpic\""]
 
 # Test versioned definition vs. normal definition in different files.
---
/home/jbeulich/src/binutils/mainline/2005-02-11/ld/testsuite/ld-ia64/tlsbin.s	2003-01-16
22:31:18.000000000 +0100
+++ 2005-02-11/ld/testsuite/ld-ia64/tlsbin.s	2005-02-08
11:38:39.000000000 +0100
@@ -16,6 +16,7 @@ bl5:	.space 4
 bl6:	.space 4
 bl7:	.space 4
 bl8:	.space 4
+	.explicit
 	.pred.safe_across_calls p1-p5,p16-p63
 	.text
 	.globl	_start#
---
/home/jbeulich/src/binutils/mainline/2005-02-11/ld/testsuite/ld-ia64/tlsbinpic.s	2003-01-16
22:31:18.000000000 +0100
+++ 2005-02-11/ld/testsuite/ld-ia64/tlsbinpic.s	2005-02-08
11:37:39.000000000 +0100
@@ -31,9 +31,10 @@ sh5:	.long 261
 sh6:	.long 262
 sh7:	.long 263
 sh8:	.long 264
+	.explicit
+	.pred.safe_across_calls p1-p5,p16-p63
 	/* Force .text aligned to 4K, so it very likely gets at
 	   0x4000000000001000.  */
-	.pred.safe_across_calls p1-p5,p16-p63
 	.text
 	.balign	4096
 	.globl	fn2#
---
/home/jbeulich/src/binutils/mainline/2005-02-11/ld/testsuite/ld-ia64/tlspic1.s	2003-01-18
00:27:57.000000000 +0100
+++ 2005-02-11/ld/testsuite/ld-ia64/tlspic1.s	2005-02-08
11:37:50.000000000 +0100
@@ -30,8 +30,9 @@ sh5:	.long 261
 sh6:	.long 262
 sh7:	.long 263
 sh8:	.long 264
-	/* Force .text aligned to 4K, so it very likely gets at 0x1000. 
*/
+	.explicit
 	.pred.safe_across_calls p1-p5,p16-p63
+	/* Force .text aligned to 4K, so it very likely gets at 0x1000. 
*/
 	.text
 	.balign	4096
 	.globl	fn1#

Attachment: binutils-mainline-ia64-default-mode.patch
Description: Text document


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