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:
Jan Beulich 2005-02-14 08:02:51 +00:00
parent 20b36a95ab
commit f1dab70d1a
24 changed files with 115 additions and 22 deletions

View 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> 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

View file

@ -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.

View file

@ -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);
} }

View file

@ -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

View 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> 2005-02-13 Jan Beulich <jbeulich@novell.com>
* gas/ia64/pound.[ls]: New. * gas/ia64/pound.[ls]: New.

View file

@ -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

View file

@ -1,3 +1,4 @@
.explicit
start: start:
{.mii {.mii
label0: label0:

View file

@ -1,3 +1,4 @@
.explicit
_start: _start:
{.mlx {.mlx
nop 0 nop 0

View file

@ -1,3 +1,4 @@
# as: -xnone
# objdump: -d # objdump: -d
# name: ia64 opc-a # name: ia64 opc-a

View file

@ -1,3 +1,4 @@
#as: -xnone
#objdump: -d #objdump: -d
#name: ia64 opc-b #name: ia64 opc-b

View file

@ -1,3 +1,4 @@
# as: -xnone
# objdump: -d --disassemble-zeroes # objdump: -d --disassemble-zeroes
# name: ia64 opc-f # name: ia64 opc-f

View file

@ -1,3 +1,4 @@
# as: -xnone
# objdump: -d # objdump: -d
# name: ia64 opc-i # name: ia64 opc-i

View file

@ -1,3 +1,4 @@
# as: -xnone
# objdump: -d # objdump: -d
# name: ia64 opc-m # name: ia64 opc-m

View file

@ -1,3 +1,4 @@
#as: -xnone
#objdump: -d #objdump: -d
#name: ia64 opc-x #name: ia64 opc-x

View file

@ -1,3 +1,4 @@
# as: -xnone
# objdump: -d # objdump: -d
# name: ia64 pseudo-ops # name: ia64 pseudo-ops

View file

@ -1,3 +1,4 @@
#as: -xnone
#objdump: -d #objdump: -d
#name: ia64 regs #name: ia64 regs

View file

@ -1,3 +1,4 @@
#as: -xnone
#objdump: -dr #objdump: -dr
#name: ia64 tls #name: ia64 tls

View file

@ -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.*

View file

@ -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

View 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> 2005-02-13 Eric Botcazou <ebotcazou@libertysurf.fr>
* ld-sparc/tlssunnopic32.rd: Adjust for .dynsym changes. * ld-sparc/tlssunnopic32.rd: Adjust for .dynsym changes.

View 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 } { 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.

View file

@ -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#

View file

@ -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#

View file

@ -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#