1 2018-03-09 H.J. Lu <hongjiu.lu@intel.com>
3 * config/tc-i386.c (optimize_encoding): Encode EVEX instructions
4 with VEX128 if EVEX encoding isn't required.
5 * testsuite/gas/i386/optimize-1.d: Updated.
6 * testsuite/gas/i386/x86-64-optimize-2.d: Likewise.
8 2018-03-09 H.J. Lu <hongjiu.lu@intel.com>
10 * config/tc-i386.c (check_VecOperations): Strip whitespace.
11 * testsuite/gas/i386/optimize-1.s: Add whitespaces before
13 * testsuite/gas/i386/x86-64-optimize-2.s: Likewise.
15 2018-03-08 H.J. Lu <hongjiu.lu@intel.com>
17 * config/tc-i386.c (set_cpu_arch): Set cpu_arch_isa_flags.
18 (md_parse_option): Likewise.
19 (optimize_encoding): Check i.tm.cpu_flags and cpu_arch_isa_flags
20 for cpuavx512vl instead of cpu_arch_flags. Optimize EVEX with
21 EVEX128 when EVEX encoding is required.
22 * testsuite/gas/i386/i386.exp: Run optimize-4, optimize-5,
23 x86-64-optimize-5 and x86-64-optimize-6.
24 * testsuite/gas/i386/optimize-1.d: Updated.
25 * testsuite/gas/i386/x86-64-optimize-2.d: Likewise.
26 * testsuite/gas/i386/optimize-4.d: New file.
27 * testsuite/gas/i386/optimize-4.s: Likewise.
28 * testsuite/gas/i386/optimize-5.d: Likewise.
29 * testsuite/gas/i386/optimize-5.s: Likewise.
30 * testsuite/gas/i386/x86-64-optimize-5.d: Likewise.
31 * testsuite/gas/i386/x86-64-optimize-5.s: Likewise.
32 * testsuite/gas/i386/x86-64-optimize-6.d: Likewise.
33 * testsuite/gas/i386/x86-64-optimize-6.s: Likewise.
35 2018-03-08 H.J. Lu <hongjiu.lu@intel.com>
37 * config/tc-i386.c (optimize_encoding): Also encode "clr reg64"
38 as "xor reg32, reg32".
39 * testsuite/gas/i386/x86-64-optimize-1.s: Add "clr reg64" tests.
40 * testsuite/gas/i386/x86-64-optimize-1.d: Updated.
42 2018-03-08 H.J. Lu <hongjiu.lu@intel.com>
44 * NEWS: Mention -mold-gcc removal.
45 * config/tc-i386.c (i386_error): Remove old_gcc_only.
47 (match_template): Remove old gcc support.
48 (OPTION_MOLD_GCC): Removed.
49 (OPTION_MRELAX_RELOCATIONS): Updated.
50 (md_longopts): Remove OPTION_MOLD_GCC.
51 (md_parse_option): Likewise.
52 (md_show_usage): Remove -mold-gcc.
53 * testsuite/gas/i386/general.s: Convert fsub/fdiv tests for old
54 (<= 2.8.1) versions of gcc.
55 * testsuite/gas/i386/intel.s: Likewise.
56 * testsuite/gas/i386/general.l: Updated.
57 * testsuite/gas/i386/intel-intel.d: Likewise.
58 * testsuite/gas/i386/intel.d: Likewise.
59 * testsuite/gas/i386/intel.e: Likewise.
60 * testsuite/gas/i386/i386.exp: Don't pass -mold-gcc to general.
62 2018-03-08 Jan Beulich <jbeulich@suse.com>
64 * config/tc-i386.c (is_evex_encoding): New.
65 (optimize_encoding, md_assemble, md_assemble,
66 VEX_check_operands, build_modrm_byte): Use is_evex_encoding.
67 (build_evex_prefix): Derive EVEX length field from actual
68 operands if the template allows multiple ones.
70 2018-03-08 Jan Beulich <jbeulich@suse.com>
72 * config/tc-i386.c (build_modrm_byte): Make VexNDD handling cope
73 with 3rd (immediate) operand.
75 2018-03-08 Jan Beulich <jbeulich@suse.com>
77 * config/tc-i386.c (XMMWORD_MNEM_SUFFIX, YMMWORD_MNEM_SUFFIX,
78 ZMMWORD_MNEM_SUFFIX): Delete.
79 (process_suffix): Drop their uses. Re-arrange final part of
80 logic into a switch() statement. Drop special casing of
83 2018-03-08 Jan Beulich <jbeulich@suse.com>
85 * config/tc-i386.c (match_template): Also match register
86 operands 0 and 2 for 3-operand forms.
87 * testsuite/gas/i386/unspec64.l, testsuite/gas/i386/unspec64.s:
89 * testsuite/gas/i386/i386.exp: Run new test.
91 2018-03-08 Jan Beulich <jbeulich@suse.com>
93 * config/tc-i386.c (process_suffix): Do common part of register
96 2018-03-08 Jan Beulich <jbeulich@suse.com>
98 * config/tc-i386.c (parse_insn): Move success return up. Combine
101 2018-03-08 Jan Beulich <jbeulich@suse.com>
103 * config/tc-i386.c (cpu_flags_match): Add GFNI check to AVX
104 logic. Add respective logic for AVX512F.
105 * testsuite/gas/i386/arch-avx-1.s: Add GFNI test.
106 testsuite/gas/i386/arch-avx-1.d,
107 testsuite/gas/i386/arch-avx-1-1.l,
108 testsuite/gas/i386/arch-avx-1-2.l,
109 testsuite/gas/i386/arch-avx-1-3.l,
110 testsuite/gas/i386/arch-avx-1-4.l,
111 testsuite/gas/i386/arch-avx-1-5.l,
112 testsuite/gas/i386/arch-avx-1-6.l: Adjust expectations.
113 * testsuite/gas/i386/arch-avx-1-7.l,
114 testsuite/gas/i386/arch-avx-1-7.s,
115 testsuite/gas/i386/arch-avx-1-8.l,
116 testsuite/gas/i386/arch-avx-1-8.s,
117 testsuite/gas/i386/avx512f-plain.l,
118 testsuite/gas/i386/avx512f-plain.s,
119 testsuite/gas/i386/avx512vl-plain.l,
120 testsuite/gas/i386/avx512vl-plain.s: New.
121 * testsuite/gas/i386/i386.exp: Run new tests.
123 2018-03-08 Jan Beulich <jbeulich@suse.com>
125 * config/tc-i386.c (cpu_flags_match): Move AVX512VL check ahead.
127 2018-03-08 Jan Beulich <jbeulich@suse.com>
129 * config/tc-i386.c (CPU_FLAGS_32BIT_MATCH): Delete.
130 (cpu_flags_match): Use CPU_FLAGS_ARCH_MATCH instead of
131 CPU_FLAGS_32BIT_MATCH.
133 2018-03-08 Jan Beulich <jbeulich@suse.com>
135 * config/tc-i386.c (CPU_FLAGS_AES_MATCH, CPU_FLAGS_AVX_MATCH,
136 CPU_FLAGS_PCLMUL_MATCH): Delete.
137 (CPU_FLAGS_32BIT_MATCH): Drop uses of deleted CPU_FLAGS_*_MATCH.
138 (cpu_flags_match): Combine AVX checks into
141 2018-03-08 Jan Beulich <jbeulich@suse.com>
143 * config/tc-i386.c (cpu_flags_match): Drop "else" branches
144 setting CPU_FLAGS_ARCH_MATCH.
146 2018-03-08 Jan Beulich <jbeulich@suse.com>
148 * config/tc-i386.c (md_assemble): Extend SSE check conditional.
149 * testsuite/gas/i386/ilp32/x86-64-sse-check-none.d,
150 testsuite/gas/i386/ilp32/x86-64-sse-check-warn.d,
151 testsuite/gas/i386/ilp32/x86-64-sse-check.d,
152 testsuite/gas/i386/sse-check-none.d,
153 testsuite/gas/i386/sse-check-warn.d,
154 testsuite/gas/i386/x86-64-sse-check.d,
155 testsuite/gas/i386/x86-64-sse-check-none.d,
156 testsuite/gas/i386/x86-64-sse-check-warn.d: Refer to sse-check.d.
157 * testsuite/gas/i386/sse-check.s: Add AES, GFNI, and PCLMUL
159 * testsuite/gas/i386/sse-check-none.s: Replace code by inclusion
161 * testsuite/gas/i386/sse-check.d: Adjust expectations.
162 * testsuite/gas/i386/sse-check-error.l,
163 testsuite/gas/i386/x86-64-sse-check-error.l: Likewise.
164 * testsuite/gas/i386/sse-check-warn.e: Likewise.
166 2018-03-08 Jan Beulich <jbeulich@suse.com>
168 * config/tc-i386.c (operand_size_match): Drop / replace uses of
171 2018-03-08 Jan Beulich <jbeulich@suse.com>
173 * testsuite/gas/i386/intel-intel.d: New.
174 * testsuite/gas/i386/i386.exp: Run new test.
176 2018-03-08 Jan Beulich <jbeulich@suse.com>
178 * config/tc-i386.c (process_operands): Access operands only
179 after operand count assertion. Sanitize warning text. Fix
181 * testsuite/gas/i386/avx512_4fmaps-warn.l,
182 gas/i386/x86-64-avx512_4fmaps-warn.l: Adjust expectations.
184 2018-03-08 Jan Beulich <jbeulich@suse.com>
186 * testsuite/gas/i386/x86-64-movd.s: Drop bogus vmovd memory forms.
187 * testsuite/gas/i386/x86-64-movd.d,
188 testsuite/gas/i386/x86-64-movd-intel.d: Adjust expectations.
190 2018-03-08 Jan Beulich <jbeulich@suse.com>
192 * config/tc-i386.c (operand_type_and_not): New.
193 (build_modrm_byte): Use it to prevent clearing unrelated bits.
195 2018-03-08 Alan Modra <amodra@gmail.com>
197 * config/tc-ppc.c (ppc_handle_align): Correct last patch. Really
198 don't emit a group terminating nop for power9. Simplify cpu
201 2018-03-08 Alan Modra <amodra@gmail.com>
203 * config/tc-ppc.c (ppc_handle_align): Don't emit a group
204 terminating nop for power9.
206 2018-03-07 H.J. Lu <hongjiu.lu@intel.com>
209 * config/tc-i386.c (f32_5): Removed.
222 (alt64_11): Likewise.
223 (alt64_patt): Likewise.
225 (jump32_disp32): Likewise.
226 (jump16_disp32): Likewise.
229 (f16_patt): Likewise.
230 (alt_patt): Add alt_11.
231 (i386_align_code): Merged with ...
232 (i386_generate_nops): This. Rewritten.
233 (fits_in_imm7): Moved before i386_generate_nops.
234 (fits_in_imm31): Likewise.
235 * config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Updated to
237 (i386_align_code): Removed.
238 (HANDLE_ALIGN): Rewritten with i386_generate_nops.
239 * doc/as.texinfo: Update limits of control byte for x86 .nops
241 * testsuite/gas/i386/i386.exp: Run nops-7 and x86-64-nops-7.
242 * gas/testsuite/gas/i386/noavx-3.l: Updated.
243 * gas/testsuite/gas/i386/nop-1.d: Likewise.
244 * gas/testsuite/gas/i386/nop-1.s: Likewise.
245 * gas/testsuite/gas/i386/nop-2.d: Likewise.
246 * gas/testsuite/gas/i386/nop-2.s: Likewise.
247 * gas/testsuite/gas/i386/nop-3.d: Likewise.
248 * gas/testsuite/gas/i386/nop-4.d: Likewise.
249 * gas/testsuite/gas/i386/nop-5.d: Likewise.
250 * gas/testsuite/gas/i386/nop-5.s: Likewise.
251 * gas/testsuite/gas/i386/nop-6.d: Likewise.
252 * gas/testsuite/gas/i386/nop-bad-1.l: Likewise.
253 * gas/testsuite/gas/i386/nops-1-core2.d: Likewise.
254 * gas/testsuite/gas/i386/nops-1-i386-i686.d: Likewise.
255 * gas/testsuite/gas/i386/nops-1-i386.d: Likewise.
256 * gas/testsuite/gas/i386/nops-1-i686.d: Likewise.
257 * gas/testsuite/gas/i386/nops-1-k8.d: Likewise.
258 * gas/testsuite/gas/i386/nops-1.d: Likewise.
259 * gas/testsuite/gas/i386/nops-2-core2.d: Likewise.
260 * gas/testsuite/gas/i386/nops-2-i386.d: Likewise.
261 * gas/testsuite/gas/i386/nops-2.d: Likewise.
262 * gas/testsuite/gas/i386/nops-3-i386.d: Likewise.
263 * gas/testsuite/gas/i386/nops-3-i686.d: Likewise.
264 * gas/testsuite/gas/i386/nops-3.d: Likewise.
265 * gas/testsuite/gas/i386/nops-4-i386.d: Likewise.
266 * gas/testsuite/gas/i386/nops-4-i686.d: Likewise.
267 * gas/testsuite/gas/i386/nops-4.d: Likewise.
268 * gas/testsuite/gas/i386/nops-4a-i686.d: Likewise.
269 * gas/testsuite/gas/i386/nops-5-i686.d: Likewise.
270 * gas/testsuite/gas/i386/nops-5.d: Likewise.
271 * gas/testsuite/gas/i386/nops-6.d: Likewise.
272 * gas/testsuite/gas/i386/nops16-1.d: Likewise.
273 * gas/testsuite/gas/i386/x86-64-nop-1.d: Likewise.
274 * gas/testsuite/gas/i386/x86-64-nop-2.d: Likewise.
275 * gas/testsuite/gas/i386/x86-64-nop-5.d: Likewise.
276 * gas/testsuite/gas/i386/x86-64-nops-1-core2.d: Likewise.
277 * gas/testsuite/gas/i386/x86-64-nops-1-g64.d: Likewise.
278 * gas/testsuite/gas/i386/x86-64-nops-1-k8.d: Likewise.
279 * gas/testsuite/gas/i386/x86-64-nops-1-pentium.d: Likewise.
280 * gas/testsuite/gas/i386/x86-64-nops-1.d: Likewise.
281 * gas/testsuite/gas/i386/x86-64-nops-2.d: Likewise.
282 * gas/testsuite/gas/i386/x86-64-nops-3.d: Likewise.
283 * gas/testsuite/gas/i386/x86-64-nops-4-core2.d: Likewise.
284 * gas/testsuite/gas/i386/x86-64-nops-4-k8.d: Likewise.
285 * gas/testsuite/gas/i386/x86-64-nops-4.d: Likewise.
286 * gas/testsuite/gas/i386/x86-64-nops-5-k8.d: Likewise.
287 * gas/testsuite/gas/i386/x86-64-nops-5.d: Likewise.
288 * gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
289 * gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
290 * gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d: Likewise.
291 * gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d: Likewise.
292 * gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d: Likewise.
293 * gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d: Likewise.
294 * gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
295 * gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
296 * gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d: Likewise.
297 * gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
298 * gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d: Likewise.
299 * gas/testsuite/gas/i386/nops-7.d: New file.
300 * gas/testsuite/gas/i386/nops-7.s: Likewise.
301 * gas/testsuite/gas/i386/x86-64-nops-7.d: Likewise.
303 2018-03-07 Alan Modra <amodra@gmail.com>
305 * testsuite/gas/ppc/aix.exp: Run for rs6000 too.
306 * testsuite/gas/ppc/ppc.exp: Run more tests for non-ELF targets.
307 * testsuite/gas/ppc/machine.d: Don't run for PE targets.
309 2018-03-02 Thomas Preud'homme <thomas.preudhomme@arm.com>
311 * config/tc-arm.c (md_begin): Add NULL pointer check before
312 dereferencing march_ext_opt.
314 2018-03-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
316 * config/tc-arm.c (cpu_variant, arm_arch_used, thumb_arch_used,
317 legacy_cpu, legacy_fpu, mcpu_cpu_opt, dyn_mcpu_ext_opt,
318 mcpu_fpu_opt, march_cpu_opt, dyn_march_ext_opt, march_fpu_opt,
319 mfpu_opt, object_arch, selected_cpu): Comment meaning of variables.
320 (dyn_mcpu_ext_opt): Also rename into ...
321 (mcpu_ext_opt): This.
322 (dyn_march_ext_opt): Also rename into ...
323 (march_ext_opt): This.
324 (object_arch): Also rename into ...
325 (selected_object_arch): This and make it a plain arm_feature_set
327 (selected_arch, selected_ext, selected_fpu): New static variables.
328 (mark_feature_used): Fix comments, feature is marked as used iff it is
330 (do_bx): Adapt to change in name and type of object_arch.
331 (md_begin): Set selected_arch rather than mcpu_cpu_opt, selected_ext
332 rather than dyn_mcpu_ext_opt and selected_fpu rather than mfpu_opt.
333 Remove dead code to set default FPU if architecture version is greater
334 than 5. Set all CPU bits of cpu_variant directly in autodection
335 leaving mcpu_cpu_opt, selected_arch and selected_cpu unset.
336 (arm_parse_extension): Take extension feature set pointer parameter by
337 value rather than by pointer. Remove allocation code. Adapt code
339 (arm_parse_cpu): Adapt to variable renaming and changes in
340 arm_parse_extension () signature.
341 (arm_parse_arch): Likewise.
342 (aeabi_set_public_attributes): Also set selected_arch and selected_ext
343 in addition to selected_cpu. Set flags_arch and flags_ext from them
344 instead of selected_cpu. Adapt to variables renaming and type change.
345 (arm_md_post_relax): Adapt to variable renaming.
346 (s_arm_cpu): Set selcted_cpu_cpu and selected_ext instead of
347 mcpu_cpu_opt and dyn_mcpu_ext_opt. Set selected_cpu from them and
348 cpu_variant from selected_cpu and selected_fpu.
349 (s_arm_arch): Likewise.
350 (s_arm_object_arch): Adapt to variable renaming.
351 (s_arm_arch_extension): Use ARM_CPU_IS_ANY instead of checking feature
352 set against arm_any. Check selected_arch rather than *mcpu_cpu_opt.
353 Set selected_ext rather than *dyn_mcpu_ext_opt and remove allocation
355 (s_arm_fpu): Set selected_fpu instead of mfpu_opt. Set all CPU feature
356 bits if in autodetection mode.
358 2018-03-01 H.J. Lu <hongjiu.lu@intel.com>
360 * config/tc-i386.c (optimize_encoding): Optimize AVX256 and
361 AVX512 vpsub[bwdq] instructions.
362 * testsuite/gas/i386/optimize-1.s: Add tests for AVX256 and
363 AVX512 vpsub[bwdq] instructions.
364 * testsuite/gas/i386/x86-64-optimize-2.s: Likewise.
365 * testsuite/gas/i386/optimize-1.d: Updated.
366 * testsuite/gas/i386/x86-64-optimize-2.d: Likewise.
368 2018-03-01 Alan Modra <amodra@gmail.com>
370 * configure.ac (ALL_LINGUAS): Add uk. Sort.
371 * configure: Regenerate.
373 2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
375 * NEWS: Rename .nop to .nops.
376 * doc/as.texinfo: Likewise.
377 * read.c (potable): Add "nops". Remove "nop".
378 (s_nop): Renamed to ...
380 * read.h (s_nop): Renamed to ...
382 * write.c (cvt_frag_to_fill): Rename .nop to .nops.
383 (md_generate_nops): Likewise.
384 (relax_segment): Likewise.
385 * testsuite/gas/i386/nop-1.d: Updated.
386 * testsuite/gas/i386/nop-1.s: Likewise.
387 * testsuite/gas/i386/nop-2.d: Likewise.
388 * testsuite/gas/i386/nop-2.s: Likewise.
389 * testsuite/gas/i386/nop-3.d: Likewise.
390 * testsuite/gas/i386/nop-3.s: Likewise.
391 * testsuite/gas/i386/nop-4.d: Likewise.
392 * testsuite/gas/i386/nop-4.s: Likewise.
393 * testsuite/gas/i386/nop-5.d: Likewise.
394 * testsuite/gas/i386/nop-5.s: Likewise.
395 * testsuite/gas/i386/nop-6.d: Likewise.
396 * testsuite/gas/i386/nop-6.s: Likewise.
397 * testsuite/gas/i386/nop-bad-1.l: Likewise.
398 * testsuite/gas/i386/nop-bad-1.s: Likewise.
399 * testsuite/gas/i386/x86-64-nop-1.d: Likewise.
400 * testsuite/gas/i386/x86-64-nop-2.d: Likewise.
401 * testsuite/gas/i386/x86-64-nop-3.d: Likewise.
402 * testsuite/gas/i386/x86-64-nop-4.d: Likewise.
403 * testsuite/gas/i386/x86-64-nop-5.d: Likewise.
404 * testsuite/gas/i386/x86-64-nop-6.d: Likewise.
406 2018-02-27 H.J. Lu <hongjiu.lu@intel.com>
409 * NEWS: Mention -O[2|s].
410 * config/tc-i386.c (_i386_insn): Add no_optimize.
412 (optimize_for_space): Likewise.
413 (fits_in_imm7): New function.
414 (fits_in_imm31): Likewise.
415 (optimize_encoding): Likewise.
416 (md_assemble): Call optimize_encoding to optimize encoding.
417 (parse_insn): Handle {nooptimize}.
418 (md_shortopts): Append "O::".
419 (md_parse_option): Handle -On.
420 * doc/c-i386.texi: Document -O0, -O, -O1, -O2 and -Os as well
422 * testsuite/gas/cfi/cfi-x86_64.d: Pass -O0 to assembler.
423 * testsuite/gas/i386/ilp32/cfi/cfi-x86_64.d: Likewise.
424 * testsuite/gas/i386/i386.exp: Run optimize-1, optimize-2,
425 optimize-3, x86-64-optimize-1, x86-64-optimize-2,
426 x86-64-optimize-3 and x86-64-optimize-4.
427 * testsuite/gas/i386/optimize-1.d: New file.
428 * testsuite/gas/i386/optimize-1.s: Likewise.
429 * testsuite/gas/i386/optimize-2.d: Likewise.
430 * testsuite/gas/i386/optimize-2.s: Likewise.
431 * testsuite/gas/i386/optimize-3.d: Likewise.
432 * testsuite/gas/i386/optimize-3.s: Likewise.
433 * testsuite/gas/i386/x86-64-optimize-1.s: Likewise.
434 * testsuite/gas/i386/x86-64-optimize-1.d: Likewise.
435 * testsuite/gas/i386/x86-64-optimize-2.d: Likewise.
436 * testsuite/gas/i386/x86-64-optimize-2.s: Likewise.
437 * testsuite/gas/i386/x86-64-optimize-3.d: Likewise.
438 * testsuite/gas/i386/x86-64-optimize-3.s: Likewise.
439 * testsuite/gas/i386/x86-64-optimize-4.d: Likewise.
440 * testsuite/gas/i386/x86-64-optimize-4.s: Likewise.
442 2018-02-27 Nick Clifton <nickc@redhat.com>
444 * po/ru.po: Updated Russian translation.
446 2018-02-26 Maciej W. Rozycki <macro@mips.com>
448 * doc/as.texinfo (Pseudo Ops): Clean up `.dc' and `.ds'
451 2018-02-26 Nick Clifton <nickc@redhat.com>
453 * doc/as.texinfo (Dc): Fix typo.
455 2018-02-26 Alan Modra <amodra@gmail.com>
457 * testsuite/gas/mips/reginfo-2.l: Update.
459 2018-02-23 Alan Modra <amodra@gmail.com>
461 * testsuite/gas/mips/reginfo-2.l: Update.
463 2018-02-23 Nick Clifton <nickc@redhat.com>
465 * doc/as.texinfo (Pseudo Ops): Add nodes for .dc, .dcb and .ds.
467 2018-02-23 Kuan-Lin Chen <kuanlinchentw@gmail.com>
469 * config/tc-nds32.c (ict_model): New function. Hook new
470 directive .ict_model.
471 (nds32_insert_relax_entry): Tag the bits of entry relocation
474 2018-02-22 H.J. Lu <hongjiu.lu@intel.com>
476 * config/tc-i386.c (_i386_insn): Add rex_encoding.
477 (md_assemble): When i.rex_encoding is true, generate a REX byte
479 (parse_insn): Set i.rex_encoding for {rex}.
480 * doc/c-i386.texi: Document {rex}.
481 * testsuite/gas/i386/x86-64-pseudos.s: Add {rex} tests.
482 * testsuite/gas/i386/x86-64-pseudos.d: Updated.
484 2018-02-22 A. Wilcox <awilfox@adelielinux.org>
487 * config/tc-mips.c (mips_lookup_insn): Use memmove to strip the
488 instruction size suffix.
490 2018-02-20 Maciej W. Rozycki <macro@mips.com>
492 * testsuite/gas/mips/mips16-branch-reloc-4.d: New test.
493 * testsuite/gas/mips/mips16-branch-reloc-5.d: New test.
494 * testsuite/gas/mips/mips16-branch-reloc-4.s: New test source.
495 * testsuite/gas/mips/mips16-branch-reloc-5.s: New test source.
496 * testsuite/gas/mips/mips.exp: Run the new tests.
498 2018-02-20 Max Filippov <jcmvbkbc@gmail.com>
500 * config/tc-xtensa.c (struct litpool_frag): Add new field
502 (MAX_AUTO_POOL_LITERALS, MAX_EXPLICIT_POOL_LITERALS)
503 (MAX_POOL_LITERALS): New macro definitions.
504 (auto_litpool_limit): Initialize to 0.
505 (md_parse_option): Set auto_litpool_limit in the presence of
506 --auto-litpools option.
507 (xtensa_maybe_create_literal_pool_frag): Zero-initialize
509 (xg_find_litpool): New function. Make sure that found literal
510 pool size is within the limit.
511 (xtensa_move_literals): Extract literal pool search code into
513 * testsuite/gas/xtensa/all.exp: Add auto-litpools-2 test.
514 * testsuite/gas/xtensa/auto-litpools-2.d: New file.
515 * testsuite/gas/xtensa/auto-litpools-2.s: New file.
516 * testsuite/gas/xtensa/auto-litpools.d: Fix up changed
518 * testsuite/gas/xtensa/auto-litpools.s: Change literal value so
519 that objdump doesn't get out of sync.
521 2018-02-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
523 * doc/c-arm.texi (.arch_extension): Mention extensions it accepts are
524 also the same as -march.
526 2018-02-17 H.J. Lu <hongjiu.lu@intel.com>
528 * NEWS: Mention .nop directive.
529 * as.h (_relax_state): Add rs_space_nop and rs_fill_nop.
530 * read.c (potable): Add .nop.
531 (s_nop): New function.
532 * read.h (s_nop): New prototype.
533 * write.c (cvt_frag_to_fill): Handle rs_space_nop and
535 (md_generate_nops): New function.
536 (relax_segment): Likewise.
537 (write_contents): Use md_generate_nops for rs_fill_nop.
538 * config/tc-i386.c (alt64_11): New.
539 (alt64_patt): Likewise.
540 (md_convert_frag): Handle rs_space_nop.
541 (i386_output_nops): New function.
542 (i386_generate_nops): Likewise.
543 (i386_align_code): Call i386_output_nops.
544 * config/tc-i386.h (i386_generate_nops): New.
545 (md_generate_nops): Likewise.
546 * doc/as.texinfo: Document .nop directive.
547 * testsuite/gas/i386/i386.exp: Run .nop directive tests.
548 * testsuite/gas/i386/nop-1.d: New file.
549 * testsuite/gas/i386/nop-1.s: Likewise.
550 * testsuite/gas/i386/nop-2.d: Likewise.
551 * testsuite/gas/i386/nop-2.s: Likewise.
552 * testsuite/gas/i386/nop-3.d: Likewise.
553 * testsuite/gas/i386/nop-3.s: Likewise.
554 * testsuite/gas/i386/nop-4.d: Likewise.
555 * testsuite/gas/i386/nop-4.s: Likewise.
556 * testsuite/gas/i386/nop-5.d: Likewise.
557 * testsuite/gas/i386/nop-5.s: Likewise.
558 * testsuite/gas/i386/nop-6.d: Likewise.
559 * testsuite/gas/i386/nop-6.s: Likewise.
560 * testsuite/gas/i386/nop-bad-1.l: Likewise.
561 * testsuite/gas/i386/nop-bad-1.s: Likewise.
562 * testsuite/gas/i386/x86-64-nop-1.d: Likewise.
563 * testsuite/gas/i386/x86-64-nop-2.d: Likewise.
564 * testsuite/gas/i386/x86-64-nop-3.d: Likewise.
565 * testsuite/gas/i386/x86-64-nop-4.d: Likewise.
566 * testsuite/gas/i386/x86-64-nop-5.d: Likewise.
567 * testsuite/gas/i386/x86-64-nop-6.d: Likewise.
569 2018-02-15 Tamar Christina <tamar.christina@arm.com>
571 * config/tc-arm.c (cpu_arch_ver): Renumber ARM_ARCH_V8_4A.
572 * testsuite/gas/arm/attr-march-armv8_4-a.d: New.
574 2018-02-13 Max Filippov <jcmvbkbc@gmail.com>
576 * config/tc-xtensa.c (xg_find_best_trampoline): Skip trampoline
577 frag that contains source address.
579 2018-02-13 Nick Clifton <nickc@redhat.com>
582 * config/tc-arm.c (md_apply_fix): Test Rn field of Thumb ORR
583 instruction before assuming that it is a MOV instruction.
584 * testsuite/gas/arm/pr22773.s: New test.
585 * testsuite/gas/arm/pr22773.d: New test driver.
586 * testsuite/gas/arm/pr22773.l: New expected output.
588 2018-02-13 H.J. Lu <hongjiu.lu@intel.com>
591 * config/tc-i386.c (need_plt32_p): New function.
592 (output_jump): Generate BFD_RELOC_X86_64_PLT32 if possible.
593 (md_estimate_size_before_relax): Likewise.
594 * testsuite/gas/i386/reloc64.d: Updated.
595 * testsuite/gas/i386/x86-64-jump.d: Likewise.
596 * testsuite/gas/i386/x86-64-mpx-branch-1.d: Likewise.
597 * testsuite/gas/i386/x86-64-mpx-branch-2.d: Likewise.
598 * testsuite/gas/i386/x86-64-relax-2.d: Likewise.
599 * testsuite/gas/i386/x86-64-relax-3.d: Likewise.
600 * testsuite/gas/i386/ilp32/reloc64.d: Likewise.
601 * testsuite/gas/i386/ilp32/x86-64-branch.d: Likewise.
603 2018-02-13 Maciej W. Rozycki <macro@mips.com>
605 * testsuite/gas/mips/loongson-3a-2.d: Rename test.
607 2018-02-13 Nick Clifton <nickc@redhat.com>
610 * config/obj-elf.c (elf_pseudo_table): Remove now redundant
612 (obj_elf_vtable_inherit): Rename to obj_elf_get_vtable_inherit.
613 (obj_elf_vtable_inherit): New stub function that calls
614 obj_elf_get_vtable_inherit.
615 (obj_elf_vtable_entry): Rename to obj_elf_get_vtable_entry.
616 (obj_elf_vtable_entry): New stub function that calls
617 obj_elf_get_vtable_entry.
618 * config/obj-elf.h (obj_elf_vtable_inherit): Update prototype.
619 (obj_elf_vtable_entry) Likewise.
620 (obj_elf_get_vtable_inherit) Likewise.
621 (obj_elf_get_vtable_entry) Likewise.
622 * config/tc-arm.c (md_pseudo_table): Remove now redundant cast.
623 * config/tc-i386c (md_pseudo_table): Likewise.
624 * config/tc-hppa.c (pa_vtable_entry): Call
625 obj_elf_get_vtable_entry.
626 (pa_vtable_inherit): Call obj_elf_get_vtable_inherit.
627 * config/tc-mips.c (s_mips_file): Replace call to dwarf2_get_file
628 with call to dwarf2_get_filename.
629 * dwarf2dbg.c (dwarf2_directive_file): Rename to
630 dwarf2_directive_filename.
631 (dwarf2_directive_file): New stub function that calls
632 dwarf2_directive_filename.
633 * dwarf2dbg.h: Prototype dwarf2_directive_filename.
635 2018-02-12 Maciej W. Rozycki <macro@mips.com>
637 * testsuite/gas/mips/reginfo-2-n32.d: Add `--no-pad-sections' to
640 2018-02-12 Henry Wong <henry@stuffedcow.net>
642 * testsuite/gas/mips/r6.d: Update for "sigrie" encoding fix.
643 * testsuite/gas/mips/r6-n32.d: Likewise.
644 * testsuite/gas/mips/r6-n64.d: Likewise.
646 2018-02-12 Nick Clifton <nickc@redhat.com>
648 * po/ru.po: Updated Russian translation.
650 2018-02-08 Alan Modra <amodra@gmail.com>
653 * config/tc-ppc.c (md_assemble): Rewrite insn alignment checking.
654 (ppc_frag_check): Likewise.
655 * testsuite/gas/ppc/misalign.d,
656 * testsuite/gas/ppc/misalign.l,
657 * testsuite/gas/ppc/misalign.s: New test.
658 * testsuite/gas/ppc/misalign2.d,
659 * testsuite/gas/ppc/misalign2.s: New test.
660 * testsuite/gas/ppc/ppc.exp: Run them.
662 2018-02-05 Maciej W. Rozycki <macro@mips.com>
664 * config/tc-riscv.c (riscv_handle_implicit_zero_offset): Rename
665 `expr' parameter to `ep'.
667 2018-02-05 Maciej W. Rozycki <macro@mips.com>
669 * testsuite/gas/mips/reginfo-2.d: New test.
670 * testsuite/gas/mips/reginfo-2-n32.d: New test.
671 * testsuite/gas/mips/reginfo-2.l: New test stderr output.
672 * testsuite/gas/mips/reginfo-2.s: New test source.
673 * testsuite/gas/mips/mips.exp: Run the new tests.
675 2018-02-05 Nick Clifton <nickc@redhat.com>
677 * po/ru.po: Updated Russian translation.
679 2018-01-31 Alan Modra <amodra@gmail.com>
682 * app.c (last_char): New static var.
683 (struct app_save): Add last_char field.
684 (app_push, app_pop): Handle it.
685 (do_scrub_chars): Use last_char in test for "\@". Set last_char.
687 2018-01-29 Eric Botcazou <ebotcazou@adacore.com>
690 * config/tc-sparc.h (sparc_mach): Declare.
691 (TARGET_MACH): Define to above.
692 * config/tc-sparc.c (sparc_mach): New function.
693 (sparc_md_end): Minor tweak.
695 2018-01-29 Nick Clifton <nickc@redhat.com>
697 * po/ru.po: Updated Russian translation.
699 2018-01-26 Maciej W. Rozycki <macro@mips.com>
701 * configure.tgt: Use generic emulation for `mips-*-windiss',
702 overriding the blanket choice made for `*-*-windiss'.
704 2018-01-26 Maciej W. Rozycki <macro@mips.com>
706 * configure.tgt: Use `mips-*-sysv4*' rather than
709 2018-01-24 Renlin Li <renlin.li@arm.com>
711 * config/tc-aarch64.c (reloc_table): add entries for
712 BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC,
713 BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC,
714 BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC,
715 BFD_RELOC_AARCH64_MOVW_PREL_G3.
716 (process_movw_reloc_info): Supports newly added MOVW_PREL relocations.
717 (md_apply_fix): Likewise
718 * testsuite/gas/aarch64/prel_g0.s: New.
719 * testsuite/gas/aarch64/prel_g0.d: New.
720 * testsuite/gas/aarch64/prel_g0_nc.s: New.
721 * testsuite/gas/aarch64/prel_g0_nc.d: New.
722 * testsuite/gas/aarch64/prel_g1.s: New.
723 * testsuite/gas/aarch64/prel_g1.d: New.
724 * testsuite/gas/aarch64/prel_g1_nc.s: New.
725 * testsuite/gas/aarch64/prel_g1_nc.d: New.
726 * testsuite/gas/aarch64/prel_g2.s: New.
727 * testsuite/gas/aarch64/prel_g2.d: New.
728 * testsuite/gas/aarch64/prel_g2_nc.s: New.
729 * testsuite/gas/aarch64/prel_g2_nc.d: New.
730 * testsuite/gas/aarch64/prel_g3.s: New.
731 * testsuite/gas/aarch64/prel_g3.d: New.
733 2018-01-23 Maciej W. Rozycki <macro@mips.com>
735 * configure.ac: Also set `mips_default_abi' to N32_ABI for
737 * configure: Regenerate.
739 2018-01-23 Maciej W. Rozycki <macro@mips.com>
741 * config/tc-mips.c (options): Remove OPTION_COMPAT_ARCH_BASE
744 2018-01-23 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
746 * config/tc-i386.c (cpu_arch): Add .pconfig.
747 * doc/c-i386.texi: Document .pconfig.
748 * testsuite/gas/i386/i386.exp: Add PCONFIG tests.
749 * testsuite/gas/i386/pconfig-intel.d: New test.
750 * testsuite/gas/i386/pconfig.d: Likewise.
751 * testsuite/gas/i386/pconfig.s: Likewise.
752 * testsuite/gas/i386/x86-64-pconfig-intel.d: Likewise.
753 * testsuite/gas/i386/x86-64-pconfig.d: Likewise.
754 * testsuite/gas/i386/x86-64-pconfig.s: Likewise.
756 2018-01-23 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
758 * config/tc-i386.c (cpu_arch): Add .wbnoinvd.
759 * doc/c-i386.texi: Document .wbnoinvd.
760 * testsuite/gas/i386/i386.exp: Add WBNOINVD tests.
761 * testsuite/gas/i386/wbnoinvd-intel.d: New test.
762 * testsuite/gas/i386/wbnoinvd.d: Likewise.
763 * testsuite/gas/i386/wbnoinvd.s: Likewise.
764 * testsuite/gas/i386/x86-64-wbnoinvd-intel.d: Likewise.
765 * testsuite/gas/i386/x86-64-wbnoinvd.d: Likewise.
766 * testsuite/gas/i386/x86-64-wbnoinvd.s: Likewise.
768 2018-01-23 Maciej W. Rozycki <macro@mips.com>
770 * config/tc-mips.c (md_show_usage): Correctly indicate the
771 configuration-specific default ABI.
773 2018-01-23 Maciej W. Rozycki <macro@mips.com>
775 * config/tc-mips.c (md_show_usage): Report `-mmips16e2' and
776 `-mno-mips16e2' options.
778 2018-01-22 Maciej W. Rozycki <macro@mips.com>
780 * doc/c-mips.texi (MIPS ASE Instruction Generation Overrides):
781 Correct syntax of the `.set nomips16e2' directive description.
783 2018-01-22 Oleg Endo <olegendo@gcc.gnu.org>
786 * config/tc-rx.c (rx_start_line): Handle escaped double-quote character.
787 * testsuite/gas/rx/pr22737.s: New test.
788 * testsuite/gas/rx/pr22737.d: Likewise.
789 * testsuite/gas/rx/rx.exp: Run the new test.
791 2018-01-19 Thomas Preud'homme <thomas.preudhomme@arm.com>
793 * config/tc-arm.c (ToC macro): Remove spurious comment.
794 (ToU macro): Likewise.
796 2018-01-17 Jim Wilson <jimw@sifive.com>
798 * config/tc-riscv.c (validate_riscv_insn) <'z'>: New.
799 (riscv_ip) <'z'>: New.
801 2018-01-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
803 * config/tc-i386.c (cpu_arch): Delete .cet. Add .ibt, .shstk.
804 (cpu_noarch): Add noibt, noshstk.
805 (parse_insn): Change cpucet to cpuibt.
806 * doc/c-i386.texi: Delete .cet. Add .ibt, .shstk.
807 * testsuite/gas/i386/cet-ibt-inval.l: New test.
808 * testsuite/gas/i386/cet-ibt-inval.s: Likewise.
809 * testsuite/gas/i386/cet-shstk-inval.l: Likewise.
810 * testsuite/gas/i386/cet-shstk-inval.s: Likewise.
811 * testsuite/gas/i386/x86-64-cet-ibt-inval.l: Likewise.
812 * testsuite/gas/i386/x86-64-cet-ibt-inval.s: Likewise.
813 * testsuite/gas/i386/x86-64-cet-shstk-inval.l: Likewise.
814 * testsuite/gas/i386/x86-64-cet-shstk-inval.s: Likewise.
816 2018-01-16 Nick Clifton <nickc@redhat.com>
818 * po/fr.po: Updated French translation.
820 2018-01-15 Jim Wilson <jimw@sifive.com>
822 * testsuite/gas/riscv/c-zero-imm.s: Test addi that compresses to c.nop.
823 * testsuite/gas/riscv/c-zero-imm.d: Likewise.
825 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
827 * config/tc-arm.c (ToC): Define macro.
829 (insns): Make use of above macros for new instructions introduced in
832 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
834 * config/tc-arm.c (insns): Make blxns, bxns, tt, ttt, tta, ttat, vlldm
835 and vlstm conditionally executable and reindent parameters.
836 * testsuite/gas/arm/archv8m-cmse-main.s: Add conditional version of
837 aforementionned instructions.
839 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
841 * config/tc-arm.c (it_fsm_post_encode): Do not warn if targeting M
842 profile architecture or if in autodetection mode. Clarify that
843 deprecation is for performance reason and concerns Armv8-A and Armv8-R.
844 * testsuite/gas/arm/armv8-ar-bad.l: Adapt to new IT deprecation warning
846 * testsuite/gas/arm/armv8-ar-it-bad.l: Likewise.
847 * testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l: Likewise.
848 * testsuite/gas/arm/udf.l: Likewise.
849 * testsuite/gas/arm/udf.d: Assemble for Armv8-A explicitely.
851 2018-01-15 Nick Clifton <nickc@redhat.com>
853 * po/uk.po: Updated Ukranian translation.
855 2018-01-13 Nick Clifton <nickc@redhat.com>
857 * po/gas.pot: Regenerated.
859 2018-01-13 Nick Clifton <nickc@redhat.com>
861 * configure: Regenerate.
863 2018-01-13 Nick Clifton <nickc@redhat.com>
866 * NEWS: Add marker for 2.30.
868 2018-01-12 Gunther Nikl <gnikl@users.sourceforge.net>
870 * gas/config/aout_gnu.h (USE_EXTENDED_RELOC): Explicitly
871 define to 0 and 1. Remove a dangling reference to "AMD 29000"
874 2018-01-11 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
876 * testsuite/i386/avx512_4fmaps_vl-warn.l: Likewise.
877 * testsuite/i386/avx512_4fmaps_vl-warn.s: Likewise.
878 * testsuite/i386/avx512_4fmaps_vl.d: Likewise.
879 * testsuite/i386/avx512_4fmaps_vl.s: Likewise.
880 * testsuite/i386/avx512_4vnniw_vl-intel.d: Likewise.
881 * testsuite/i386/avx512_4vnniw_vl.d: Likewise.
882 * testsuite/i386/avx512_4vnniw_vl.s: Likewise.
883 * testsuite/i386/i386.exp: Removed _vl tests for 4fmaps an 4vnniw
885 * testsuite/i386/x86-64-avx512_4fmaps_vl-intel.d: Removed.
886 * testsuite/i386/x86-64-avx512_4fmaps_vl-warn.l: Likewise.
887 * testsuite/i386/x86-64-avx512_4fmaps_vl-warn.s: Likewise.
888 * testsuite/i386/x86-64-avx512_4fmaps_vl.d: Likewise.
889 * testsuite/i386/x86-64-avx512_4fmaps_vl.s: Likewise.
890 * testsuite/i386/x86-64-avx512_4vnniw_vl-intel.d: Likewise.
891 * testsuite/i386/x86-64-avx512_4vnniw_vl.d: Likewise.
892 * testsuite/i386/x86-64-avx512_4vnniw_vl.s: Likewise.
894 2018-01-11 Alan Modra <amodra@gmail.com>
896 * config/tc-arm.c (aeabi_set_public_attributes): Avoid false
897 positive "‘profile’ may be used uninitialized".
899 2018-01-10 Jan Beulich <jbeulich@suse.com>
901 * testsuite/gas/i386/avx512_4fmaps.s,
902 testsuite/gas/i386/avx512_4fmaps_vl.s,
903 testsuite/gas/i386/x86-64-avx512_4fmaps.s,
904 testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s: Actually test
905 Disp8 forms (and the transition happening at the right
907 * testsuite/gas/i386/avx512_4fmaps.d,
908 testsuite/gas/i386/avx512_4fmaps-intel.d,
909 testsuite/gas/i386/avx512_4fmaps_vl.d,
910 testsuite/gas/i386/avx512_4fmaps_vl-intel.d,
911 testsuite/gas/i386/x86-64-avx512_4fmaps.d,
912 testsuite/gas/i386/x86-64-avx512_4fmaps-intel.d,
913 testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d,
914 testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d: Adjust
917 2018-01-10 Jan Beulich <jbeulich@suse.com>
919 * testsuite/gas/i386/avx512bw.s,
920 testsuite/gas/i386/avx512bw_vl.s: Add VPCMP* tests with memory
922 * testsuite/gas/i386/avx512bw-intel.d,
923 testsuite/gas/i386/avx512bw.d,
924 testsuite/gas/i386/avx512bw_vl-intel.d.
925 testsuite/gas/i386/avx512bw_vl.d: Adjust expectations.
927 2018-01-09 Jim Wilson <jimw@sifive.com>
929 * testsuite/gas/riscv/auipc-x0.d: New.
930 * testsuite/gas/riscv/auipc-x0.s: New.
932 2018-01-09 James Greenhalgh <james.greenhalgh@arm.com>
934 * config/tc-arm.c (insns): Add csdb, enable for Armv3 and above
935 in Arm execution state, and Armv6T2 and above in Thumb execution
937 * testsuite/gas/arm/csdb.s: New.
938 * testsuite/gas/arm/csdb.d: New.
939 * testsuite/gas/arm/thumb2_it_bad.l: Add csdb.
940 * testsuite/gas/arm/thumb2_it_bad.s: Add csdb.
942 2018-01-09 James Greenhalgh <james.greenhalgh@arm.com>
944 * testsuite/gas/aarch64/system.d: Update expected results to expect
947 2018-01-08 H.J. Lu <hongjiu.lu@intel.com>
950 * testsuite/gas/i386/i386.exp: Run x86-64-movd and
952 * testsuite/gas/i386/x86-64-movd-intel.d: New file.
953 * testsuite/gas/i386/x86-64-movd.d: Likewise.
954 * testsuite/gas/i386/x86-64-movd.s: Likewise.
956 2018-01-08 Nick Clifton <nickc@redhat.com>
959 * doc/c-i386.texi (i386-Directives): Document the .largecomm
962 2018-01-04 Jim Wilson <jimw@sifive.com>
964 * testsuite/gas/riscv/priv-reg.s: Add missing stval and mtval.
965 * testsuite/gas/riscv/priv-reg.d: Likewise.
967 2018-01-03 Alan Modra <amodra@gmail.com>
969 Update year range in copyright notice of all files.
971 2018-01-02 Nick Clifton <nickc@redhat.com>
974 * config/tc-arm.c (do_mrs): Fix test of bits 16-19 in non-banked
975 version of ARM MRS instruction.
977 For older changes see ChangeLog-2017
979 Copyright (C) 2018 Free Software Foundation, Inc.
981 Copying and distribution of this file, with or without modification,
982 are permitted in any medium without royalty provided the copyright
983 notice and this notice are preserved.
989 version-control: never