mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 22:48:57 +08:00
gas/
2005-02-17 H.J. Lu <hongjiu.lu@intel.com> * NEWS: Mention "-mhint.b=[ok|warning|error]". * config/tc-ia64.c (md): Add hint_b. (emit_one_bundle): Handle md.hint_b for "hint". (md_parse_option): Accepted "-mhint.b=[ok|warning|error]". (md_show_usage): Add "-mhint.b=[ok|warning|error]". (ia64_init): Set md.hint_b to error. (md_assemble): Handle md.hint_b for "hint.b". * doc/as.texinfo: Add "-mhint.b=[ok|warning|error]". * doc/c-ia64.texi: Likewise. gas/testsuite/ 2005-02-17 H.J. Lu <hongjiu.lu@intel.com> * gas/ia64/hint.b-err.l: New file. * gas/ia64/hint.b-err.s: Likewise. * gas/ia64/hint.b-warn.l: Likewise. * gas/ia64/hint.b-warn.s: Likewise. * gas/ia64/ia64.exp: Run hint.b-err and hint.b-warn. * gas/ia64/opc-b.d: Pass -mhint.b=ok to as.
This commit is contained in:
@ -1,3 +1,17 @@
|
|||||||
|
2005-02-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* NEWS: Mention "-mhint.b=[ok|warning|error]".
|
||||||
|
|
||||||
|
* config/tc-ia64.c (md): Add hint_b.
|
||||||
|
(emit_one_bundle): Handle md.hint_b for "hint".
|
||||||
|
(md_parse_option): Accepted "-mhint.b=[ok|warning|error]".
|
||||||
|
(md_show_usage): Add "-mhint.b=[ok|warning|error]".
|
||||||
|
(ia64_init): Set md.hint_b to error.
|
||||||
|
(md_assemble): Handle md.hint_b for "hint.b".
|
||||||
|
|
||||||
|
* doc/as.texinfo: Add "-mhint.b=[ok|warning|error]".
|
||||||
|
* doc/c-ia64.texi: Likewise.
|
||||||
|
|
||||||
2005-02-17 Alan Modra <amodra@bigpond.net.au>
|
2005-02-17 Alan Modra <amodra@bigpond.net.au>
|
||||||
|
|
||||||
* tc.h (struct relax_type, relax_typeS): Move from here..
|
* tc.h (struct relax_type, relax_typeS): Move from here..
|
||||||
|
2
gas/NEWS
2
gas/NEWS
@ -1,5 +1,7 @@
|
|||||||
-*- text -*-
|
-*- text -*-
|
||||||
|
|
||||||
|
* New command line option -mhint.b=[ok|warning|error] for IA64 targets.
|
||||||
|
|
||||||
* New command line option -munwind-check=[warning|error] for IA64
|
* New command line option -munwind-check=[warning|error] for IA64
|
||||||
targets.
|
targets.
|
||||||
|
|
||||||
|
@ -229,6 +229,14 @@ static struct
|
|||||||
that are predicatable. */
|
that are predicatable. */
|
||||||
expressionS qp;
|
expressionS qp;
|
||||||
|
|
||||||
|
/* What to do when hint.b is used. */
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
hint_b_error,
|
||||||
|
hint_b_warning,
|
||||||
|
hint_b_ok
|
||||||
|
} hint_b;
|
||||||
|
|
||||||
unsigned int
|
unsigned int
|
||||||
manual_bundling : 1,
|
manual_bundling : 1,
|
||||||
debug_dv: 1,
|
debug_dv: 1,
|
||||||
@ -6705,9 +6713,34 @@ emit_one_bundle ()
|
|||||||
enum ia64_opnd opnd1, opnd2;
|
enum ia64_opnd opnd1, opnd2;
|
||||||
|
|
||||||
if ((strcmp (idesc->name, "nop") == 0)
|
if ((strcmp (idesc->name, "nop") == 0)
|
||||||
|| (strcmp (idesc->name, "hint") == 0)
|
|
||||||
|| (strcmp (idesc->name, "break") == 0))
|
|| (strcmp (idesc->name, "break") == 0))
|
||||||
insn_unit = required_unit;
|
insn_unit = required_unit;
|
||||||
|
else if (strcmp (idesc->name, "hint") == 0)
|
||||||
|
{
|
||||||
|
insn_unit = required_unit;
|
||||||
|
if (required_unit == IA64_UNIT_B)
|
||||||
|
{
|
||||||
|
switch (md.hint_b)
|
||||||
|
{
|
||||||
|
case hint_b_ok:
|
||||||
|
break;
|
||||||
|
case hint_b_warning:
|
||||||
|
as_warn ("hint in B unit may be treated as nop");
|
||||||
|
break;
|
||||||
|
case hint_b_error:
|
||||||
|
/* When manual bundling is off and there is no
|
||||||
|
user template, we choose a different unit so
|
||||||
|
that hint won't go into the current slot. We
|
||||||
|
will fill the current bundle with nops and
|
||||||
|
try to put hint into the next bundle. */
|
||||||
|
if (!manual_bundling && user_template < 0)
|
||||||
|
insn_unit = IA64_UNIT_I;
|
||||||
|
else
|
||||||
|
as_bad ("hint in B unit can't be used");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (strcmp (idesc->name, "chk.s") == 0
|
else if (strcmp (idesc->name, "chk.s") == 0
|
||||||
|| strcmp (idesc->name, "mov") == 0)
|
|| strcmp (idesc->name, "mov") == 0)
|
||||||
{
|
{
|
||||||
@ -6916,6 +6949,18 @@ md_parse_option (c, arg)
|
|||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
else if (strncmp (arg, "hint.b=", 7) == 0)
|
||||||
|
{
|
||||||
|
arg += 7;
|
||||||
|
if (strcmp (arg, "ok") == 0)
|
||||||
|
md.hint_b = hint_b_ok;
|
||||||
|
else if (strcmp (arg, "warning") == 0)
|
||||||
|
md.hint_b = hint_b_warning;
|
||||||
|
else if (strcmp (arg, "error") == 0)
|
||||||
|
md.hint_b = hint_b_error;
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
break;
|
break;
|
||||||
@ -7030,6 +7075,8 @@ 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\
|
||||||
|
-mhint.b=[ok|warning|error]\n\
|
||||||
|
hint.b check (default -mhint.b=error)\n\
|
||||||
-x | -xexplicit turn on dependency violation checking\n\
|
-x | -xexplicit turn on dependency violation checking\n\
|
||||||
-xauto automagically remove dependency violations (default)\n\
|
-xauto automagically remove dependency violations (default)\n\
|
||||||
-xnone turn off dependency violation checking\n\
|
-xnone turn off dependency violation checking\n\
|
||||||
@ -7382,6 +7429,7 @@ ia64_init (argc, argv)
|
|||||||
md.detect_dv = 1;
|
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;
|
||||||
|
md.hint_b = hint_b_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return a string for the target object file format. */
|
/* Return a string for the target object file format. */
|
||||||
@ -10600,6 +10648,20 @@ md_assemble (str)
|
|||||||
TOUPPER (unit));
|
TOUPPER (unit));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (strcmp (idesc->name, "hint.b") == 0)
|
||||||
|
{
|
||||||
|
switch (md.hint_b)
|
||||||
|
{
|
||||||
|
case hint_b_ok:
|
||||||
|
break;
|
||||||
|
case hint_b_warning:
|
||||||
|
as_warn ("hint.b may be treated as nop");
|
||||||
|
break;
|
||||||
|
case hint_b_error:
|
||||||
|
as_bad ("hint.b shouldn't be used");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
qp_regno = 0;
|
qp_regno = 0;
|
||||||
if (md.qp.X_op == O_register)
|
if (md.qp.X_op == O_register)
|
||||||
|
@ -316,6 +316,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
|
|||||||
[@b{-milp32}|@b{-milp64}|@b{-mlp64}|@b{-mp64}]
|
[@b{-milp32}|@b{-milp64}|@b{-mlp64}|@b{-mp64}]
|
||||||
[@b{-mle}|@b{mbe}]
|
[@b{-mle}|@b{mbe}]
|
||||||
[@b{-munwind-check=warning}|@b{-munwind-check=error}]
|
[@b{-munwind-check=warning}|@b{-munwind-check=error}]
|
||||||
|
[@b{-mhint.b=ok}|@b{-mhint.b=warning}|@b{-mhint.b=error}]
|
||||||
[@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}]
|
[@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}]
|
||||||
@end ifset
|
@end ifset
|
||||||
@ifset IP2K
|
@ifset IP2K
|
||||||
|
@ -73,6 +73,15 @@ will make the assembler issue a warning when an unwind directive check
|
|||||||
fails. This is the default. @code{-munwind-check=error} will make the
|
fails. This is the default. @code{-munwind-check=error} will make the
|
||||||
assembler issue an error when an unwind directive check fails.
|
assembler issue an error when an unwind directive check fails.
|
||||||
|
|
||||||
|
@item -mhint.b=ok
|
||||||
|
@item -mhint.b=warning
|
||||||
|
@item -mhint.b=error
|
||||||
|
These options control what the assembler will do when the @samp{hint.b}
|
||||||
|
instruction is used. @code{-mhint.b=ok} will make the assembler accept
|
||||||
|
@samp{hint.b}. @code{-mint.b=warning} will make the assembler issue a
|
||||||
|
warning when @samp{hint.b} is used. @code{-mhint.b=error} will make
|
||||||
|
the assembler treat @samp{hint.b} as an error, which is the default.
|
||||||
|
|
||||||
@item -x
|
@item -x
|
||||||
@item -xexplicit
|
@item -xexplicit
|
||||||
These options turn on dependency violation checking.
|
These options turn on dependency violation checking.
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2005-02-17 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* gas/ia64/hint.b-err.l: New file.
|
||||||
|
* gas/ia64/hint.b-err.s: Likewise.
|
||||||
|
* gas/ia64/hint.b-warn.l: Likewise.
|
||||||
|
* gas/ia64/hint.b-warn.s: Likewise.
|
||||||
|
|
||||||
|
* gas/ia64/ia64.exp: Run hint.b-err and hint.b-warn.
|
||||||
|
|
||||||
|
* gas/ia64/opc-b.d: Pass -mhint.b=ok to as.
|
||||||
|
|
||||||
2005-02-17 Jan Beulich <jbeulich@novell.com>
|
2005-02-17 Jan Beulich <jbeulich@novell.com>
|
||||||
|
|
||||||
* gas/ia64/nostkreg.[ds]: New.
|
* gas/ia64/nostkreg.[ds]: New.
|
||||||
|
3
gas/testsuite/gas/ia64/hint.b-err.l
Normal file
3
gas/testsuite/gas/ia64/hint.b-err.l
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.*: Assembler messages:
|
||||||
|
.*:1: Error: hint.b shouldn't be used
|
||||||
|
.*:2: Error: hint.b shouldn't be used
|
2
gas/testsuite/gas/ia64/hint.b-err.s
Normal file
2
gas/testsuite/gas/ia64/hint.b-err.s
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
hint.b @pause
|
||||||
|
hint.b 0x1ffff
|
3
gas/testsuite/gas/ia64/hint.b-warn.l
Normal file
3
gas/testsuite/gas/ia64/hint.b-warn.l
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
.*: Assembler messages:
|
||||||
|
.*:1: Warning: hint.b may be treated as nop
|
||||||
|
.*:2: Warning: hint.b may be treated as nop
|
2
gas/testsuite/gas/ia64/hint.b-warn.s
Normal file
2
gas/testsuite/gas/ia64/hint.b-warn.s
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
hint.b @pause
|
||||||
|
hint.b 0x1ffff
|
@ -79,4 +79,6 @@ if [istarget "ia64-*"] then {
|
|||||||
run_list_test "slot2" ""
|
run_list_test "slot2" ""
|
||||||
run_list_test "unwind-err" "-munwind-check=error"
|
run_list_test "unwind-err" "-munwind-check=error"
|
||||||
run_dump_test "operand-or"
|
run_dump_test "operand-or"
|
||||||
|
run_list_test "hint.b-err" ""
|
||||||
|
run_list_test "hint.b-warn" "-mhint.b=warning"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#as: -xnone
|
#as: -xnone -mhint.b=ok
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#name: ia64 opc-b
|
#name: ia64 opc-b
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user