2001-06-08 H.J. Lu <hjl@gnu.org>

* config/tc-mips.c (warn_nops): New variable. Set to 0 to
	disable warning about all NOPS that the assembler generates.
	(macro): Warn NOPS generated only if warn_nops is not 0.
	(md_shortopts): Add `n'.
	(md_parse_option): Set warn_nops to 1 for `n'.
This commit is contained in:
H.J. Lu 2001-06-09 05:24:39 +00:00
parent 268f6bed84
commit 39c0a33100
2 changed files with 22 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2001-06-08 H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (warn_nops): New variable. Set to 0 to
disable warning about all NOPS that the assembler generates.
(macro): Warn NOPS generated only if warn_nops is not 0.
(md_shortopts): Add `n'.
(md_parse_option): Set warn_nops to 1 for `n'.
2001-06-08 H.J. Lu <hjl@gnu.org> 2001-06-08 H.J. Lu <hjl@gnu.org>
* config/tc-mips.c (mips_ip): Properly handle illegal operands. * config/tc-mips.c (mips_ip): Properly handle illegal operands.

View File

@ -313,6 +313,9 @@ enum mips_pic_level
static enum mips_pic_level mips_pic; static enum mips_pic_level mips_pic;
/* Warn about all NOPS that the assembler generates. */
static int warn_nops = 0;
/* 1 if we should generate 32 bit offsets from the GP register in /* 1 if we should generate 32 bit offsets from the GP register in
SVR4_PIC mode. Currently has no meaning in other modes. */ SVR4_PIC mode. Currently has no meaning in other modes. */
static int mips_big_got; static int mips_big_got;
@ -3626,12 +3629,16 @@ macro (ip)
/* result is always false */ /* result is always false */
if (! likely) if (! likely)
{ {
as_warn (_("Branch %s is always false (nop)"), ip->insn_mo->name); if (warn_nops)
as_warn (_("Branch %s is always false (nop)"),
ip->insn_mo->name);
macro_build ((char *) NULL, &icnt, NULL, "nop", "", 0); macro_build ((char *) NULL, &icnt, NULL, "nop", "", 0);
} }
else else
{ {
as_warn (_("Branch likely %s is always false"), ip->insn_mo->name); if (warn_nops)
as_warn (_("Branch likely %s is always false"),
ip->insn_mo->name);
macro_build ((char *) NULL, &icnt, &offset_expr, "bnel", macro_build ((char *) NULL, &icnt, &offset_expr, "bnel",
"s,t,p", 0, 0); "s,t,p", 0, 0);
} }
@ -8867,7 +8874,7 @@ md_number_to_chars (buf, val, n)
number_to_chars_littleendian (buf, val, n); number_to_chars_littleendian (buf, val, n);
} }
CONST char *md_shortopts = "O::g::G:"; CONST char *md_shortopts = "nO::g::G:";
struct option md_longopts[] = struct option md_longopts[] =
{ {
@ -8984,6 +8991,10 @@ md_parse_option (c, arg)
target_big_endian = 0; target_big_endian = 0;
break; break;
case 'n':
warn_nops = 1;
break;
case 'O': case 'O':
if (arg && arg[1] == '0') if (arg && arg[1] == '0')
mips_optimize = 1; mips_optimize = 1;