diff options
26 files changed, 77 insertions, 44 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index b28a79fc57c..7c9f2f20b58 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,38 @@ 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 * NEWS: Mention -O[2|s]. * config/tc-i386.c (_i386_insn): Add no_optimize. @@ -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: diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index 392365d2ae0..f56515e5e8e 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -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. diff --git a/gas/read.c b/gas/read.c index 9ab88f8962a..ff78caef38c 100644 --- a/gas/read.c +++ b/gas/read.c @@ -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 (); } diff --git a/gas/read.h b/gas/read.h index 3f0927bc9ed..352b802d4af 100644 --- a/gas/read.h +++ b/gas/read.h @@ -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); diff --git a/gas/testsuite/gas/i386/nop-1.d b/gas/testsuite/gas/i386/nop-1.d index 46422c88dbf..5a9e03ef194 100644 --- a/gas/testsuite/gas/i386/nop-1.d +++ b/gas/testsuite/gas/i386/nop-1.d @@ -1,5 +1,5 @@ #objdump: -drw -#name: i386 .nop 1 +#name: i386 .nops 1 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-1.s b/gas/testsuite/gas/i386/nop-1.s index 891783dce80..94ec28e815d 100644 --- a/gas/testsuite/gas/i386/nop-1.s +++ b/gas/testsuite/gas/i386/nop-1.s @@ -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 diff --git a/gas/testsuite/gas/i386/nop-2.d b/gas/testsuite/gas/i386/nop-2.d index 332b990a978..d248fd1df75 100644 --- a/gas/testsuite/gas/i386/nop-2.d +++ b/gas/testsuite/gas/i386/nop-2.d @@ -1,5 +1,5 @@ #objdump: -drw -Mi8086 -#name: i386 .nop 2 +#name: i386 .nops 2 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-2.s b/gas/testsuite/gas/i386/nop-2.s index 2b71b9786d8..9f7a3729c0e 100644 --- a/gas/testsuite/gas/i386/nop-2.s +++ b/gas/testsuite/gas/i386/nop-2.s @@ -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 diff --git a/gas/testsuite/gas/i386/nop-3.d b/gas/testsuite/gas/i386/nop-3.d index bebd24bc08b..b2b4577b555 100644 --- a/gas/testsuite/gas/i386/nop-3.d +++ b/gas/testsuite/gas/i386/nop-3.d @@ -1,5 +1,5 @@ #objdump: -drw -#name: i386 .nop 3 +#name: i386 .nops 3 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-3.s b/gas/testsuite/gas/i386/nop-3.s index 57370ff5797..0a6bb58fdf5 100644 --- a/gas/testsuite/gas/i386/nop-3.s +++ b/gas/testsuite/gas/i386/nop-3.s @@ -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" diff --git a/gas/testsuite/gas/i386/nop-4.d b/gas/testsuite/gas/i386/nop-4.d index 99ddcd39945..b548d079a36 100644 --- a/gas/testsuite/gas/i386/nop-4.d +++ b/gas/testsuite/gas/i386/nop-4.d @@ -1,5 +1,5 @@ #objdump: -drw -#name: i386 .nop 4 +#name: i386 .nops 4 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-4.s b/gas/testsuite/gas/i386/nop-4.s index f7aa11187e3..4f0bfe6dc3a 100644 --- a/gas/testsuite/gas/i386/nop-4.s +++ b/gas/testsuite/gas/i386/nop-4.s @@ -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" diff --git a/gas/testsuite/gas/i386/nop-5.d b/gas/testsuite/gas/i386/nop-5.d index aab4258b198..6a4791344f9 100644 --- a/gas/testsuite/gas/i386/nop-5.d +++ b/gas/testsuite/gas/i386/nop-5.d @@ -1,5 +1,5 @@ #objdump: -drw -#name: i386 .nop 5 +#name: i386 .nops 5 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-5.s b/gas/testsuite/gas/i386/nop-5.s index 4f563ce82f9..d91f81fb097 100644 --- a/gas/testsuite/gas/i386/nop-5.s +++ b/gas/testsuite/gas/i386/nop-5.s @@ -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" diff --git a/gas/testsuite/gas/i386/nop-6.d b/gas/testsuite/gas/i386/nop-6.d index 93ee8def031..851c129c4a8 100644 --- a/gas/testsuite/gas/i386/nop-6.d +++ b/gas/testsuite/gas/i386/nop-6.d @@ -1,5 +1,5 @@ #objdump: -drw -#name: i386 .nop 6 +#name: i386 .nops 6 .*: +file format .* diff --git a/gas/testsuite/gas/i386/nop-6.s b/gas/testsuite/gas/i386/nop-6.s index c7b1e2cbf04..d8952c9a430 100644 --- a/gas/testsuite/gas/i386/nop-6.s +++ b/gas/testsuite/gas/i386/nop-6.s @@ -1,5 +1,5 @@ .macro mknops nr_bytes - .nop \nr_bytes, 9 + .nops \nr_bytes, 9 .endm .macro ALTERNATIVE diff --git a/gas/testsuite/gas/i386/nop-bad-1.l b/gas/testsuite/gas/i386/nop-bad-1.l index 34be496b4b4..2ae5b484536 100644 --- a/gas/testsuite/gas/i386/nop-bad-1.l +++ b/gas/testsuite/gas/i386/nop-bad-1.l @@ -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]+\]\) diff --git a/gas/testsuite/gas/i386/nop-bad-1.s b/gas/testsuite/gas/i386/nop-bad-1.s index 53cc7d554ae..2f2bbfb9fd2 100644 --- a/gas/testsuite/gas/i386/nop-bad-1.s +++ b/gas/testsuite/gas/i386/nop-bad-1.s @@ -1,4 +1,4 @@ .text - .nop 100, -2 - .nop 100, 20 - .nop -1 + .nops 100, -2 + .nops 100, 20 + .nops -1 diff --git a/gas/testsuite/gas/i386/x86-64-nop-1.d b/gas/testsuite/gas/i386/x86-64-nop-1.d index f3edc7d346c..ec6263b49dc 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-1.d +++ b/gas/testsuite/gas/i386/x86-64-nop-1.d @@ -1,6 +1,6 @@ #source: nop-1.s #objdump: -drw -#name: x86-64 .nop 1 +#name: x86-64 .nops 1 .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-nop-2.d b/gas/testsuite/gas/i386/x86-64-nop-2.d index e894d2c7bf4..438e4f84f29 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-2.d +++ b/gas/testsuite/gas/i386/x86-64-nop-2.d @@ -1,6 +1,6 @@ #source: nop-2.s #objdump: -drw -Mi8086 -#name: x86-64 .nop 2 +#name: x86-64 .nops 2 .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-nop-3.d b/gas/testsuite/gas/i386/x86-64-nop-3.d index b43239af6f0..1dc9505b4f8 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-3.d +++ b/gas/testsuite/gas/i386/x86-64-nop-3.d @@ -1,6 +1,6 @@ #source: nop-3.s #objdump: -drw -#name: x86-64 .nop 3 +#name: x86-64 .nops 3 .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-nop-4.d b/gas/testsuite/gas/i386/x86-64-nop-4.d index a910171303f..25927ca2228 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-4.d +++ b/gas/testsuite/gas/i386/x86-64-nop-4.d @@ -1,6 +1,6 @@ #source: nop-4.s #objdump: -drw -#name: x86-64 .nop 4 +#name: x86-64 .nops 4 .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-nop-5.d b/gas/testsuite/gas/i386/x86-64-nop-5.d index 57493cf6dcb..a609a1254bd 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-5.d +++ b/gas/testsuite/gas/i386/x86-64-nop-5.d @@ -1,6 +1,6 @@ #source: nop-5.s #objdump: -drw -#name: x86-64 .nop 5 +#name: x86-64 .nops 5 .*: +file format .* diff --git a/gas/testsuite/gas/i386/x86-64-nop-6.d b/gas/testsuite/gas/i386/x86-64-nop-6.d index 520f5909453..63f3817148a 100644 --- a/gas/testsuite/gas/i386/x86-64-nop-6.d +++ b/gas/testsuite/gas/i386/x86-64-nop-6.d @@ -1,6 +1,6 @@ #source: nop-6.s #objdump: -drw -#name: x86-64 .nop 6 +#name: x86-64 .nops 6 .*: +file format .* diff --git a/gas/write.c b/gas/write.c index 9b14fda1562..4c8e42b4b49 100644 --- a/gas/write.c +++ b/gas/write.c @@ -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 |