* Re: [PATCH] Re: ia64 gas default mode
[not found] <s20c93b8.043@emea1-mh.id2.novell.com>
@ 2005-02-11 20:58 ` James E Wilson
0 siblings, 0 replies; 5+ messages in thread
From: James E Wilson @ 2005-02-11 20:58 UTC (permalink / raw)
To: Jan Beulich; +Cc: binutils
On Fri, 2005-02-11 at 03:15, Jan Beulich wrote:
> * config/tc-ia64.c (md_parse_option): Handle -xnone and
> -xdebugn.
> ...
Thanks. This is OK.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Re: ia64 gas default mode
@ 2005-02-11 15:56 Jan Beulich
0 siblings, 0 replies; 5+ messages in thread
From: Jan Beulich @ 2005-02-11 15:56 UTC (permalink / raw)
To: wilson; +Cc: binutils
[-- Attachment #1: Type: text/plain, Size: 13889 bytes --]
>>> 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 #2: binutils-mainline-ia64-default-mode.patch --]
[-- Type: text/plain, Size: 13636 bytes --]
This makes automatic mode the default (matching ias behavior), adding a command
line option (-xnone) to disable that.
Built and tested on ia64-unknown-linux-gnu.
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#
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Re: ia64 gas default mode
2005-02-11 2:46 ` James E Wilson
@ 2005-02-11 9:34 ` Ian Lance Taylor
0 siblings, 0 replies; 5+ messages in thread
From: Ian Lance Taylor @ 2005-02-11 9:34 UTC (permalink / raw)
To: James E Wilson; +Cc: Jan Beulich, binutils
James E Wilson <wilson@specifixinc.com> writes:
> 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.
Generally new options should be mention in the gas/NEWS file as well.
I don't know how significant these options are, so I don't know how
important it is in this case.
Thanks.
Ian
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] Re: ia64 gas default mode
2005-02-08 16:54 Jan Beulich
@ 2005-02-11 2:46 ` James E Wilson
2005-02-11 9:34 ` Ian Lance Taylor
0 siblings, 1 reply; 5+ messages in thread
From: James E Wilson @ 2005-02-11 2:46 UTC (permalink / raw)
To: Jan Beulich; +Cc: binutils
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.
We will have to watch for problems. Even though this is correct, this
may break existing programs which made incorrect assumptions. I know
that gcc and the linux kernel are OK because they always use the -x
option. As for glibc, it looks like it is OK also because it uses gcc
as the assembler.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] Re: ia64 gas default mode
@ 2005-02-08 16:54 Jan Beulich
2005-02-11 2:46 ` James E Wilson
0 siblings, 1 reply; 5+ messages in thread
From: Jan Beulich @ 2005-02-08 16:54 UTC (permalink / raw)
To: wilson; +Cc: binutils
[-- Attachment #1: Type: text/plain, Size: 12492 bytes --]
>>> James E Wilson <wilson@specifixinc.com> 20.01.05 02:24:42 >>>
>On Wed, 2005-01-19 at 16:05, James E Wilson wrote:
>> 3) Enable -xexplicit by default. Assembler programs with correct
stop
>> bits will always work, but a few may get false DV warnings.
Assembler
>> programs without correct stop bits will never work, and most but not
all
>> will get assembler warnings.
>
>If we do enable this or -xauto by default, we should probably also add
a
>-xnone or similar option to disable the DV checking code. No one in
>their right mind should disable DV checking, but it might be useful
if
>someone runs into a DV checking bug, and can't figure out how to work
>around it except by turning off the DV checking.
line option (-xnone) to disable that.
Built and tested on ia64-unknown-linux-gnu.
Jan
gas/
2005-02-08 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (md_parse_option): Handle -xnone and
-xdebugn.
(md_show_usage): Add -xnone.
(ia64_init): Set md.detect_dv.
(ia64_start_line): New static variable warned. Warn only once
when
encountering explicit stops in automatic mode.
gas/testsuite/
2005-02-08 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-08 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-08/gas/config/tc-ia64.c 2005-02-02
08:33:18.000000000 +0100
+++ 2005-02-08/gas/config/tc-ia64.c 2005-02-08 10:32:11.442268383
+0100
@@ -6849,6 +6849,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;
@@ -6858,6 +6862,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);
@@ -6897,8 +6906,9 @@ 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\
+ -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"),
stream);
}
@@ -7242,6 +7252,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. */
@@ -7317,7 +7328,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-08/gas/testsuite/gas/ia64/label.l 2005-01-21
15:52:42.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/label.l 2005-02-08
10:34:15.098516868 +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-08/gas/testsuite/gas/ia64/label.s 2005-01-20
11:37:08.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/label.s 2005-02-08
10:34:22.953985522 +0100
@@ -1,3 +1,4 @@
+.explicit
start:
{.mii
label0:
---
/home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/nop_x.s 2005-01-21
15:56:11.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/nop_x.s 2005-02-08
10:34:48.802618018 +0100
@@ -1,3 +1,4 @@
+.explicit
_start:
{.mlx
nop 0
---
/home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/opc-a.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-b.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-f.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-i.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-m.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-x.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/pseudo.d 2005-01-21
15:10:07.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/pseudo.d 2005-02-08
10:35:26.639531617 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 pseudo-ops
---
/home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/regs.d 2004-06-02
16:36:20.000000000 +0200
+++ 2005-02-08/gas/testsuite/gas/ia64/regs.d 2005-02-08
10:32:11.452034008 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -d
#name: ia64 regs
---
/home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/tls.d 2003-09-26
05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/unwind-err.l 2005-01-28
10:15:27.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/unwind-err.l 2005-02-08
10:38:37.655154277 +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-08/gas/testsuite/gas/ia64/unwind-err.s 2005-01-28
09:11:40.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/unwind-err.s 2005-02-08
10:36:17.905155989 +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-08/ld/testsuite/ld-elfvers/vers.exp 2004-11-02
17:16:17.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-elfvers/vers.exp 2005-02-08
11:32:10.477380545 +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-08/ld/testsuite/ld-ia64/tlsbin.s 2003-01-16
22:31:18.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlsbin.s 2005-02-08
11:38:39.422688280 +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-08/ld/testsuite/ld-ia64/tlsbinpic.s 2003-01-16
22:31:18.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlsbinpic.s 2005-02-08
11:37:39.242024955 +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-08/ld/testsuite/ld-ia64/tlspic1.s 2003-01-18
00:27:57.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlspic1.s 2005-02-08
11:37:50.275227945 +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 #2: binutils-mainline-ia64-default-mode.patch --]
[-- Type: text/plain, Size: 11856 bytes --]
This make automatic mode the default (matching ias behavior), adding a command
line option (-xnone) to disable that.
Built and tested on ia64-unknown-linux-gnu.
Jan
gas/
2005-02-08 Jan Beulich <jbeulich@novell.com>
* config/tc-ia64.c (md_parse_option): Handle -xnone and -xdebugn.
(md_show_usage): Add -xnone.
(ia64_init): Set md.detect_dv.
(ia64_start_line): New static variable warned. Warn only once when
encountering explicit stops in automatic mode.
gas/testsuite/
2005-02-08 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-08 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-08/gas/config/tc-ia64.c 2005-02-02 08:33:18.000000000 +0100
+++ 2005-02-08/gas/config/tc-ia64.c 2005-02-08 10:32:11.442268383 +0100
@@ -6849,6 +6849,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;
@@ -6858,6 +6862,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);
@@ -6897,8 +6906,9 @@ 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\
+ -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"),
stream);
}
@@ -7242,6 +7252,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. */
@@ -7317,7 +7328,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-08/gas/testsuite/gas/ia64/label.l 2005-01-21 15:52:42.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/label.l 2005-02-08 10:34:15.098516868 +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-08/gas/testsuite/gas/ia64/label.s 2005-01-20 11:37:08.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/label.s 2005-02-08 10:34:22.953985522 +0100
@@ -1,3 +1,4 @@
+.explicit
start:
{.mii
label0:
--- /home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/nop_x.s 2005-01-21 15:56:11.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/nop_x.s 2005-02-08 10:34:48.802618018 +0100
@@ -1,3 +1,4 @@
+.explicit
_start:
{.mlx
nop 0
--- /home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/opc-a.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-b.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-f.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-i.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-m.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/opc-x.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/pseudo.d 2005-01-21 15:10:07.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/pseudo.d 2005-02-08 10:35:26.639531617 +0100
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 pseudo-ops
--- /home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/regs.d 2004-06-02 16:36:20.000000000 +0200
+++ 2005-02-08/gas/testsuite/gas/ia64/regs.d 2005-02-08 10:32:11.452034008 +0100
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -d
#name: ia64 regs
--- /home/jbeulich/src/binutils/mainline/2005-02-08/gas/testsuite/gas/ia64/tls.d 2003-09-26 05:54:09.000000000 +0200
+++ 2005-02-08/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-08/gas/testsuite/gas/ia64/unwind-err.l 2005-01-28 10:15:27.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/unwind-err.l 2005-02-08 10:38:37.655154277 +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-08/gas/testsuite/gas/ia64/unwind-err.s 2005-01-28 09:11:40.000000000 +0100
+++ 2005-02-08/gas/testsuite/gas/ia64/unwind-err.s 2005-02-08 10:36:17.905155989 +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-08/ld/testsuite/ld-elfvers/vers.exp 2004-11-02 17:16:17.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-elfvers/vers.exp 2005-02-08 11:32:10.477380545 +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-08/ld/testsuite/ld-ia64/tlsbin.s 2003-01-16 22:31:18.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlsbin.s 2005-02-08 11:38:39.422688280 +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-08/ld/testsuite/ld-ia64/tlsbinpic.s 2003-01-16 22:31:18.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlsbinpic.s 2005-02-08 11:37:39.242024955 +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-08/ld/testsuite/ld-ia64/tlspic1.s 2003-01-18 00:27:57.000000000 +0100
+++ 2005-02-08/ld/testsuite/ld-ia64/tlspic1.s 2005-02-08 11:37:50.275227945 +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#
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-02-11 19:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <s20c93b8.043@emea1-mh.id2.novell.com>
2005-02-11 20:58 ` [PATCH] Re: ia64 gas default mode James E Wilson
2005-02-11 15:56 Jan Beulich
-- strict thread matches above, loose matches on Subject: below --
2005-02-08 16:54 Jan Beulich
2005-02-11 2:46 ` James E Wilson
2005-02-11 9:34 ` Ian Lance Taylor
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).