gas: Rename .nop directive to .nops
Since directives of NO_PSEUDO_DOT targets don't have the leading '.' and "nop" can be a valid instruction, rename .nop directive to .nops to avoid conflict. * NEWS: Rename .nop to .nops. * doc/as.texinfo: Likewise. * read.c (potable): Add "nops". Remove "nop". (s_nop): Renamed to ... (s_nops): This. * read.h (s_nop): Renamed to ... (s_nops): This. * write.c (cvt_frag_to_fill): Rename .nop to .nops. (md_generate_nops): Likewise. (relax_segment): Likewise. * testsuite/gas/i386/nop-1.d: Updated. * testsuite/gas/i386/nop-1.s: Likewise. * testsuite/gas/i386/nop-2.d: Likewise. * testsuite/gas/i386/nop-2.s: Likewise. * testsuite/gas/i386/nop-3.d: Likewise. * testsuite/gas/i386/nop-3.s: Likewise. * testsuite/gas/i386/nop-4.d: Likewise. * testsuite/gas/i386/nop-4.s: Likewise. * testsuite/gas/i386/nop-5.d: Likewise. * testsuite/gas/i386/nop-5.s: Likewise. * testsuite/gas/i386/nop-6.d: Likewise. * testsuite/gas/i386/nop-6.s: Likewise. * testsuite/gas/i386/nop-bad-1.l: Likewise. * testsuite/gas/i386/nop-bad-1.s: Likewise. * testsuite/gas/i386/x86-64-nop-1.d: Likewise. * testsuite/gas/i386/x86-64-nop-2.d: Likewise. * testsuite/gas/i386/x86-64-nop-3.d: Likewise. * testsuite/gas/i386/x86-64-nop-4.d: Likewise. * testsuite/gas/i386/x86-64-nop-5.d: Likewise. * testsuite/gas/i386/x86-64-nop-6.d: Likewise.
This commit is contained in:
parent
e05cac70d8
commit
8f065d3b4a
@ -1,3 +1,36 @@
|
||||
2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* NEWS: Rename .nop to .nops.
|
||||
* doc/as.texinfo: Likewise.
|
||||
* read.c (potable): Add "nops". Remove "nop".
|
||||
(s_nop): Renamed to ...
|
||||
(s_nops): This.
|
||||
* read.h (s_nop): Renamed to ...
|
||||
(s_nops): This.
|
||||
* write.c (cvt_frag_to_fill): Rename .nop to .nops.
|
||||
(md_generate_nops): Likewise.
|
||||
(relax_segment): Likewise.
|
||||
* testsuite/gas/i386/nop-1.d: Updated.
|
||||
* testsuite/gas/i386/nop-1.s: Likewise.
|
||||
* testsuite/gas/i386/nop-2.d: Likewise.
|
||||
* testsuite/gas/i386/nop-2.s: Likewise.
|
||||
* testsuite/gas/i386/nop-3.d: Likewise.
|
||||
* testsuite/gas/i386/nop-3.s: Likewise.
|
||||
* testsuite/gas/i386/nop-4.d: Likewise.
|
||||
* testsuite/gas/i386/nop-4.s: Likewise.
|
||||
* testsuite/gas/i386/nop-5.d: Likewise.
|
||||
* testsuite/gas/i386/nop-5.s: Likewise.
|
||||
* testsuite/gas/i386/nop-6.d: Likewise.
|
||||
* testsuite/gas/i386/nop-6.s: Likewise.
|
||||
* testsuite/gas/i386/nop-bad-1.l: Likewise.
|
||||
* testsuite/gas/i386/nop-bad-1.s: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-1.d: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-2.d: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-3.d: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-4.d: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-5.d: Likewise.
|
||||
* testsuite/gas/i386/x86-64-nop-6.d: Likewise.
|
||||
|
||||
2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR gas/22871
|
||||
|
2
gas/NEWS
2
gas/NEWS
@ -3,7 +3,7 @@
|
||||
* Add -O[2|s] command-line options to x86 assembler to enable alternate
|
||||
shorter instruction encoding.
|
||||
|
||||
* Add support for .nop directive. It is currently supported only for
|
||||
* Add support for .nops directive. It is currently supported only for
|
||||
x86 targets.
|
||||
|
||||
Changes in 2.30:
|
||||
|
@ -4482,7 +4482,7 @@ Some machine configurations provide additional directives.
|
||||
* MRI:: @code{.mri @var{val}}
|
||||
* Noaltmacro:: @code{.noaltmacro}
|
||||
* Nolist:: @code{.nolist}
|
||||
* Nop:: @code{.nop @var{size}[, @var{control}]}
|
||||
* Nops:: @code{.nops @var{size}[, @var{control}]}
|
||||
* Octa:: @code{.octa @var{bignums}}
|
||||
* Offset:: @code{.offset @var{loc}}
|
||||
* Org:: @code{.org @var{new-lc}, @var{fill}}
|
||||
@ -6199,10 +6199,10 @@ internal counter (which is zero initially). @code{.list} increments the
|
||||
counter, and @code{.nolist} decrements it. Assembly listings are
|
||||
generated whenever the counter is greater than zero.
|
||||
|
||||
@node Nop
|
||||
@section @code{.nop @var{size}[, @var{control}]}
|
||||
@node Nops
|
||||
@section @code{.nops @var{size}[, @var{control}]}
|
||||
|
||||
@cindex @code{nop} directive
|
||||
@cindex @code{nops} directive
|
||||
@cindex filling memory with no-op instructions
|
||||
This directive emits @var{size} bytes filled with no-op instructions.
|
||||
@var{size} is absolute expression, which must be a positve value.
|
||||
|
@ -417,6 +417,7 @@ static const pseudo_typeS potable[] = {
|
||||
{"noformat", s_ignore, 0},
|
||||
{"nolist", listing_list, 0}, /* Turn listing off. */
|
||||
{"nopage", listing_nopage, 0},
|
||||
{"nops", s_nops, 0},
|
||||
{"octa", cons, 16},
|
||||
{"offset", s_struct, 0},
|
||||
{"org", s_org, 0},
|
||||
@ -442,7 +443,6 @@ static const pseudo_typeS potable[] = {
|
||||
/* size */
|
||||
{"space", s_space, 0},
|
||||
{"skip", s_space, 0},
|
||||
{"nop", s_nop, 0},
|
||||
{"sleb128", s_leb128, 1},
|
||||
{"spc", s_ignore, 0},
|
||||
{"stabd", s_stab, 'd'},
|
||||
@ -3510,7 +3510,7 @@ s_space (int mult)
|
||||
}
|
||||
|
||||
void
|
||||
s_nop (int ignore ATTRIBUTE_UNUSED)
|
||||
s_nops (int ignore ATTRIBUTE_UNUSED)
|
||||
{
|
||||
expressionS exp;
|
||||
expressionS val;
|
||||
@ -3556,7 +3556,7 @@ s_nop (int ignore ATTRIBUTE_UNUSED)
|
||||
}
|
||||
}
|
||||
else
|
||||
as_bad (_("unsupported variable nop control in .nop directive"));
|
||||
as_bad (_("unsupported variable nop control in .nops directive"));
|
||||
|
||||
demand_empty_rest_of_line ();
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ extern void s_purgem (int);
|
||||
extern void s_rept (int);
|
||||
extern void s_set (int);
|
||||
extern void s_space (int mult);
|
||||
extern void s_nop (int);
|
||||
extern void s_nops (int);
|
||||
extern void s_stab (int what);
|
||||
extern void s_struct (int);
|
||||
extern void s_text (int);
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw
|
||||
#name: i386 .nop 1
|
||||
#name: i386 .nops 1
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,21 +1,21 @@
|
||||
.text
|
||||
single:
|
||||
.nop 0
|
||||
.nops 0
|
||||
nop
|
||||
|
||||
pseudo_1:
|
||||
.nop 1
|
||||
.nops 1
|
||||
|
||||
pseudo_8:
|
||||
.nop 8
|
||||
.nops 8
|
||||
|
||||
pseudo_8_4:
|
||||
.nop 8, 4
|
||||
.nops 8, 4
|
||||
|
||||
pseudo_20:
|
||||
.nop 20
|
||||
.nops 20
|
||||
|
||||
pseudo_30:
|
||||
.nop 30
|
||||
.nops 30
|
||||
|
||||
xor %eax, %eax
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw -Mi8086
|
||||
#name: i386 .nop 2
|
||||
#name: i386 .nops 2
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,22 +1,22 @@
|
||||
.text
|
||||
.code16
|
||||
single:
|
||||
.nop 0
|
||||
.nops 0
|
||||
nop
|
||||
|
||||
pseudo_1:
|
||||
.nop 1
|
||||
.nops 1
|
||||
|
||||
pseudo_8:
|
||||
.nop 8
|
||||
.nops 8
|
||||
|
||||
pseudo_8_4:
|
||||
.nop 8, 4
|
||||
.nops 8, 4
|
||||
|
||||
pseudo_20:
|
||||
.nop 20
|
||||
.nops 20
|
||||
|
||||
pseudo_30:
|
||||
.nop 30
|
||||
.nops 30
|
||||
|
||||
xor %eax, %eax
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw
|
||||
#name: i386 .nop 3
|
||||
#name: i386 .nops 3
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -4,7 +4,7 @@ _start:
|
||||
140:
|
||||
testl %eax, %eax
|
||||
141:
|
||||
.nop -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),7
|
||||
.nops -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),7
|
||||
142:
|
||||
xor %eax, %eax
|
||||
.pushsection .altinstr_replacement,"ax"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw
|
||||
#name: i386 .nop 4
|
||||
#name: i386 .nops 4
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -4,7 +4,7 @@ _start:
|
||||
140:
|
||||
testl %eax, %eax
|
||||
141:
|
||||
.nop -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b))
|
||||
.nops -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b))
|
||||
142:
|
||||
xor %eax, %eax
|
||||
.pushsection .altinstr_replacement,"ax"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw
|
||||
#name: i386 .nop 5
|
||||
#name: i386 .nops 5
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -4,7 +4,7 @@ _start:
|
||||
140:
|
||||
testl %eax, %eax
|
||||
141:
|
||||
.nop -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),6
|
||||
.nops -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),6
|
||||
142:
|
||||
xor %eax, %eax
|
||||
.pushsection .altinstr_replacement,"ax"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#objdump: -drw
|
||||
#name: i386 .nop 6
|
||||
#name: i386 .nops 6
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
.macro mknops nr_bytes
|
||||
.nop \nr_bytes, 9
|
||||
.nops \nr_bytes, 9
|
||||
.endm
|
||||
|
||||
.macro ALTERNATIVE
|
||||
|
@ -1,4 +1,4 @@
|
||||
.*: Assembler messages:
|
||||
.*:2: Warning: negative nop control byte, ignored
|
||||
.*:4: Warning: \.space, \.nop or \.fill with negative value, ignored
|
||||
.*:4: Warning: \.space, \.nops or \.fill with negative value, ignored
|
||||
.*:3: Error: invalide single nop size: 20 \(expect within \[0, [0-9]+\]\)
|
||||
|
@ -1,4 +1,4 @@
|
||||
.text
|
||||
.nop 100, -2
|
||||
.nop 100, 20
|
||||
.nop -1
|
||||
.nops 100, -2
|
||||
.nops 100, 20
|
||||
.nops -1
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-1.s
|
||||
#objdump: -drw
|
||||
#name: x86-64 .nop 1
|
||||
#name: x86-64 .nops 1
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-2.s
|
||||
#objdump: -drw -Mi8086
|
||||
#name: x86-64 .nop 2
|
||||
#name: x86-64 .nops 2
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-3.s
|
||||
#objdump: -drw
|
||||
#name: x86-64 .nop 3
|
||||
#name: x86-64 .nops 3
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-4.s
|
||||
#objdump: -drw
|
||||
#name: x86-64 .nop 4
|
||||
#name: x86-64 .nops 4
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-5.s
|
||||
#objdump: -drw
|
||||
#name: x86-64 .nop 5
|
||||
#name: x86-64 .nops 5
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
#source: nop-6.s
|
||||
#objdump: -drw
|
||||
#name: x86-64 .nop 6
|
||||
#name: x86-64 .nops 6
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
@ -453,7 +453,7 @@ skip_align:
|
||||
if (fragP->fr_offset < 0)
|
||||
{
|
||||
as_bad_where (fragP->fr_file, fragP->fr_line,
|
||||
_("attempt to .org/.space/.nop backwards? (%ld)"),
|
||||
_("attempt to .org/.space/.nops backwards? (%ld)"),
|
||||
(long) fragP->fr_offset);
|
||||
fragP->fr_offset = 0;
|
||||
}
|
||||
@ -1587,7 +1587,7 @@ md_generate_nops (fragS *f ATTRIBUTE_UNUSED,
|
||||
offsetT count ATTRIBUTE_UNUSED,
|
||||
int control ATTRIBUTE_UNUSED)
|
||||
{
|
||||
as_bad (_("unimplemented .nop directive"));
|
||||
as_bad (_("unimplemented .nops directive"));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2840,7 +2840,7 @@ relax_segment (struct frag *segment_frag_root, segT segment, int pass)
|
||||
}
|
||||
|
||||
as_warn_where (fragP->fr_file, fragP->fr_line,
|
||||
_(".space, .nop or .fill with negative value, ignored"));
|
||||
_(".space, .nops or .fill with negative value, ignored"));
|
||||
fragP->fr_symbol = 0;
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user