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.
This commit is contained in:
parent
20b36a95ab
commit
f1dab70d1a
24 changed files with 115 additions and 22 deletions
|
@ -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>
|
2005-02-13 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* config/tc-ia64.c (dot_rot): Add comment that name strings should
|
* config/tc-ia64.c (dot_rot): Add comment that name strings should
|
||||||
|
|
3
gas/NEWS
3
gas/NEWS
|
@ -3,6 +3,9 @@
|
||||||
* New command line option -munwind-check=[warning|error] for IA64
|
* New command line option -munwind-check=[warning|error] for IA64
|
||||||
targets.
|
targets.
|
||||||
|
|
||||||
|
* The IA64 port now uses automatic dependency violation removal as its default
|
||||||
|
mode.
|
||||||
|
|
||||||
* Port to MAXQ processor contributed by HCL Tech.
|
* Port to MAXQ processor contributed by HCL Tech.
|
||||||
|
|
||||||
* Added support for generating unwind tables for ARM ELF targets.
|
* Added support for generating unwind tables for ARM ELF targets.
|
||||||
|
|
|
@ -6830,6 +6830,10 @@ md_parse_option (c, arg)
|
||||||
{
|
{
|
||||||
md.default_explicit_mode = 0;
|
md.default_explicit_mode = 0;
|
||||||
}
|
}
|
||||||
|
else if (strcmp (arg, "none") == 0)
|
||||||
|
{
|
||||||
|
md.detect_dv = 0;
|
||||||
|
}
|
||||||
else if (strcmp (arg, "debug") == 0)
|
else if (strcmp (arg, "debug") == 0)
|
||||||
{
|
{
|
||||||
md.debug_dv = 1;
|
md.debug_dv = 1;
|
||||||
|
@ -6839,6 +6843,11 @@ md_parse_option (c, arg)
|
||||||
md.default_explicit_mode = 1;
|
md.default_explicit_mode = 1;
|
||||||
md.debug_dv = 1;
|
md.debug_dv = 1;
|
||||||
}
|
}
|
||||||
|
else if (strcmp (arg, "debugn") == 0)
|
||||||
|
{
|
||||||
|
md.debug_dv = 1;
|
||||||
|
md.detect_dv = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
as_bad (_("Unrecognized option '-x%s'"), arg);
|
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\
|
-mle | -mbe select little- or big-endian byte order (default -mle)\n\
|
||||||
-munwind-check=[warning|error]\n\
|
-munwind-check=[warning|error]\n\
|
||||||
unwind directive check (default -munwind-check=warning)\n\
|
unwind directive check (default -munwind-check=warning)\n\
|
||||||
-x | -xexplicit turn on dependency violation checking (default)\n\
|
-x | -xexplicit turn on dependency violation checking\n\
|
||||||
-xauto automagically remove dependency violations\n\
|
-xauto automagically remove dependency violations (default)\n\
|
||||||
-xdebug debug dependency violation checker\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);
|
stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7224,6 +7238,7 @@ ia64_init (argc, argv)
|
||||||
char **argv ATTRIBUTE_UNUSED;
|
char **argv ATTRIBUTE_UNUSED;
|
||||||
{
|
{
|
||||||
md.flags = MD_FLAGS_DEFAULT;
|
md.flags = MD_FLAGS_DEFAULT;
|
||||||
|
md.detect_dv = 1;
|
||||||
/* FIXME: We should change it to unwind_check_error someday. */
|
/* FIXME: We should change it to unwind_check_error someday. */
|
||||||
md.unwind_check = unwind_check_warning;
|
md.unwind_check = unwind_check_warning;
|
||||||
}
|
}
|
||||||
|
@ -7301,7 +7316,15 @@ ia64_start_line ()
|
||||||
if (input_line_pointer[0] == ';' && input_line_pointer[-1] == ';')
|
if (input_line_pointer[0] == ';' && input_line_pointer[-1] == ';')
|
||||||
{
|
{
|
||||||
if (md.detect_dv && !md.explicit_mode)
|
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
|
else
|
||||||
insn_group_break (1, 0, 0);
|
insn_group_break (1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,17 +75,25 @@ assembler issue an error when an unwind directive check fails.
|
||||||
|
|
||||||
@item -x
|
@item -x
|
||||||
@item -xexplicit
|
@item -xexplicit
|
||||||
These options turn on dependency violation checking. This checking is turned on by
|
These options turn on dependency violation checking.
|
||||||
default.
|
|
||||||
|
|
||||||
@item -xauto
|
@item -xauto
|
||||||
This option instructs the assembler to automatically insert stop bits where necessary
|
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
|
@item -xdebug
|
||||||
This turns on debug output intended to help tracking down bugs in the dependency
|
This turns on debug output intended to help tracking down bugs in the dependency
|
||||||
violation checker.
|
violation checker.
|
||||||
|
|
||||||
|
@item -xdebugn
|
||||||
|
This is a shortcut for -xnone -xdebug.
|
||||||
|
|
||||||
|
@item -xdebugx
|
||||||
|
This is a shortcut for -xexplicit -xdebug.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@cindex IA-64 Syntax
|
@cindex IA-64 Syntax
|
||||||
|
|
|
@ -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>
|
2005-02-13 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* gas/ia64/pound.[ls]: New.
|
* gas/ia64/pound.[ls]: New.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
.*: Assembler messages:
|
.*: Assembler messages:
|
||||||
.*:11: Error: Label must be first in a bundle
|
.*:12: Error: Label must be first in a bundle
|
||||||
.*:18: Error: Label must be first in a bundle
|
.*:19: Error: Label must be first in a bundle
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
.explicit
|
||||||
start:
|
start:
|
||||||
{.mii
|
{.mii
|
||||||
label0:
|
label0:
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
.explicit
|
||||||
_start:
|
_start:
|
||||||
{.mlx
|
{.mlx
|
||||||
nop 0
|
nop 0
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# as: -xnone
|
||||||
# objdump: -d
|
# objdump: -d
|
||||||
# name: ia64 opc-a
|
# name: ia64 opc-a
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#as: -xnone
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#name: ia64 opc-b
|
#name: ia64 opc-b
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# as: -xnone
|
||||||
# objdump: -d --disassemble-zeroes
|
# objdump: -d --disassemble-zeroes
|
||||||
# name: ia64 opc-f
|
# name: ia64 opc-f
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# as: -xnone
|
||||||
# objdump: -d
|
# objdump: -d
|
||||||
# name: ia64 opc-i
|
# name: ia64 opc-i
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# as: -xnone
|
||||||
# objdump: -d
|
# objdump: -d
|
||||||
# name: ia64 opc-m
|
# name: ia64 opc-m
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#as: -xnone
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#name: ia64 opc-x
|
#name: ia64 opc-x
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
# as: -xnone
|
||||||
# objdump: -d
|
# objdump: -d
|
||||||
# name: ia64 pseudo-ops
|
# name: ia64 pseudo-ops
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#as: -xnone
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#name: ia64 regs
|
#name: ia64 regs
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#as: -xnone
|
||||||
#objdump: -dr
|
#objdump: -dr
|
||||||
#name: ia64 tls
|
#name: ia64 tls
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,6 @@
|
||||||
.*:36: Error: .save.b outside of prologue
|
.*:36: Error: .save.b outside of prologue
|
||||||
.*:37: Error: .altrp outside of prologue
|
.*:37: Error: .altrp outside of prologue
|
||||||
.*:42: Error: .prologue within prologue
|
.*:42: Error: .prologue within prologue
|
||||||
.*:52: Error: .body outside of procedure
|
.*:50: Error: .body outside of procedure
|
||||||
.*:59: Warning: Initial .prologue.*
|
.*:57: Warning: Initial .prologue.*
|
||||||
.*:66: Warning: Initial .body.*
|
.*:64: Warning: Initial .body.*
|
||||||
|
|
|
@ -42,11 +42,9 @@ start:
|
||||||
.prologue
|
.prologue
|
||||||
.save ar.lc, r31
|
.save ar.lc, r31
|
||||||
mov r31 = ar.lc
|
mov r31 = ar.lc
|
||||||
;;
|
|
||||||
.body
|
.body
|
||||||
.body
|
.body
|
||||||
br.ret.sptk rp
|
br.ret.sptk rp
|
||||||
;;
|
|
||||||
.personality personality
|
.personality personality
|
||||||
.handlerdata
|
.handlerdata
|
||||||
.body
|
.body
|
||||||
|
|
|
@ -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>
|
2005-02-13 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||||
|
|
||||||
* ld-sparc/tlssunnopic32.rd: Adjust for .dynsym changes.
|
* ld-sparc/tlssunnopic32.rd: Adjust for .dynsym changes.
|
||||||
|
|
|
@ -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 } {
|
proc test_ar { test lib object expect } {
|
||||||
global ar
|
global ar
|
||||||
global nm
|
global nm
|
||||||
|
@ -506,6 +511,7 @@ proc build_binary { shared pic test source libname other mapfile verexp versymex
|
||||||
global host_triplet
|
global host_triplet
|
||||||
global tmpdir
|
global tmpdir
|
||||||
global as
|
global as
|
||||||
|
global as_options
|
||||||
global objdump
|
global objdump
|
||||||
global CC
|
global CC
|
||||||
global CFLAGS
|
global CFLAGS
|
||||||
|
@ -516,7 +522,7 @@ proc build_binary { shared pic test source libname other mapfile verexp versymex
|
||||||
return
|
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"
|
unresolved "$test"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -593,6 +599,7 @@ proc test_ldfail { test flag source execname other mapfile whyfail } {
|
||||||
global host_triplet
|
global host_triplet
|
||||||
global tmpdir
|
global tmpdir
|
||||||
global as
|
global as
|
||||||
|
global as_options
|
||||||
global objdump
|
global objdump
|
||||||
global CC
|
global CC
|
||||||
global CFLAGS
|
global CFLAGS
|
||||||
|
@ -609,7 +616,7 @@ proc test_ldfail { test flag source execname other mapfile whyfail } {
|
||||||
return
|
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"
|
unresolved "$test"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -697,6 +704,7 @@ proc build_exec { test source execname flags solibname verexp versymexp symexp }
|
||||||
global host_triplet
|
global host_triplet
|
||||||
global tmpdir
|
global tmpdir
|
||||||
global as
|
global as
|
||||||
|
global as_options
|
||||||
global objdump
|
global objdump
|
||||||
global CC
|
global CC
|
||||||
global CFLAGS
|
global CFLAGS
|
||||||
|
@ -708,7 +716,7 @@ proc build_exec { test source execname flags solibname verexp versymexp symexp }
|
||||||
return
|
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"
|
unresolved "$test"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -910,15 +918,15 @@ if [istarget sparc*-*-*] {
|
||||||
}
|
}
|
||||||
run_ld_link_tests [list "\"vers24a\"
|
run_ld_link_tests [list "\"vers24a\"
|
||||||
\"-shared --version-script $srcdir/$subdir/vers24.map\"
|
\"-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\""]
|
\"libvers24a.so\" \"-fpic\""]
|
||||||
run_ld_link_tests [list "\"vers24b\"
|
run_ld_link_tests [list "\"vers24b\"
|
||||||
\"-shared --version-script $srcdir/$subdir/vers24.map\"
|
\"-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\""]
|
\"libvers24b.so\" \"-fpic\""]
|
||||||
run_ld_link_tests [list "\"vers24c\"
|
run_ld_link_tests [list "\"vers24c\"
|
||||||
\"-shared --version-script $srcdir/$subdir/vers24.map\"
|
\"-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\""]
|
\"libvers24c.so\" \"-fpic\""]
|
||||||
|
|
||||||
# Test versioned definition vs. normal definition in different files.
|
# Test versioned definition vs. normal definition in different files.
|
||||||
|
|
|
@ -16,6 +16,7 @@ bl5: .space 4
|
||||||
bl6: .space 4
|
bl6: .space 4
|
||||||
bl7: .space 4
|
bl7: .space 4
|
||||||
bl8: .space 4
|
bl8: .space 4
|
||||||
|
.explicit
|
||||||
.pred.safe_across_calls p1-p5,p16-p63
|
.pred.safe_across_calls p1-p5,p16-p63
|
||||||
.text
|
.text
|
||||||
.globl _start#
|
.globl _start#
|
||||||
|
|
|
@ -31,9 +31,10 @@ sh5: .long 261
|
||||||
sh6: .long 262
|
sh6: .long 262
|
||||||
sh7: .long 263
|
sh7: .long 263
|
||||||
sh8: .long 264
|
sh8: .long 264
|
||||||
|
.explicit
|
||||||
|
.pred.safe_across_calls p1-p5,p16-p63
|
||||||
/* Force .text aligned to 4K, so it very likely gets at
|
/* Force .text aligned to 4K, so it very likely gets at
|
||||||
0x4000000000001000. */
|
0x4000000000001000. */
|
||||||
.pred.safe_across_calls p1-p5,p16-p63
|
|
||||||
.text
|
.text
|
||||||
.balign 4096
|
.balign 4096
|
||||||
.globl fn2#
|
.globl fn2#
|
||||||
|
|
|
@ -30,8 +30,9 @@ sh5: .long 261
|
||||||
sh6: .long 262
|
sh6: .long 262
|
||||||
sh7: .long 263
|
sh7: .long 263
|
||||||
sh8: .long 264
|
sh8: .long 264
|
||||||
/* Force .text aligned to 4K, so it very likely gets at 0x1000. */
|
.explicit
|
||||||
.pred.safe_across_calls p1-p5,p16-p63
|
.pred.safe_across_calls p1-p5,p16-p63
|
||||||
|
/* Force .text aligned to 4K, so it very likely gets at 0x1000. */
|
||||||
.text
|
.text
|
||||||
.balign 4096
|
.balign 4096
|
||||||
.globl fn1#
|
.globl fn1#
|
||||||
|
|
Loading…
Reference in a new issue