[PATCH] Re: ia64 gas default mode
Jan Beulich
JBeulich@novell.com
Tue Feb 8 16:54:00 GMT 2005
>>> 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#
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: binutils-mainline-ia64-default-mode.patch
URL: <https://sourceware.org/pipermail/binutils/attachments/20050208/f1354f9e/attachment.ksh>
More information about the Binutils
mailing list