gas/
authorJan Beulich <jbeulich@novell.com>
Mon, 14 Feb 2005 08:02:51 +0000 (08:02 +0000)
committerJan Beulich <jbeulich@novell.com>
Mon, 14 Feb 2005 08:02:51 +0000 (08:02 +0000)
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.

24 files changed:
gas/ChangeLog
gas/NEWS
gas/config/tc-ia64.c
gas/doc/c-ia64.texi
gas/testsuite/ChangeLog
gas/testsuite/gas/ia64/label.l
gas/testsuite/gas/ia64/label.s
gas/testsuite/gas/ia64/nop_x.s
gas/testsuite/gas/ia64/opc-a.d
gas/testsuite/gas/ia64/opc-b.d
gas/testsuite/gas/ia64/opc-f.d
gas/testsuite/gas/ia64/opc-i.d
gas/testsuite/gas/ia64/opc-m.d
gas/testsuite/gas/ia64/opc-x.d
gas/testsuite/gas/ia64/pseudo.d
gas/testsuite/gas/ia64/regs.d
gas/testsuite/gas/ia64/tls.d
gas/testsuite/gas/ia64/unwind-err.l
gas/testsuite/gas/ia64/unwind-err.s
ld/testsuite/ChangeLog
ld/testsuite/ld-elfvers/vers.exp
ld/testsuite/ld-ia64/tlsbin.s
ld/testsuite/ld-ia64/tlsbinpic.s
ld/testsuite/ld-ia64/tlspic1.s

index 19b4ee98613c64c082f866fdb6b04ae241c64485..fe934ea51e677700916d94f3f29aac0d3c748efd 100644 (file)
@@ -1,3 +1,14 @@
+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
index f9ab510f484cbe143d488e42a1fae27df9c763f8..feaee1f732db8c47ff2969126e1c28da9dc1f7fe 100644 (file)
--- 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.
index 7dcb67cf9065ffc92258e717fea757043783cda8..3da3ddaa9dffa4aabac7a57378fa86d455aa8e40 100644 (file)
@@ -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);
     }
index cfe64696d91d45a799980924c743b6560473221e..4858cb9e3b618ecbcf13c2b3c15f5148fdcadda1 100644 (file)
@@ -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
index 823d36e057a1688814280f3d254da2f7f9edf3dc..07662e9ff186de2fa35942be6d12607f24de10ef 100644 (file)
@@ -1,3 +1,20 @@
+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.
index 288fce580bfda0567bb0a5e404b50f84464e1226..89eba5926e7cceb8f77863695f29ea972bc75515 100644 (file)
@@ -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
index 6eff4c9aad1cdc8d91a652cd41435a821f3abfe7..dbe5c38ec95c9a21158753e5892dd01dbf054769 100644 (file)
@@ -1,3 +1,4 @@
+.explicit
 start:
 {.mii
 label0:
index 33c7e0c536ad6b1423a8bd3b6f87f589042a5d63..61265b39fd7c107c7f77e893892529fe5434c353 100644 (file)
@@ -1,3 +1,4 @@
+.explicit
 _start:
 {.mlx
        nop     0
index 44d7daf5324e24a368b357dd80efd996df0be47e..ed599bd266dee9fe8cc8913cef27103fcf86cbea 100644 (file)
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-a
 
index 9dd987411532098480d3064549d259339db917e1..64a492839cb61a4b7c06b17442a1b33533a8a6f9 100644 (file)
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 opc-b
 
index 4b39b9bf1f748ebc19d61fd98297ced13fd9e278..fa531169aa61c4ba6b1364d5c61ca1a364b3fcb8 100644 (file)
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d --disassemble-zeroes
 # name: ia64 opc-f
 
index 3b99593072f4f36c90167461e80f575ca0363f30..5c2bf0c399bcbe5b7706f4243076935eb811229c 100644 (file)
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-i
 
index ea5ddac0a607a6dba1f5ca01dc2268da1fbf5176..dcd0195986596894cf04875d359630ddd628c890 100644 (file)
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 opc-m
 
index 77010e8d5eb264f099972f8b58653fecf2b6b5a8..dc645587806dec4bd4ff0d17ff26606f3b861870 100644 (file)
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 opc-x
 
index c636e5010c159cef484decb1c3794e3605ddd67b..67a1103557b55b533aed23a2068d94f25870dcfd 100644 (file)
@@ -1,3 +1,4 @@
+# as: -xnone
 # objdump: -d
 # name: ia64 pseudo-ops
 
index 8ff41a449eda88687e1e092896d1fa675b4371de..e51c50008ce54f7503d62c8456c5a8c3e1ce609d 100644 (file)
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -d
 #name: ia64 regs
 
index 57e07678e74b0dab2754de52e461d912b782f7ca..f067e05e630e1985db6566249fa02b63b959bc86 100644 (file)
@@ -1,3 +1,4 @@
+#as: -xnone
 #objdump: -dr
 #name: ia64 tls
 
index 7641df77424a9bc5839044c14a322cd0fd92b9e4..153451f38bd26044159ee67563ab43983a170c8c 100644 (file)
@@ -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.*
index 49cb6c92f7a2478a616093a98407a0b6699894bd..f50cc3d13dbc94876f999d4a4db878332e67a11e 100644 (file)
@@ -42,11 +42,9 @@ start:
        .prologue
        .save           ar.lc, r31
        mov             r31 = ar.lc
-       ;;
        .body
        .body
        br.ret.sptk     rp
-       ;;
 .personality personality
 .handlerdata
 .body
index 336b4e5b0c9dd93ca3a6f6c5dd981b7a147494d3..b0ab8c499b5270d3c36c1ec69db2145fa6eedf04 100644 (file)
@@ -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.
index 9662a6b2b9711fe736213e1e9377fea3a24c13ee..d2562b70ac5692529e14f5143d16c605af78aed3 100644 (file)
@@ -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.
index f27318c560b7beafeaa3e0ad2e08f219c8592e1a..7b5f34aca27b72335c4556c3526e0922bd05bcf2 100644 (file)
@@ -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#
index 88a054355edd526dbfdc3fb73f9f68c2f92724be..f0613434cb2c42a7af66463b961e3b69d67ea106 100644 (file)
@@ -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#
index 84656076caa0630120d9e5fdccad6040398d93bb..5242d28b4665e2f940636d82f4298a75cc0a6b65 100644 (file)
@@ -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#