1 2018-02-22 H.J. Lu <hongjiu.lu@intel.com>
3 * config/tc-i386.c (_i386_insn): Add rex_encoding.
4 (md_assemble): When i.rex_encoding is true, generate a REX byte
6 (parse_insn): Set i.rex_encoding for {rex}.
7 * doc/c-i386.texi: Document {rex}.
8 * testsuite/gas/i386/x86-64-pseudos.s: Add {rex} tests.
9 * testsuite/gas/i386/x86-64-pseudos.d: Updated.
11 2018-02-22 A. Wilcox <awilfox@adelielinux.org>
14 * config/tc-mips.c (mips_lookup_insn): Use memmove to strip the
15 instruction size suffix.
17 2018-02-20 Maciej W. Rozycki <macro@mips.com>
19 * testsuite/gas/mips/mips16-branch-reloc-4.d: New test.
20 * testsuite/gas/mips/mips16-branch-reloc-5.d: New test.
21 * testsuite/gas/mips/mips16-branch-reloc-4.s: New test source.
22 * testsuite/gas/mips/mips16-branch-reloc-5.s: New test source.
23 * testsuite/gas/mips/mips.exp: Run the new tests.
25 2018-02-20 Max Filippov <jcmvbkbc@gmail.com>
27 * config/tc-xtensa.c (struct litpool_frag): Add new field
29 (MAX_AUTO_POOL_LITERALS, MAX_EXPLICIT_POOL_LITERALS)
30 (MAX_POOL_LITERALS): New macro definitions.
31 (auto_litpool_limit): Initialize to 0.
32 (md_parse_option): Set auto_litpool_limit in the presence of
33 --auto-litpools option.
34 (xtensa_maybe_create_literal_pool_frag): Zero-initialize
36 (xg_find_litpool): New function. Make sure that found literal
37 pool size is within the limit.
38 (xtensa_move_literals): Extract literal pool search code into
40 * testsuite/gas/xtensa/all.exp: Add auto-litpools-2 test.
41 * testsuite/gas/xtensa/auto-litpools-2.d: New file.
42 * testsuite/gas/xtensa/auto-litpools-2.s: New file.
43 * testsuite/gas/xtensa/auto-litpools.d: Fix up changed
45 * testsuite/gas/xtensa/auto-litpools.s: Change literal value so
46 that objdump doesn't get out of sync.
48 2018-02-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
50 * doc/c-arm.texi (.arch_extension): Mention extensions it accepts are
51 also the same as -march.
53 2018-02-17 H.J. Lu <hongjiu.lu@intel.com>
55 * NEWS: Mention .nop directive.
56 * as.h (_relax_state): Add rs_space_nop and rs_fill_nop.
57 * read.c (potable): Add .nop.
58 (s_nop): New function.
59 * read.h (s_nop): New prototype.
60 * write.c (cvt_frag_to_fill): Handle rs_space_nop and
62 (md_generate_nops): New function.
63 (relax_segment): Likewise.
64 (write_contents): Use md_generate_nops for rs_fill_nop.
65 * config/tc-i386.c (alt64_11): New.
66 (alt64_patt): Likewise.
67 (md_convert_frag): Handle rs_space_nop.
68 (i386_output_nops): New function.
69 (i386_generate_nops): Likewise.
70 (i386_align_code): Call i386_output_nops.
71 * config/tc-i386.h (i386_generate_nops): New.
72 (md_generate_nops): Likewise.
73 * doc/as.texinfo: Document .nop directive.
74 * testsuite/gas/i386/i386.exp: Run .nop directive tests.
75 * testsuite/gas/i386/nop-1.d: New file.
76 * testsuite/gas/i386/nop-1.s: Likewise.
77 * testsuite/gas/i386/nop-2.d: Likewise.
78 * testsuite/gas/i386/nop-2.s: Likewise.
79 * testsuite/gas/i386/nop-3.d: Likewise.
80 * testsuite/gas/i386/nop-3.s: Likewise.
81 * testsuite/gas/i386/nop-4.d: Likewise.
82 * testsuite/gas/i386/nop-4.s: Likewise.
83 * testsuite/gas/i386/nop-5.d: Likewise.
84 * testsuite/gas/i386/nop-5.s: Likewise.
85 * testsuite/gas/i386/nop-6.d: Likewise.
86 * testsuite/gas/i386/nop-6.s: Likewise.
87 * testsuite/gas/i386/nop-bad-1.l: Likewise.
88 * testsuite/gas/i386/nop-bad-1.s: Likewise.
89 * testsuite/gas/i386/x86-64-nop-1.d: Likewise.
90 * testsuite/gas/i386/x86-64-nop-2.d: Likewise.
91 * testsuite/gas/i386/x86-64-nop-3.d: Likewise.
92 * testsuite/gas/i386/x86-64-nop-4.d: Likewise.
93 * testsuite/gas/i386/x86-64-nop-5.d: Likewise.
94 * testsuite/gas/i386/x86-64-nop-6.d: Likewise.
96 2018-02-15 Tamar Christina <tamar.christina@arm.com>
98 * config/tc-arm.c (cpu_arch_ver): Renumber ARM_ARCH_V8_4A.
99 * testsuite/gas/arm/attr-march-armv8_4-a.d: New.
101 2018-02-13 Max Filippov <jcmvbkbc@gmail.com>
103 * config/tc-xtensa.c (xg_find_best_trampoline): Skip trampoline
104 frag that contains source address.
106 2018-02-13 Nick Clifton <nickc@redhat.com>
109 * config/tc-arm.c (md_apply_fix): Test Rn field of Thumb ORR
110 instruction before assuming that it is a MOV instruction.
111 * testsuite/gas/arm/pr22773.s: New test.
112 * testsuite/gas/arm/pr22773.d: New test driver.
113 * testsuite/gas/arm/pr22773.l: New expected output.
115 2018-02-13 H.J. Lu <hongjiu.lu@intel.com>
118 * config/tc-i386.c (need_plt32_p): New function.
119 (output_jump): Generate BFD_RELOC_X86_64_PLT32 if possible.
120 (md_estimate_size_before_relax): Likewise.
121 * testsuite/gas/i386/reloc64.d: Updated.
122 * testsuite/gas/i386/x86-64-jump.d: Likewise.
123 * testsuite/gas/i386/x86-64-mpx-branch-1.d: Likewise.
124 * testsuite/gas/i386/x86-64-mpx-branch-2.d: Likewise.
125 * testsuite/gas/i386/x86-64-relax-2.d: Likewise.
126 * testsuite/gas/i386/x86-64-relax-3.d: Likewise.
127 * testsuite/gas/i386/ilp32/reloc64.d: Likewise.
128 * testsuite/gas/i386/ilp32/x86-64-branch.d: Likewise.
130 2018-02-13 Maciej W. Rozycki <macro@mips.com>
132 * testsuite/gas/mips/loongson-3a-2.d: Rename test.
134 2018-02-13 Nick Clifton <nickc@redhat.com>
137 * config/obj-elf.c (elf_pseudo_table): Remove now redundant
139 (obj_elf_vtable_inherit): Rename to obj_elf_get_vtable_inherit.
140 (obj_elf_vtable_inherit): New stub function that calls
141 obj_elf_get_vtable_inherit.
142 (obj_elf_vtable_entry): Rename to obj_elf_get_vtable_entry.
143 (obj_elf_vtable_entry): New stub function that calls
144 obj_elf_get_vtable_entry.
145 * config/obj-elf.h (obj_elf_vtable_inherit): Update prototype.
146 (obj_elf_vtable_entry) Likewise.
147 (obj_elf_get_vtable_inherit) Likewise.
148 (obj_elf_get_vtable_entry) Likewise.
149 * config/tc-arm.c (md_pseudo_table): Remove now redundant cast.
150 * config/tc-i386c (md_pseudo_table): Likewise.
151 * config/tc-hppa.c (pa_vtable_entry): Call
152 obj_elf_get_vtable_entry.
153 (pa_vtable_inherit): Call obj_elf_get_vtable_inherit.
154 * config/tc-mips.c (s_mips_file): Replace call to dwarf2_get_file
155 with call to dwarf2_get_filename.
156 * dwarf2dbg.c (dwarf2_directive_file): Rename to
157 dwarf2_directive_filename.
158 (dwarf2_directive_file): New stub function that calls
159 dwarf2_directive_filename.
160 * dwarf2dbg.h: Prototype dwarf2_directive_filename.
162 2018-02-12 Maciej W. Rozycki <macro@mips.com>
164 * testsuite/gas/mips/reginfo-2-n32.d: Add `--no-pad-sections' to
167 2018-02-12 Henry Wong <henry@stuffedcow.net>
169 * testsuite/gas/mips/r6.d: Update for "sigrie" encoding fix.
170 * testsuite/gas/mips/r6-n32.d: Likewise.
171 * testsuite/gas/mips/r6-n64.d: Likewise.
173 2018-02-12 Nick Clifton <nickc@redhat.com>
175 * po/ru.po: Updated Russian translation.
177 2018-02-08 Alan Modra <amodra@gmail.com>
180 * config/tc-ppc.c (md_assemble): Rewrite insn alignment checking.
181 (ppc_frag_check): Likewise.
182 * testsuite/gas/ppc/misalign.d,
183 * testsuite/gas/ppc/misalign.l,
184 * testsuite/gas/ppc/misalign.s: New test.
185 * testsuite/gas/ppc/misalign2.d,
186 * testsuite/gas/ppc/misalign2.s: New test.
187 * testsuite/gas/ppc/ppc.exp: Run them.
189 2018-02-05 Maciej W. Rozycki <macro@mips.com>
191 * config/tc-riscv.c (riscv_handle_implicit_zero_offset): Rename
192 `expr' parameter to `ep'.
194 2018-02-05 Maciej W. Rozycki <macro@mips.com>
196 * testsuite/gas/mips/reginfo-2.d: New test.
197 * testsuite/gas/mips/reginfo-2-n32.d: New test.
198 * testsuite/gas/mips/reginfo-2.l: New test stderr output.
199 * testsuite/gas/mips/reginfo-2.s: New test source.
200 * testsuite/gas/mips/mips.exp: Run the new tests.
202 2018-02-05 Nick Clifton <nickc@redhat.com>
204 * po/ru.po: Updated Russian translation.
206 2018-01-31 Alan Modra <amodra@gmail.com>
209 * app.c (last_char): New static var.
210 (struct app_save): Add last_char field.
211 (app_push, app_pop): Handle it.
212 (do_scrub_chars): Use last_char in test for "\@". Set last_char.
214 2018-01-29 Eric Botcazou <ebotcazou@adacore.com>
217 * config/tc-sparc.h (sparc_mach): Declare.
218 (TARGET_MACH): Define to above.
219 * config/tc-sparc.c (sparc_mach): New function.
220 (sparc_md_end): Minor tweak.
222 2018-01-29 Nick Clifton <nickc@redhat.com>
224 * po/ru.po: Updated Russian translation.
226 2018-01-26 Maciej W. Rozycki <macro@mips.com>
228 * configure.tgt: Use generic emulation for `mips-*-windiss',
229 overriding the blanket choice made for `*-*-windiss'.
231 2018-01-26 Maciej W. Rozycki <macro@mips.com>
233 * configure.tgt: Use `mips-*-sysv4*' rather than
236 2018-01-24 Renlin Li <renlin.li@arm.com>
238 * config/tc-aarch64.c (reloc_table): add entries for
239 BFD_RELOC_AARCH64_MOVW_PREL_G0, BFD_RELOC_AARCH64_MOVW_PREL_G0_NC,
240 BFD_RELOC_AARCH64_MOVW_PREL_G1, BFD_RELOC_AARCH64_MOVW_PREL_G1_NC,
241 BFD_RELOC_AARCH64_MOVW_PREL_G2, BFD_RELOC_AARCH64_MOVW_PREL_G2_NC,
242 BFD_RELOC_AARCH64_MOVW_PREL_G3.
243 (process_movw_reloc_info): Supports newly added MOVW_PREL relocations.
244 (md_apply_fix): Likewise
245 * testsuite/gas/aarch64/prel_g0.s: New.
246 * testsuite/gas/aarch64/prel_g0.d: New.
247 * testsuite/gas/aarch64/prel_g0_nc.s: New.
248 * testsuite/gas/aarch64/prel_g0_nc.d: New.
249 * testsuite/gas/aarch64/prel_g1.s: New.
250 * testsuite/gas/aarch64/prel_g1.d: New.
251 * testsuite/gas/aarch64/prel_g1_nc.s: New.
252 * testsuite/gas/aarch64/prel_g1_nc.d: New.
253 * testsuite/gas/aarch64/prel_g2.s: New.
254 * testsuite/gas/aarch64/prel_g2.d: New.
255 * testsuite/gas/aarch64/prel_g2_nc.s: New.
256 * testsuite/gas/aarch64/prel_g2_nc.d: New.
257 * testsuite/gas/aarch64/prel_g3.s: New.
258 * testsuite/gas/aarch64/prel_g3.d: New.
260 2018-01-23 Maciej W. Rozycki <macro@mips.com>
262 * configure.ac: Also set `mips_default_abi' to N32_ABI for
264 * configure: Regenerate.
266 2018-01-23 Maciej W. Rozycki <macro@mips.com>
268 * config/tc-mips.c (options): Remove OPTION_COMPAT_ARCH_BASE
271 2018-01-23 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
273 * config/tc-i386.c (cpu_arch): Add .pconfig.
274 * doc/c-i386.texi: Document .pconfig.
275 * testsuite/gas/i386/i386.exp: Add PCONFIG tests.
276 * testsuite/gas/i386/pconfig-intel.d: New test.
277 * testsuite/gas/i386/pconfig.d: Likewise.
278 * testsuite/gas/i386/pconfig.s: Likewise.
279 * testsuite/gas/i386/x86-64-pconfig-intel.d: Likewise.
280 * testsuite/gas/i386/x86-64-pconfig.d: Likewise.
281 * testsuite/gas/i386/x86-64-pconfig.s: Likewise.
283 2018-01-23 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
285 * config/tc-i386.c (cpu_arch): Add .wbnoinvd.
286 * doc/c-i386.texi: Document .wbnoinvd.
287 * testsuite/gas/i386/i386.exp: Add WBNOINVD tests.
288 * testsuite/gas/i386/wbnoinvd-intel.d: New test.
289 * testsuite/gas/i386/wbnoinvd.d: Likewise.
290 * testsuite/gas/i386/wbnoinvd.s: Likewise.
291 * testsuite/gas/i386/x86-64-wbnoinvd-intel.d: Likewise.
292 * testsuite/gas/i386/x86-64-wbnoinvd.d: Likewise.
293 * testsuite/gas/i386/x86-64-wbnoinvd.s: Likewise.
295 2018-01-23 Maciej W. Rozycki <macro@mips.com>
297 * config/tc-mips.c (md_show_usage): Correctly indicate the
298 configuration-specific default ABI.
300 2018-01-23 Maciej W. Rozycki <macro@mips.com>
302 * config/tc-mips.c (md_show_usage): Report `-mmips16e2' and
303 `-mno-mips16e2' options.
305 2018-01-22 Maciej W. Rozycki <macro@mips.com>
307 * doc/c-mips.texi (MIPS ASE Instruction Generation Overrides):
308 Correct syntax of the `.set nomips16e2' directive description.
310 2018-01-22 Oleg Endo <olegendo@gcc.gnu.org>
313 * config/tc-rx.c (rx_start_line): Handle escaped double-quote character.
314 * testsuite/gas/rx/pr22737.s: New test.
315 * testsuite/gas/rx/pr22737.d: Likewise.
316 * testsuite/gas/rx/rx.exp: Run the new test.
318 2018-01-19 Thomas Preud'homme <thomas.preudhomme@arm.com>
320 * config/tc-arm.c (ToC macro): Remove spurious comment.
321 (ToU macro): Likewise.
323 2018-01-17 Jim Wilson <jimw@sifive.com>
325 * config/tc-riscv.c (validate_riscv_insn) <'z'>: New.
326 (riscv_ip) <'z'>: New.
328 2018-01-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
330 * config/tc-i386.c (cpu_arch): Delete .cet. Add .ibt, .shstk.
331 (cpu_noarch): Add noibt, noshstk.
332 (parse_insn): Change cpucet to cpuibt.
333 * doc/c-i386.texi: Delete .cet. Add .ibt, .shstk.
334 * testsuite/gas/i386/cet-ibt-inval.l: New test.
335 * testsuite/gas/i386/cet-ibt-inval.s: Likewise.
336 * testsuite/gas/i386/cet-shstk-inval.l: Likewise.
337 * testsuite/gas/i386/cet-shstk-inval.s: Likewise.
338 * testsuite/gas/i386/x86-64-cet-ibt-inval.l: Likewise.
339 * testsuite/gas/i386/x86-64-cet-ibt-inval.s: Likewise.
340 * testsuite/gas/i386/x86-64-cet-shstk-inval.l: Likewise.
341 * testsuite/gas/i386/x86-64-cet-shstk-inval.s: Likewise.
343 2018-01-16 Nick Clifton <nickc@redhat.com>
345 * po/fr.po: Updated French translation.
347 2018-01-15 Jim Wilson <jimw@sifive.com>
349 * testsuite/gas/riscv/c-zero-imm.s: Test addi that compresses to c.nop.
350 * testsuite/gas/riscv/c-zero-imm.d: Likewise.
352 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
354 * config/tc-arm.c (ToC): Define macro.
356 (insns): Make use of above macros for new instructions introduced in
359 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
361 * config/tc-arm.c (insns): Make blxns, bxns, tt, ttt, tta, ttat, vlldm
362 and vlstm conditionally executable and reindent parameters.
363 * testsuite/gas/arm/archv8m-cmse-main.s: Add conditional version of
364 aforementionned instructions.
366 2018-01-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
368 * config/tc-arm.c (it_fsm_post_encode): Do not warn if targeting M
369 profile architecture or if in autodetection mode. Clarify that
370 deprecation is for performance reason and concerns Armv8-A and Armv8-R.
371 * testsuite/gas/arm/armv8-ar-bad.l: Adapt to new IT deprecation warning
373 * testsuite/gas/arm/armv8-ar-it-bad.l: Likewise.
374 * testsuite/gas/arm/sp-pc-validations-bad-t-v8a.l: Likewise.
375 * testsuite/gas/arm/udf.l: Likewise.
376 * testsuite/gas/arm/udf.d: Assemble for Armv8-A explicitely.
378 2018-01-15 Nick Clifton <nickc@redhat.com>
380 * po/uk.po: Updated Ukranian translation.
382 2018-01-13 Nick Clifton <nickc@redhat.com>
384 * po/gas.pot: Regenerated.
386 2018-01-13 Nick Clifton <nickc@redhat.com>
388 * configure: Regenerate.
390 2018-01-13 Nick Clifton <nickc@redhat.com>
393 * NEWS: Add marker for 2.30.
395 2018-01-12 Gunther Nikl <gnikl@users.sourceforge.net>
397 * gas/config/aout_gnu.h (USE_EXTENDED_RELOC): Explicitly
398 define to 0 and 1. Remove a dangling reference to "AMD 29000"
401 2018-01-11 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
403 * testsuite/i386/avx512_4fmaps_vl-warn.l: Likewise.
404 * testsuite/i386/avx512_4fmaps_vl-warn.s: Likewise.
405 * testsuite/i386/avx512_4fmaps_vl.d: Likewise.
406 * testsuite/i386/avx512_4fmaps_vl.s: Likewise.
407 * testsuite/i386/avx512_4vnniw_vl-intel.d: Likewise.
408 * testsuite/i386/avx512_4vnniw_vl.d: Likewise.
409 * testsuite/i386/avx512_4vnniw_vl.s: Likewise.
410 * testsuite/i386/i386.exp: Removed _vl tests for 4fmaps an 4vnniw
412 * testsuite/i386/x86-64-avx512_4fmaps_vl-intel.d: Removed.
413 * testsuite/i386/x86-64-avx512_4fmaps_vl-warn.l: Likewise.
414 * testsuite/i386/x86-64-avx512_4fmaps_vl-warn.s: Likewise.
415 * testsuite/i386/x86-64-avx512_4fmaps_vl.d: Likewise.
416 * testsuite/i386/x86-64-avx512_4fmaps_vl.s: Likewise.
417 * testsuite/i386/x86-64-avx512_4vnniw_vl-intel.d: Likewise.
418 * testsuite/i386/x86-64-avx512_4vnniw_vl.d: Likewise.
419 * testsuite/i386/x86-64-avx512_4vnniw_vl.s: Likewise.
421 2018-01-11 Alan Modra <amodra@gmail.com>
423 * config/tc-arm.c (aeabi_set_public_attributes): Avoid false
424 positive "‘profile’ may be used uninitialized".
426 2018-01-10 Jan Beulich <jbeulich@suse.com>
428 * testsuite/gas/i386/avx512_4fmaps.s,
429 testsuite/gas/i386/avx512_4fmaps_vl.s,
430 testsuite/gas/i386/x86-64-avx512_4fmaps.s,
431 testsuite/gas/i386/x86-64-avx512_4fmaps_vl.s: Actually test
432 Disp8 forms (and the transition happening at the right
434 * testsuite/gas/i386/avx512_4fmaps.d,
435 testsuite/gas/i386/avx512_4fmaps-intel.d,
436 testsuite/gas/i386/avx512_4fmaps_vl.d,
437 testsuite/gas/i386/avx512_4fmaps_vl-intel.d,
438 testsuite/gas/i386/x86-64-avx512_4fmaps.d,
439 testsuite/gas/i386/x86-64-avx512_4fmaps-intel.d,
440 testsuite/gas/i386/x86-64-avx512_4fmaps_vl.d,
441 testsuite/gas/i386/x86-64-avx512_4fmaps_vl-intel.d: Adjust
444 2018-01-10 Jan Beulich <jbeulich@suse.com>
446 * testsuite/gas/i386/avx512bw.s,
447 testsuite/gas/i386/avx512bw_vl.s: Add VPCMP* tests with memory
449 * testsuite/gas/i386/avx512bw-intel.d,
450 testsuite/gas/i386/avx512bw.d,
451 testsuite/gas/i386/avx512bw_vl-intel.d.
452 testsuite/gas/i386/avx512bw_vl.d: Adjust expectations.
454 2018-01-09 Jim Wilson <jimw@sifive.com>
456 * testsuite/gas/riscv/auipc-x0.d: New.
457 * testsuite/gas/riscv/auipc-x0.s: New.
459 2018-01-09 James Greenhalgh <james.greenhalgh@arm.com>
461 * config/tc-arm.c (insns): Add csdb, enable for Armv3 and above
462 in Arm execution state, and Armv6T2 and above in Thumb execution
464 * testsuite/gas/arm/csdb.s: New.
465 * testsuite/gas/arm/csdb.d: New.
466 * testsuite/gas/arm/thumb2_it_bad.l: Add csdb.
467 * testsuite/gas/arm/thumb2_it_bad.s: Add csdb.
469 2018-01-09 James Greenhalgh <james.greenhalgh@arm.com>
471 * testsuite/gas/aarch64/system.d: Update expected results to expect
474 2018-01-08 H.J. Lu <hongjiu.lu@intel.com>
477 * testsuite/gas/i386/i386.exp: Run x86-64-movd and
479 * testsuite/gas/i386/x86-64-movd-intel.d: New file.
480 * testsuite/gas/i386/x86-64-movd.d: Likewise.
481 * testsuite/gas/i386/x86-64-movd.s: Likewise.
483 2018-01-08 Nick Clifton <nickc@redhat.com>
486 * doc/c-i386.texi (i386-Directives): Document the .largecomm
489 2018-01-04 Jim Wilson <jimw@sifive.com>
491 * testsuite/gas/riscv/priv-reg.s: Add missing stval and mtval.
492 * testsuite/gas/riscv/priv-reg.d: Likewise.
494 2018-01-03 Alan Modra <amodra@gmail.com>
496 Update year range in copyright notice of all files.
498 2018-01-02 Nick Clifton <nickc@redhat.com>
501 * config/tc-arm.c (do_mrs): Fix test of bits 16-19 in non-banked
502 version of ARM MRS instruction.
504 For older changes see ChangeLog-2017
506 Copyright (C) 2018 Free Software Foundation, Inc.
508 Copying and distribution of this file, with or without modification,
509 are permitted in any medium without royalty provided the copyright
510 notice and this notice are preserved.
516 version-control: never