summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2005-02-14 08:02:51 +0000
committerJan Beulich <jbeulich@novell.com>2005-02-14 08:02:51 +0000
commitf9ed4f4db9d5258077d35576884a29d4d0ea1a05 (patch)
treeffed3d66bf9a9af434d75a405e992b1263338576
parentb9272bdf34f264669fba32cfd0ed88d82c6becf1 (diff)
downloadbinutils-redhat-f9ed4f4db9d5258077d35576884a29d4d0ea1a05.tar.gz
gas/
2005-02-13 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-13 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-13 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.
-rw-r--r--gas/ChangeLog11
-rw-r--r--gas/NEWS3
-rw-r--r--gas/config/tc-ia64.c31
-rw-r--r--gas/doc/c-ia64.texi14
-rw-r--r--gas/testsuite/ChangeLog17
-rw-r--r--gas/testsuite/gas/ia64/label.l4
-rw-r--r--gas/testsuite/gas/ia64/label.s1
-rw-r--r--gas/testsuite/gas/ia64/nop_x.s1
-rw-r--r--gas/testsuite/gas/ia64/opc-a.d1
-rw-r--r--gas/testsuite/gas/ia64/opc-b.d1
-rw-r--r--gas/testsuite/gas/ia64/opc-f.d1
-rw-r--r--gas/testsuite/gas/ia64/opc-i.d1
-rw-r--r--gas/testsuite/gas/ia64/opc-m.d1
-rw-r--r--gas/testsuite/gas/ia64/opc-x.d1
-rw-r--r--gas/testsuite/gas/ia64/pseudo.d1
-rw-r--r--gas/testsuite/gas/ia64/regs.d1
-rw-r--r--gas/testsuite/gas/ia64/tls.d1
-rw-r--r--gas/testsuite/gas/ia64/unwind-err.l6
-rw-r--r--gas/testsuite/gas/ia64/unwind-err.s2
-rw-r--r--ld/testsuite/ChangeLog11
-rw-r--r--ld/testsuite/ld-elfvers/vers.exp20
-rw-r--r--ld/testsuite/ld-ia64/tlsbin.s1
-rw-r--r--ld/testsuite/ld-ia64/tlsbinpic.s3
-rw-r--r--ld/testsuite/ld-ia64/tlspic1.s3
24 files changed, 115 insertions, 22 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 19b4ee9861..fe934ea51e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,16 @@
2005-02-13 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.
+
+2005-02-13 Jan Beulich <jbeulich@novell.com>
+
* config/tc-ia64.c (dot_rot): Add comment that name strings should
be freed when wiping out previous state. Canonicalize names before
use. Free name string when detecting redefinition.
diff --git a/gas/NEWS b/gas/NEWS
index f9ab510f48..feaee1f732 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -3,6 +3,9 @@
* New command line option -munwind-check=[warning|error] for IA64
targets.
+* 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.
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index 7dcb67cf90..3da3ddaa9d 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -6830,6 +6830,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;
@@ -6839,6 +6843,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);
@@ -6880,9 +6889,14 @@ IA-64 options:\n\
-mle | -mbe select little- or big-endian byte order (default -mle)\n\
-munwind-check=[warning|error]\n\
unwind directive check (default -munwind-check=warning)\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);
}
@@ -7224,6 +7238,7 @@ ia64_init (argc, argv)
char **argv ATTRIBUTE_UNUSED;
{
md.flags = MD_FLAGS_DEFAULT;
+ md.detect_dv = 1;
/* FIXME: We should change it to unwind_check_error someday. */
md.unwind_check = unwind_check_warning;
}
@@ -7301,7 +7316,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);
}
diff --git a/gas/doc/c-ia64.texi b/gas/doc/c-ia64.texi
index cfe64696d9..4858cb9e3b 100644
--- a/gas/doc/c-ia64.texi
+++ b/gas/doc/c-ia64.texi
@@ -75,17 +75,25 @@ assembler issue an error when an unwind directive check fails.
@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
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 823d36e057..07662e9ff1 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,22 @@
2005-02-13 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.
+
+2005-02-13 Jan Beulich <jbeulich@novell.com>
+
* gas/ia64/pound.[ls]: New.
* gas/ia64/ia64.exp: Run new test.
diff --git a/gas/testsuite/gas/ia64/label.l b/gas/testsuite/gas/ia64/label.l
index 288fce580b..89eba5926e 100644
--- a/gas/testsuite/gas/ia64/label.l
+++ b/gas/testsuite/gas/ia64/label.l
@@ -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
diff --git a/gas/testsuite/gas/ia64/label.s b/gas/testsuite/gas/ia64/label.s
index 6eff4c9aad..dbe5c38ec9 100644
--- a/gas/testsuite/gas/ia64/label.s
+++ b/gas/testsuite/gas/ia64/label.s
@@ -1,3 +1,4 @@
+.explicit
start:
{.mii
label0:
diff --git a/gas/testsuite/gas/ia64/nop_x.s b/gas/testsuite/gas/ia64/nop_x.s
index 33c7e0c536..61265b39fd 100644
--- a/gas/testsuite/gas/ia64/nop_x.s
+++ b/gas/testsuite/gas/ia64/nop_x.s
@@ -1,3 +1,4 @@
+.explicit
_start:
{.mlx
nop 0
diff --git a/gas/testsuite/gas/ia64/opc-a.d b/gas/testsuite/gas/ia64/opc-a.d
index 44d7daf532..ed599bd266 100644
--- a/gas/testsuite/gas/ia64/opc-a.d
+++ b/gas/testsuite/gas/ia64/opc-a.d
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 opc-a
diff --git a/gas/testsuite/gas/ia64/opc-b.d b/gas/testsuite/gas/ia64/opc-b.d
index 9dd9874115..64a492839c 100644
--- a/gas/testsuite/gas/ia64/opc-b.d
+++ b/gas/testsuite/gas/ia64/opc-b.d
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -d
#name: ia64 opc-b
diff --git a/gas/testsuite/gas/ia64/opc-f.d b/gas/testsuite/gas/ia64/opc-f.d
index 4b39b9bf1f..fa531169aa 100644
--- a/gas/testsuite/gas/ia64/opc-f.d
+++ b/gas/testsuite/gas/ia64/opc-f.d
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d --disassemble-zeroes
# name: ia64 opc-f
diff --git a/gas/testsuite/gas/ia64/opc-i.d b/gas/testsuite/gas/ia64/opc-i.d
index 3b99593072..5c2bf0c399 100644
--- a/gas/testsuite/gas/ia64/opc-i.d
+++ b/gas/testsuite/gas/ia64/opc-i.d
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 opc-i
diff --git a/gas/testsuite/gas/ia64/opc-m.d b/gas/testsuite/gas/ia64/opc-m.d
index ea5ddac0a6..dcd0195986 100644
--- a/gas/testsuite/gas/ia64/opc-m.d
+++ b/gas/testsuite/gas/ia64/opc-m.d
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 opc-m
diff --git a/gas/testsuite/gas/ia64/opc-x.d b/gas/testsuite/gas/ia64/opc-x.d
index 77010e8d5e..dc64558780 100644
--- a/gas/testsuite/gas/ia64/opc-x.d
+++ b/gas/testsuite/gas/ia64/opc-x.d
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -d
#name: ia64 opc-x
diff --git a/gas/testsuite/gas/ia64/pseudo.d b/gas/testsuite/gas/ia64/pseudo.d
index c636e5010c..67a1103557 100644
--- a/gas/testsuite/gas/ia64/pseudo.d
+++ b/gas/testsuite/gas/ia64/pseudo.d
@@ -1,3 +1,4 @@
+# as: -xnone
# objdump: -d
# name: ia64 pseudo-ops
diff --git a/gas/testsuite/gas/ia64/regs.d b/gas/testsuite/gas/ia64/regs.d
index 8ff41a449e..e51c50008c 100644
--- a/gas/testsuite/gas/ia64/regs.d
+++ b/gas/testsuite/gas/ia64/regs.d
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -d
#name: ia64 regs
diff --git a/gas/testsuite/gas/ia64/tls.d b/gas/testsuite/gas/ia64/tls.d
index 57e07678e7..f067e05e63 100644
--- a/gas/testsuite/gas/ia64/tls.d
+++ b/gas/testsuite/gas/ia64/tls.d
@@ -1,3 +1,4 @@
+#as: -xnone
#objdump: -dr
#name: ia64 tls
diff --git a/gas/testsuite/gas/ia64/unwind-err.l b/gas/testsuite/gas/ia64/unwind-err.l
index 7641df7742..153451f38b 100644
--- a/gas/testsuite/gas/ia64/unwind-err.l
+++ b/gas/testsuite/gas/ia64/unwind-err.l
@@ -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.*
diff --git a/gas/testsuite/gas/ia64/unwind-err.s b/gas/testsuite/gas/ia64/unwind-err.s
index 49cb6c92f7..f50cc3d13d 100644
--- a/gas/testsuite/gas/ia64/unwind-err.s
+++ b/gas/testsuite/gas/ia64/unwind-err.s
@@ -42,11 +42,9 @@ start:
.prologue
.save ar.lc, r31
mov r31 = ar.lc
- ;;
.body
.body
br.ret.sptk rp
- ;;
.personality personality
.handlerdata
.body
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 336b4e5b0c..b0ab8c499b 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,14 @@
+2005-02-13 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.
+
2005-02-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* ld-sparc/tlssunnopic32.rd: Adjust for .dynsym changes.
diff --git a/ld/testsuite/ld-elfvers/vers.exp b/ld/testsuite/ld-elfvers/vers.exp
index 9662a6b2b9..d2562b70ac 100644
--- a/ld/testsuite/ld-elfvers/vers.exp
+++ b/ld/testsuite/ld-elfvers/vers.exp
@@ -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 source libname other mapfile verexp versymex
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 source libname other mapfile verexp versymex
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 execname other mapfile whyfail } {
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 execname other mapfile whyfail } {
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 flags solibname verexp versymexp symexp }
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 flags solibname verexp versymexp symexp }
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.
diff --git a/ld/testsuite/ld-ia64/tlsbin.s b/ld/testsuite/ld-ia64/tlsbin.s
index f27318c560..7b5f34aca2 100644
--- a/ld/testsuite/ld-ia64/tlsbin.s
+++ b/ld/testsuite/ld-ia64/tlsbin.s
@@ -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#
diff --git a/ld/testsuite/ld-ia64/tlsbinpic.s b/ld/testsuite/ld-ia64/tlsbinpic.s
index 88a054355e..f0613434cb 100644
--- a/ld/testsuite/ld-ia64/tlsbinpic.s
+++ b/ld/testsuite/ld-ia64/tlsbinpic.s
@@ -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#
diff --git a/ld/testsuite/ld-ia64/tlspic1.s b/ld/testsuite/ld-ia64/tlspic1.s
index 84656076ca..5242d28b46 100644
--- a/ld/testsuite/ld-ia64/tlspic1.s
+++ b/ld/testsuite/ld-ia64/tlspic1.s
@@ -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#