Commit | Line | Data |
---|---|---|
15290f0a PB |
1 | 2008-03-09 Paul Brook <paul@codesourcery.com> |
2 | ||
3 | * config/tc-arm.c (arm_cpu_option_table): Add cortex-a9. | |
4 | * doc/c-arm.texi: Add cortex-a9. | |
5 | ||
b1cc4aeb PB |
6 | 2008-03-09 Paul Brook <paul@codesourcery.com> |
7 | ||
8 | * config/tc-arm.c (fpu_vfp_ext_d32): New vairable. | |
9 | (parse_vfp_reg_list, encode_arm_vfp_reg): Use it. | |
10 | (arm_option_cpu_value): Add vfpv3-d16, vfpv2 and vfpv3. | |
11 | (aeabi_set_public_attributes): Handle Tag_VFP_arch=VFPV3-D16. | |
12 | * doc/c-arm.texi: Document new ARM FPU variants. | |
13 | ||
39623e12 PB |
14 | 2008-03-07 Paul Brook <paul@codesourcery.com> |
15 | ||
16 | * config/tc-arm.c (md_apply_fix): Use correct offset range. | |
17 | ||
d815f1a9 AM |
18 | 2008-03-07 Alan Modra <amodra@bigpond.net.au> |
19 | ||
20 | * config/tc-ppc.c (ppc_setup_opcodes): Tidy. Add code to test | |
21 | for strict ordering of powerpc_opcodes, but disable for now. | |
22 | ||
7e806470 PB |
23 | 2008-03-04 Paul Brook <paul@codesourcery.com> |
24 | ||
25 | * config/tc-arm.c (arm_ext_barrier, arm_ext_msr): New. | |
26 | (arm_ext_v7m): Rename... | |
27 | (arm_ext_m): ... to this. Include v6-M. | |
28 | (do_t_add_sub): Allow narrow low-reg non flag setting adds. | |
29 | (do_t_mrs, do_t_msr, aeabi_set_public_attributes): Use arm_ext_m. | |
30 | (md_assemble): Allow wide msr instructions. | |
31 | (insns): Add classifications for v6-m instructions. | |
32 | (arm_cpu_option_table): Add cortex-m1. | |
33 | (arm_arch_option_table): Add armv6-m. | |
34 | (cpu_arch): Add ARM_ARCH_V6M. Fix numbering of other v6 variants. | |
35 | ||
77cba8a3 BW |
36 | 2008-03-03 Sterling Augustine <sterling@tensilica.com> |
37 | Bob Wilson <bob.wilson@acm.org> | |
38 | ||
39 | * config/tc-xtensa.c (xtensa_num_pipe_stages): New. | |
40 | (md_begin): Initialize it. | |
41 | (resources_conflict): Use it. | |
42 | ||
58502fec BW |
43 | 2008-03-03 Sterling Augustine <sterling@tensilica.com> |
44 | ||
45 | * config/tc-xtensa.h (RELAX_XTENSA_NONE): New. | |
46 | ||
d0548f34 L |
47 | 2008-03-03 Denys Vlasenko <vda.linux@googlemail.com> |
48 | H.J. Lu <hongjiu.lu@intel.com> | |
49 | ||
50 | PR gas/5543 | |
51 | * read.c (pseudo_set): Don't allow global register symbol. | |
52 | ||
53 | * symbols.c (S_SET_EXTERNAL): Don't allow register symbol | |
54 | global. | |
55 | ||
56 | 2008-03-03 H.J. Lu <hongjiu.lu@intel.com> | |
57 | ||
58 | PR gas/5543 | |
59 | * write.c (write_object_file): Don't allow symbols which were | |
60 | equated to register. Stop if there is an error. | |
61 | ||
783de163 AM |
62 | 2008-03-01 Alan Modra <amodra@bigpond.net.au> |
63 | ||
64 | * config/tc-ppc.h (struct _ppc_fix_extra): New. | |
65 | (ppc_cpu): Declare. | |
66 | (TC_FIX_TYPE, TC_INIT_FIX_DATA): Define. | |
67 | * config/tc-ppc.c (ppu_cpu): Make global. | |
68 | (ppc_insert_operand): Add ppu_cpu parameter. | |
69 | (md_assemble): Adjust for above change. | |
70 | (md_apply_fix): Pass tc_fix_data.ppc_cpu to ppc_insert_operand. | |
71 | ||
5ad34203 NC |
72 | 2008-02-22 Nick Clifton <nickc@redhat.com> |
73 | ||
74 | * config/tc-arm.c (do_bx): Only test EF_ARM_EABI_VERSION on ELF | |
584206db | 75 | targeted ARM ports, otherwise just skip generating the reloc. |
5ad34203 | 76 | |
1ceab344 L |
77 | 2008-02-18 H.J. Lu <hongjiu.lu@intel.com> |
78 | ||
79 | * doc/c-i386.texi: Update -march= and .arch. | |
80 | ||
ca75ed2d NC |
81 | 2008-02-18 Nick Clifton <nickc@redhat.com> |
82 | ||
83 | * config/tc-mn10300.c (has_known_symbol_location): New function. | |
84 | Do not regard weak symbols as having a known location. | |
85 | (md_estimate_size_before_relax): Use new function. | |
86 | (md_pcrel_from): Do not compute a pcrel against a weak symbol. | |
87 | ||
192dc9c6 JB |
88 | 2008-02-18 Jan Beulich <jbeulich@novell.com> |
89 | ||
90 | * config/tc-i386.c (match_template): Disallow 'l' suffix when | |
91 | currently selected CPU has no 32-bit support. | |
92 | (parse_real_register): Do not return registers not available on | |
93 | currently selected CPU. | |
94 | ||
1fed0ba1 L |
95 | 2008-02-16 H.J. Lu <hongjiu.lu@intel.com> |
96 | ||
97 | * config/tc-i386.c (process_immext): Fix format. | |
98 | ||
65da13b5 L |
99 | 2008-02-16 H.J. Lu <hongjiu.lu@intel.com> |
100 | ||
101 | * config/tc-i386.c (inoutportreg): New. | |
102 | (process_immext): New. | |
103 | (md_assemble): Use it. | |
104 | (update_imm): Use imm16 and imm32s. | |
105 | (i386_att_operand): Use inoutportreg. | |
106 | ||
0dfbf9d7 L |
107 | 2008-02-14 H.J. Lu <hongjiu.lu@intel.com> |
108 | ||
109 | * config/tc-i386.c (operand_type_all_zero): New. | |
110 | (operand_type_set): Likewise. | |
111 | (operand_type_equal): Likewise. | |
112 | (cpu_flags_all_zero): Likewise. | |
113 | (cpu_flags_set): Likewise. | |
114 | (cpu_flags_equal): Likewise. | |
115 | (UINTS_ALL_ZERO): Removed. | |
116 | (UINTS_SET): Likewise. | |
117 | (UINTS_CLEAR): Likewise. | |
118 | (UINTS_EQUAL): Likewise. | |
119 | (cpu_flags_match): Updated. | |
120 | (smallest_imm_type): Likewise. | |
121 | (set_cpu_arch): Likewise. | |
122 | (md_assemble): Likewise. | |
123 | (optimize_imm): Likewise. | |
124 | (match_template): Likewise. | |
125 | (process_suffix): Likewise. | |
126 | (update_imm): Likewise. | |
127 | (process_drex): Likewise. | |
128 | (process_operands): Likewise. | |
129 | (build_modrm_byte): Likewise. | |
130 | (i386_immediate): Likewise. | |
131 | (i386_displacement): Likewise. | |
132 | (i386_att_operand): Likewise. | |
133 | (parse_real_register): Likewise. | |
134 | (md_parse_option): Likewise. | |
135 | (i386_target_format): Likewise. | |
136 | ||
93ac2687 NC |
137 | 2008-02-14 Dimitry Andric <dimitry@andric.com> |
138 | ||
139 | PR gas/5712 | |
140 | * config/tc-arm.c (s_arm_unwind_save): Advance the input line | |
141 | pointer past the comma after parsing a floating point register | |
142 | name. | |
143 | ||
d669d37f NC |
144 | 2008-02-14 Hakan Ardo <hakan@debian.org> |
145 | ||
146 | PR gas/2626 | |
147 | * config/tc-avr.c (mcu_types): Change the ISA tyoe of the attiny26 | |
148 | to AVR_ISA_2xxe. | |
149 | (avr_operand): Disallow post-increment addressing in the lpm | |
150 | instruction for the attiny26. | |
151 | ||
b7240065 JB |
152 | 2008-02-13 Jan Beulich <jbeulich@novell.com> |
153 | ||
154 | * config/tc-i386.c (parse_real_register): Don't return 'FLAT' | |
155 | if not in Intel mode. | |
156 | (i386_intel_operand): Ignore segment overrides in immediate and | |
157 | offset operands. | |
158 | (intel_e11): Range-check i.mem_operands before use as array | |
159 | index. Filter out FLAT for uses other than as segment override. | |
160 | (intel_get_token): Remove broken promotion of "FLAT:" to mean | |
161 | "offset FLAT:". | |
162 | ||
34b772a6 JB |
163 | 2008-02-13 Jan Beulich <jbeulich@novell.com> |
164 | ||
165 | * config/tc-i386.c (intel_e09): Also special-case 'bound'. | |
166 | ||
a60de03c JB |
167 | 2008-02-13 Jan Beulich <jbeulich@novell.com> |
168 | ||
169 | * config/tc-i386.c (allow_pseudo_reg): New. | |
170 | (parse_real_register): Check for NULL just once. Allow all | |
171 | register table entries when allow_pseudo_reg is non-zero. | |
172 | Don't allow any registers without type when allow_pseudo_reg | |
173 | is zero. | |
174 | (tc_x86_regname_to_dw2regnum): Replace with ... | |
175 | (tc_x86_parse_to_dw2regnum): ... this. | |
176 | (tc_x86_frame_initial_instructions): Adjust for above change. | |
177 | * config/tc-i386.h (tc_regname_to_dw2regnum): Remove. | |
178 | (tc_parse_to_dw2regnum): New. | |
179 | (tc_x86_regname_to_dw2regnum): Replace with ... | |
180 | (tc_x86_parse_to_dw2regnum): ... this. | |
181 | * dw2gencfi.c (tc_parse_to_dw2regnum): New, broken out of ... | |
182 | (cfi_parse_reg): ... this. Use tc_parse_to_dw2regnum. Adjust | |
183 | error handling. | |
184 | ||
9c95b521 NC |
185 | 2008-02-12 Nick Clifton <nickc@redhat.com> |
186 | ||
187 | * config/tc-tic4x.c (tic4x_insn_insert): Add const qualifier to | |
188 | argument. | |
189 | (tic4x_insn_add): Likewise. | |
190 | (md_begin): Drop cast that was discarding a const qualifier. | |
191 | * config/tc-d30v.c (get_reloc): Add const qualifier to op | |
192 | argument. | |
193 | (build_insn): Drop cast that was discarding a const qualifier. | |
194 | ||
f03fe4c1 L |
195 | 2008-02-11 H.J. Lu <hongjiu.lu@intel.com> |
196 | ||
197 | * config/tc-i386.c (cpu_arch): Add .xsave. | |
198 | (md_show_usage): Add .xsave. | |
199 | ||
200 | * doc/c-i386.texi: Add xsave to -march=. | |
201 | ||
1bf57e9f AM |
202 | 2008-02-07 Alan Modra <amodra@bigpond.net.au> |
203 | ||
204 | * read.c (s_weakref): Don't pass unadorned NULL to concat. | |
205 | * config/tc-i386.c (set_cpu_arch, md_parse_option): Likewise. | |
206 | ||
2276bc20 BW |
207 | 2008-02-05 Sterling Augustine <sterling@tensilica.com> |
208 | ||
209 | * config/tc-xtensa.c (relax_frag_immed): Change internal consistency | |
210 | checks into assertions. When relaxation produces an operation that | |
211 | does not fit in the current FLIX instruction, make sure that the | |
212 | operation is relaxed as needed to account for being placed following | |
213 | the current instruction. | |
214 | ||
bb8541b9 L |
215 | 2008-02-04 H.J. Lu <hongjiu.lu@intel.com> |
216 | ||
217 | PR 5715 | |
218 | * configure: Regenerated. | |
219 | ||
967344c6 AN |
220 | 2008-02-04 Adam Nemet <anemet@caviumnetworks.com> |
221 | ||
222 | * config/tc-mips.c (mips_cpu_info_table): Add Octeon. | |
223 | ||
f8a52b59 BW |
224 | 2008-01-31 Marc Gauthier <marc@tensilica.com> |
225 | ||
226 | * configure.tgt (xtensa*-*-*): Recognize processor variants. | |
227 | ||
6e3d6dc1 NC |
228 | 2008-01-25 Kai Tietz <kai.tietz@onevision.com> |
229 | ||
230 | * read.c: (emit_expr): Correct for mingw use of printf size | |
231 | specifier. | |
232 | ||
cec28c98 BW |
233 | 2008-01-24 Bob Wilson <bob.wilson@acm.org> |
234 | ||
235 | * doc/c-xtensa.texi (Xtensa Syntax): Clarify handling of opcodes that | |
236 | can only be encoded in FLIX instructions but are not specified as such. | |
237 | (Xtensa Automatic Alignment): Remove obsolete comment about debugging | |
238 | labels. | |
239 | ||
ae40c993 L |
240 | 2008-01-24 H.J. Lu <hongjiu.lu@intel.com> |
241 | ||
242 | * NEWS: Mention new command line options for x86 targets. | |
243 | ||
599121aa L |
244 | 2008-01-23 H.J. Lu <hongjiu.lu@intel.com> |
245 | ||
246 | * config/tc-i386.c (md_show_usage): Replace tabs with spaces. | |
247 | ||
2b1ed17b EW |
248 | 2008-01-23 Eric B. Weddington <eric.weddington@atmel.com> |
249 | ||
250 | * config/tc-avr.c (mcu_types): Change opcode set for at86rf401. | |
251 | ||
2cb4f3d5 L |
252 | 2008-01-23 H.J. Lu <hongjiu.lu@intel.com> |
253 | ||
254 | * config/tc-i386.c (md_show_usage): Show more processors for | |
255 | -march=/-mtune=. | |
256 | ||
115c7c25 L |
257 | 2008-01-22 H.J. Lu <hongjiu.lu@intel.com> |
258 | ||
259 | * config/tc-i386.c (i386_target_format): Remove cpummx2. | |
260 | ||
6305a203 L |
261 | 2008-01-22 H.J. Lu <hongjiu.lu@intel.com> |
262 | ||
263 | * config/tc-i386.c (XXX_PREFIX): Moved from tc-i386.h. | |
264 | (XXX_MNEM_SUFFIX): Likewise. | |
265 | (END_OF_INSN): Likewise. | |
266 | (templates): Likewise. | |
267 | (modrm_byte): Likewise. | |
268 | (rex_byte): Likewise. | |
269 | (DREX_XXX): Likewise. | |
270 | (drex_byte): Likewise. | |
271 | (sib_byte): Likewise. | |
272 | (processor_type): Likewise. | |
273 | (arch_entry): Likewise. | |
274 | (cpu_sub_arch_name): Remove const. | |
275 | (cpu_arch): Add .vmx and .smx. | |
276 | (set_cpu_arch): Append cpu_sub_arch_name. | |
277 | (md_parse_option): Support -march=CPU[,+EXTENSION...]. | |
278 | (md_show_usage): Updated. | |
279 | ||
280 | * config/tc-i386.h (XXX_PREFIX): Moved to tc-i386.c. | |
281 | (XXX_MNEM_SUFFIX): Likewise. | |
282 | (END_OF_INSN): Likewise. | |
283 | (templates): Likewise. | |
284 | (modrm_byte): Likewise. | |
285 | (rex_byte): Likewise. | |
286 | (DREX_XXX): Likewise. | |
287 | (drex_byte): Likewise. | |
288 | (sib_byte): Likewise. | |
289 | (processor_type): Likewise. | |
290 | (arch_entry): Likewise. | |
291 | ||
292 | * doc/as.texinfo: Update i386 -march option. | |
293 | ||
294 | * doc/c-i386.texi: Update -march= for ISA. | |
295 | ||
fb227da0 BW |
296 | 2008-01-18 Bob Wilson <bob.wilson@acm.org> |
297 | ||
298 | * config/tc-xtensa.c (xtensa_leb128): New function. | |
299 | (md_pseudo_table): Use it for sleb128 and uleb128. | |
300 | (is_leb128_expr): New internal flag. | |
301 | (xtensa_symbol_new_hook): Check new flag. | |
302 | ||
982b62a0 EW |
303 | 2008-01-16 Eric B. Weddington <eric.weddington@atmel.com> |
304 | ||
305 | * config/tc-avr.c (mcu_types): Change opcode set for avr3, | |
306 | at90usb82, at90usb162. | |
307 | * doc/c-avr.texi: Change architecture grouping for at90usb82, | |
308 | at90usb162. | |
309 | These changes support the new avr35 architecture group in gcc. | |
310 | ||
321fd21e L |
311 | 2008-01-15 H.J. Lu <hongjiu.lu@intel.com> |
312 | ||
313 | * config/tc-i386.c (md_assemble): Also zap movzx and movsx | |
314 | suffix for AT&T syntax. | |
315 | ||
5c07affc L |
316 | 2008-01-14 H.J. Lu <hongjiu.lu@intel.com> |
317 | ||
318 | * config/tc-i386.c (match_reg_size): New. | |
319 | (match_mem_size): Likewise. | |
320 | (operand_size_match): Likewise. | |
321 | (operand_type_match): Also clear all size fields. | |
322 | (match_template): Skip Intel syntax when in AT&T syntax. | |
323 | Call operand_size_match to check operand size. | |
324 | (i386_att_operand): Set the mem field to 1 for memory | |
325 | operand. | |
326 | (i386_intel_operand): Likewise. | |
327 | ||
7d5e4556 L |
328 | 2008-01-12 H.J. Lu <hongjiu.lu@intel.com> |
329 | ||
330 | PR gas/5534 | |
331 | * config/tc-i386.c (_i386_insn): Update comment. | |
332 | (operand_type_match): Also clear unspecified. | |
333 | (operand_type_register_match): Likewise. | |
334 | (parse_operands): Initialize unspecified. | |
335 | (i386_intel_operand): Likewise. | |
336 | (match_template): Check memory and accumulator operand size. | |
337 | (i386_att_operand): Clear unspecified on register operand. | |
338 | (intel_e11): Likewise. | |
339 | (intel_e09): Set operand size and clean unspecified for | |
340 | "XXX PTR". | |
341 | ||
a4a151e6 AS |
342 | 2008-01-11 Andreas Schwab <schwab@suse.de> |
343 | ||
344 | * read.c (s_space): Declare `repeat' as offsetT. | |
345 | ||
50aecf8c L |
346 | 2008-01-10 H.J. Lu <hongjiu.lu@intel.com> |
347 | ||
348 | * config/tc-i386.c (match_template): Check processor support | |
349 | first. | |
350 | ||
2dbab7d5 L |
351 | 2008-01-10 H.J. Lu <hongjiu.lu@intel.com> |
352 | ||
353 | * config/tc-i386.c (match_template): Continue if processor | |
354 | doesn't match. | |
355 | ||
417c21b7 AO |
356 | 2008-01-09 Alexandre Oliva <aoliva@redhat.com> |
357 | ||
358 | * config/tc-ia64.c (ia64_convert_frag): Zero-initialize room for | |
359 | unwind personality function address. | |
360 | ||
7ddd14de BW |
361 | 2008-01-09 Bob Wilson <bob.wilson@acm.org> |
362 | ||
363 | * dwarf2dbg.c (out_sleb128): Delete. | |
364 | (size_fixed_inc_line_addr, emit_fixed_inc_line_addr): New. | |
365 | (out_fixed_inc_line_addr): Delete. | |
366 | (relax_inc_line_addr, dwarf2dbg_estimate_size_before_relax): Call new | |
367 | size_fixed_inc_line_addr if DWARF2_USE_FIXED_ADVANCE_PC is set. | |
368 | (dwarf2dbg_convert_frag): Likewise for emit_fixed_inc_line_addr. | |
369 | (process_entries): Remove calls to out_fixed_inc_line_addr. When | |
370 | DWARF2_USE_FIXED_ADVANCE_PC is set, call relax_inc_line_addr. | |
371 | * read.h (emit_expr_fix): New prototype. | |
372 | * read.c (emit_expr): Move code to emit_expr_fix and use it here. | |
373 | (emit_expr_fix): New. | |
374 | ||
45664ddb L |
375 | 2008-01-09 H.J. Lu <hongjiu.lu@intel.com> |
376 | ||
377 | * config/tc-i386.c (match_template): Check register size | |
378 | only when size of operands can be encoded the canonical way. | |
379 | ||
a7619375 L |
380 | 2008-01-08 H.J. Lu <hongjiu.lu@intel.com> |
381 | ||
382 | * config/tc-i386.c (i386_operand): Renamed to ... | |
383 | (i386_att_operand): This. | |
384 | (parse_operands): Updated. | |
385 | ||
e1d4d893 L |
386 | 2008-01-05 H.J. Lu <hongjiu.lu@intel.com> |
387 | ||
388 | * doc/c-i386.texi: Update .att_mnemonic and .intel_mnemonic. | |
389 | ||
390 | * config/tc-i386.c (set_intel_mnemonic): Set intel_mnemonic | |
391 | only. | |
392 | (md_assemble): Remove Intel mode workaround. | |
393 | (match_template): Check support for old gcc, AT&T mnemonic | |
394 | and Intel Syntax. | |
395 | (md_parse_option): Don't set intel_mnemonic to 0 for | |
396 | OPTION_MOLD_GCC. | |
397 | ||
23117009 L |
398 | 2008-01-04 H.J. Lu <hongjiu.lu@intel.com> |
399 | ||
400 | * config/tc-i386.h: Update copyright to 2008. | |
401 | ||
b0e34bfe NC |
402 | 2008-01-04 Nick Clifton <nickc@redhat.com> |
403 | ||
404 | * config/tc-ppc.c (parse_cpu): Preserve the settings of the | |
405 | PPC_OPCODE_ALTIVEC and PPC_OPCODE_SPE flags. | |
406 | ||
aacd03c3 L |
407 | 2008-01-03 H.J. Lu <hongjiu.lu@intel.com> |
408 | ||
409 | * config/tc-i386.c (md_assemble): Use !intel_mnemonic instead | |
410 | of SYSV386_COMPAT. | |
411 | ||
3629bb00 L |
412 | 2008-01-03 H.J. Lu <hongjiu.lu@intel.com> |
413 | ||
414 | * gas/config/tc-i386.c (cpu_arch_flags_not): Removed. | |
415 | (cpu_flags_not): Likewise. | |
416 | (cpu_flags_match): Updated to check 64bit and arch. | |
417 | (set_code_flag): Remove cpu_arch_flags_not. | |
418 | (set_16bit_gcc_code_flag): Likewise. | |
419 | (set_cpu_arch): Likewise. | |
420 | (md_begin): Likewise. | |
421 | (parse_insn): Call cpu_flags_match to check 64bit and arch. | |
422 | (match_template): Likewise. | |
423 | ||
5dd15031 JJ |
424 | 2008-01-03 Jakub Jelinek <jakub@redhat.com> |
425 | ||
426 | * config/tc-i386.c (process_drex): Initialize modrm_reg and | |
427 | modrm_regmem to 0 instead of None. | |
428 | ||
24995bd6 L |
429 | 2008-01-03 H.J. Lu <hongjiu.lu@intel.com> |
430 | ||
431 | * config/tc-i386.c (match_template): Use the xmmword field | |
432 | instead of no_xsuf. | |
433 | ||
fc4adea1 L |
434 | 2008-01-02 H.J. Lu <hongjiu.lu@intel.com> |
435 | ||
436 | * config/tc-i386.c (process_suffix): Fix a typo. | |
437 | ||
582d5edd L |
438 | 2008-01-02 H.J. Lu <hongjiu.lu@intel.com> |
439 | ||
440 | PR gas/5534 | |
441 | * config/tc-i386.c (match_template): Handle XMMWORD_MNEM_SUFFIX. | |
442 | Check memory size in Intel mode. | |
443 | (process_suffix): Handle XMMWORD_MNEM_SUFFIX. | |
444 | (intel_e09): Likewise. | |
445 | ||
446 | * config/tc-i386.h (XMMWORD_MNEM_SUFFIX): New. | |
447 | ||
e7c604dd CM |
448 | 2008-01-02 Catherine Moore <clm@codesourcery.com> |
449 | ||
450 | * config/tc-mips.c (mips_ip): Check operands on jalr instruction. | |
451 | ||
6c7ac64e | 452 | For older changes see ChangeLog-2007 |
08d56133 NC |
453 | \f |
454 | Local Variables: | |
455 | mode: change-log | |
456 | left-margin: 8 | |
457 | fill-column: 74 | |
458 | version-control: never | |
459 | End: |