1 2011-09-21 David S. Miller <davem@davemloft.net>
3 * config/tc-sparc.c (hwcap_seen): New bitmask, defined when
5 (sparc_ip): When not TE_SOLARIS, accumulate hwcap bits from
6 sparc_opcode->flags of instruction into hwcap_seen.
7 (sparc_md_end): Create Tag_GNU_Sparc_HWCAPS attribute if
8 hwcap_seen is non-zero and not TE_SOLARIS.
10 2011-09-19 Tristan Gingold <gingold@adacore.com>
12 * config/tc-alpha.c (insert_operand): Call as_bad_value_out_of_range
13 instead of as_warn_out_of_range.
15 2011-09-08 Mark Fortescue <mark@mtfhpc.demon.co.uk>
17 * config/tc-sparc.c (sparc_ip): Handle 'i' + r<0..31>
18 in addition to 'i' + [goli]<0..7>.
20 2011-09-08 Joern Rennecke <joern.rennecke@embecosm.com>
22 * cgen.c (gas_cgen_pcrel_r_type): New function.
23 (gas_cgen_tc_gen_reloc): Check for GAS_CGEN_PCREL_R_TYPE.
24 * cgen.h (gas_cgen_pcrel_r_type): Declare.
26 2011-09-08 Richard Sandiford <rdsandiford@googlemail.com>
29 * dwarf2dbg.c (dwarf2_flush_pending_lines): Use symbol_temp_new_now.
31 2011-09-05 Richard Sandiford <rdsandiford@googlemail.com>
34 * dwarf2dbg.c (pending_lines, pending_lines_tail): New variables.
35 (dwarf2_gen_line_info_1): Delete.
36 (dwarf2_push_line, dwarf2_flush_pending_lines): New functions.
37 (dwarf2_gen_line_info, dwarf2_emit_label): Use them.
38 (dwarf2_consume_line_info): Call dwarf2_flush_pending_lines.
39 (dwarf2_directive_loc): Push previous .locs instead of generating
42 2011-08-26 Nick Clifton <nickc@redhat.com>
44 * po/es.po: Updated Spanish translation.
46 2011-08-26 Tristan Gingold <gingold@adacore.com>
48 * config/tc-alpha.c (s_alpha_linkage): Simplify. Add comments.
50 2011-08-26 Tristan Gingold <gingold@adacore.com>
52 * config/tc-alpha.c (add_to_link_pool): Improve comment.
53 (s_alpha_fp_save): Fix indentation.
55 2011-08-19 Nick Clifton <nickc@redhat.com>
57 * doc/as.texinfo: Include c-xstormy16.texi.
59 2011-08-18 Alan Modra <amodra@gmail.com>
61 * write.c (resolve_reloc_expr_symbols): Convert local symbols
62 on relocs to section+offset.
63 (get_frag_for_reloc): New function.
64 (write_relocs): Merge sort fixup relocs with those from .reloc
67 2011-08-10 Maciej W. Rozycki <macro@codesourcery.com>
69 * config/tc-mips.c (can_swap_branch_p): Update the comment on
72 2011-08-09 Chao-ying Fu <fu@mips.com>
73 Daniel Jacobowitz <dan@codesourcery.com>
75 * config/tc-mips.c (mips_cpu_info_table): Add "m14k" and
77 * doc/c-mips.texi (MIPS architecture options): Add "m14k" and
78 "m14kc" to the list of -march options.
80 2011-08-09 Chao-ying Fu <fu@mips.com>
81 Maciej W. Rozycki <macro@codesourcery.com>
83 * config/tc-mips.c (mips_set_options): Add ase_mcu.
84 (mips_opts): Initialise ase_mcu to -1.
85 (ISA_SUPPORTS_MCU_ASE): New macro.
86 (MIPS_CPU_ASE_MCU): Likewise.
87 (is_opcode_valid): Handle MCU.
88 (macro_build, macro): Likewise.
89 (validate_mips_insn, validate_micromips_insn): Likewise.
91 (options): Add OPTION_MCU and OPTION_NO_MCU.
92 (md_longopts): Add mmcu and mno-mcu.
93 (md_parse_option): Handle OPTION_MCU and OPTION_NO_MCU.
94 (mips_after_parse_args): Handle MCU.
95 (s_mipsset): Likewise.
96 (md_show_usage): Handle MCU options.
98 * doc/as.texinfo: Document -mmcu and -mno-mcu options.
99 * doc/c-mips.texi: Likewise, and document ".set mcu" and
100 ".set nomcu" directives.
102 2011-08-09 Maciej W. Rozycki <macro@codesourcery.com>
104 * config/tc-mips.c (gpr_mod_mask): Remove INSN2_MOD_GPR_MB,
105 INSN2_MOD_GPR_MC, INSN2_MOD_GPR_ME, INSN2_MOD_GPR_MG,
106 INSN2_MOD_GPR_MHI, INSN2_MOD_GPR_MJ, INSN2_MOD_GPR_MM,
107 INSN2_MOD_GPR_MN, INSN2_MOD_GPR_MP and INSN2_MOD_GPR_MQ opcode
109 (gpr_read_mask): Add INSN2_READ_GPR_MC, INSN2_READ_GPR_ME
110 INSN2_READ_GPR_MG, INSN2_READ_GPR_MJ, INSN2_READ_GPR_MMN,
111 INSN2_READ_GPR_MP and INSN2_READ_GPR_MQ opcode register use
113 (gpr_write_mask): Replace INSN2_WRITE_GPR_S opcode register
114 use flag with INSN_WRITE_GPR_S. Add INSN2_WRITE_GPR_MB,
115 INSN2_WRITE_GPR_MHI, INSN2_WRITE_GPR_MJ and INSN2_WRITE_GPR_MP
116 opcode register use checks.
117 (can_swap_branch_p): Enable microMIPS branch swapping.
118 (append_insn): Likewise.
120 2011-08-09 Maciej W. Rozycki <macro@codesourcery.com>
122 * config/tc-mips.c (RELAX_MICROMIPS_ENCODE): Remove forced 16-bit
123 branch size information.
124 (RELAX_MICROMIPS_U16BIT): Remove macro.
125 (RELAX_MICROMIPS_UNCOND): Adjust accordingly.
126 (RELAX_MICROMIPS_COMPACT, RELAX_MICROMIPS_LINK): Likewise.
127 (RELAX_MICROMIPS_RELAX32): Likewise.
128 (RELAX_MICROMIPS_TOOFAR16): Likewise.
129 (RELAX_MICROMIPS_MARK_TOOFAR16): Likewise.
130 (RELAX_MICROMIPS_CLEAR_TOOFAR16): Likewise.
131 (RELAX_MICROMIPS_TOOFAR32): Likewise.
132 (RELAX_MICROMIPS_MARK_TOOFAR32): Likewise.
133 (RELAX_MICROMIPS_CLEAR_TOOFAR32): Likewise.
134 (append_insn): Always check forced_insn_length for microMIPS
135 relaxation. Adjust code for the removal of
136 RELAX_MICROMIPS_U16BIT.
137 (mips_ip) <'D', 'E'>: If forced_insn_length, then emit the
138 relocation straight away.
139 (relaxed_micromips_16bit_branch_length): Adjust code for the
140 removal of RELAX_MICROMIPS_U16BIT.
142 2011-08-08 Tristan Gingold <gingold@adacore.com>
144 * config/obj-macho.c (obj_mach_o_section): New function.
145 (struct known_section): New type.
146 (known_sections): Declare.
147 (obj_mach_o_known_section): New function.
148 (obj_mach_o_common_parse): Ditto.
149 (obj_mach_o_comm): Ditto.
150 (obj_mach_o_subsections_via_symbols): Ditto.
151 (mach_o_pseudo_table): Add new pseudos.
153 2011-08-06 Richard Henderson <rth@redhat.com>
155 * dw2gencfi.c (all_fde_data): Export.
156 * dw2gencfi.h (all_fde_data): Declare.
157 * config/tc-alpha.c (alpha_elf_md_end): Don't convert legacy unwind
158 info to cfi unwind info if the user already has supplied some.
160 2011-08-06 Richard Sandiford <rdsandiford@googlemail.com>
162 * config/tc-mips.c (emit_nop): Delete.
163 (get_delay_slot_nop): New function.
164 (nops_for_insn_or_target): Use it.
165 (append_insn): Likewise. When avoiding hazards, call add_fixed_insn
166 and insert_into_history directly.
168 2011-08-06 Richard Sandiford <rdsandiford@googlemail.com>
170 * config/tc-mips.c (delayed_branch_p, compact_branch_p)
171 (uncond_branch_p, branch_likely_p): New functions.
172 (insns_between, nops_for_insn_or_target, append_insn)
173 (macro_start): Use them.
174 (get_append_method): Likewise. Remove redundant test.
176 2011-08-05 David S. Miller <davem@davemloft.net>
178 * config/tc-sparc.c (v9a_asr_table): Add "cps".
179 (sparc_ip): Handle '4', '5' and '(' format codes.
181 2011-08-04 H.J. Lu <hongjiu.lu@intel.com>
184 * output-file.c (output_file_close): Call bfd_cache_close_all
187 * write.c (write_object_file): Revert the last change.
189 2011-08-04 Alan Modra <amodra@gmail.com>
191 * write.c (write_object_file): Call set_symtab even if we had
194 2011-08-04 Tristan Gingold <gingold@adacore.com>
196 * config/obj-elf.c (obj_elf_section): Do not free name.
198 2011-08-03 James Greenhalgh <james.greenhalgh@arm.com>
200 * config/tc-arm.c (do_t_strexbh): New.
201 (insns): Update accordingly.
203 2011-08-01 H.J. Lu <hongjiu.lu@intel.com>
206 * config/tc-i386.c (handle_quad): Removed.
207 (md_pseudo_table): Remove "quad".
208 (tc_gen_reloc): Don't check BFD_RELOC_64 for disallow_64bit_reloc.
209 (x86_dwarf2_addr_size): New.
211 * config/tc-i386.h (x86_dwarf2_addr_size): New.
212 (DWARF2_ADDR_SIZE): Likewise.
214 2011-08-01 Nick Clifton <nickc@redhat.com>
217 * config/tc-arm.c (literal_pool): Add locs field.
218 (add_to_lit_pool): Initialise the locs entry for the new literal.
219 (s_ltorg): Generate a DWARF2 line number entry for each emitted
222 2011-08-01 Tristan Gingold <gingold@adacore.com>
224 * write.c (write_relocs): Fix -Wshadow in DEBUG3 and DEBUG4.
226 2011-08-01 Tristan Gingold <gingold@adacore.com>
228 * frags.c (frag_grow): Simplify the code.
230 2011-07-30 Richard Sandiford <rdsandiford@googlemail.com>
232 * config/tc-mips.c (nops_for_vr4130): Revert previous commit.
234 2011-07-29 Maciej W. Rozycki <macro@codesourcery.com>
236 * config/tc-mips.c: Adjust comments throughout.
237 (reglist_lookup): Reshape code.
238 (jmp_reloc_p, jalr_reloc_p): Reformat.
239 (got16_reloc_p, hi16_reloc_p, lo16_reloc_p): Handle microMIPS
241 (gpr_mod_mask): Remove unused variable.
242 (gpr_read_mask, gpr_write_mask): Reshape code.
243 (fpr_read_mask, fpr_write_mask): Likewise.
244 (nops_for_vr4130): Ensure non-microMIPS mode.
245 (can_swap_branch_p): Correct pinfo2 reference. Reshape code.
246 (append_insn): Skip Loongson 2F workaround in MIPS16 mode. Use
247 the outermost operator of a compound relocation to determines
248 the relocated field. Fix formatting.
249 (md_convert_frag): Reshape code.
251 2011-07-29 Tristan Gingold <gingold@adacore.com>
253 * frags.c (frag_var_init): New function.
254 (frag_var): Call frag_var_init to initialize.
255 (frag_variant): Ditto.
257 2011-07-27 Nathan Sidwell <nathan@codesourcery.com>
259 * dwarf2dbg.c (out_debug_line): Ignore non-normal segments, with a
261 * doc/as.texinfo (Offset): Document .offset directive.
263 2011-07-27 Tristan Gingold <gingold@adacore.com>
265 * frags.c (frag_grow): Revert previous patch.
267 2011-07-26 Kazuhiro Inaoka <kazuhiro.inaoka.ud@renesas.com>
269 * config/tc-rx.c (md_convert_frag): Fix encoding of beq.a
270 synthetic instruction.
272 2011-07-25 Tristan Gingold <gingold@adacore.com>
274 * frags.c (frag_grow): Simplify the code.
276 2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
277 Chao-ying Fu <fu@mips.com>
278 Richard Sandiford <rdsandiford@googlemail.com>
280 * config/tc-mips.h (mips_segment_info): Add one bit for
282 (TC_LABEL_IS_LOCAL): New macro.
283 (mips_label_is_local): New prototype.
284 * config/tc-mips.c (S0, S7): New macros.
285 (emit_branch_likely_macro): New variable.
286 (mips_set_options): Add micromips.
287 (mips_opts): Initialise micromips to -1.
288 (file_ase_micromips): New variable.
289 (CPU_HAS_MICROMIPS): New macro.
290 (hilo_interlocks): Set for microMIPS too.
291 (gpr_interlocks): Likewise.
292 (cop_interlocks): Likewise.
293 (cop_mem_interlocks): Likewise.
294 (HAVE_CODE_COMPRESSION): New macro.
295 (micromips_op_hash): New variable.
296 (micromips_nop16_insn, micromips_nop32_insn): New variables.
297 (NOP_INSN): Handle microMIPS ASE.
298 (mips32_to_micromips_reg_b_map): New macro.
299 (mips32_to_micromips_reg_c_map): Likewise.
300 (mips32_to_micromips_reg_d_map): Likewise.
301 (mips32_to_micromips_reg_e_map): Likewise.
302 (mips32_to_micromips_reg_f_map): Likewise.
303 (mips32_to_micromips_reg_g_map): Likewise.
304 (mips32_to_micromips_reg_l_map): Likewise.
305 (mips32_to_micromips_reg_n_map): Likewise.
306 (mips32_to_micromips_reg_h_map): New variable.
307 (mips32_to_micromips_reg_m_map): Likewise.
308 (mips32_to_micromips_reg_q_map): Likewise.
309 (micromips_to_32_reg_h_map): New variable.
310 (micromips_to_32_reg_i_map): Likewise.
311 (micromips_to_32_reg_m_map): Likewise.
312 (micromips_to_32_reg_q_map): Likewise.
313 (micromips_to_32_reg_b_map): New macro.
314 (micromips_to_32_reg_c_map): Likewise.
315 (micromips_to_32_reg_d_map): Likewise.
316 (micromips_to_32_reg_e_map): Likewise.
317 (micromips_to_32_reg_f_map): Likewise.
318 (micromips_to_32_reg_g_map): Likewise.
319 (micromips_to_32_reg_l_map): Likewise.
320 (micromips_to_32_reg_n_map): Likewise.
321 (micromips_imm_b_map, micromips_imm_c_map): New macros.
322 (RELAX_DELAY_SLOT_16BIT): New macro.
323 (RELAX_DELAY_SLOT_SIZE_FIRST): Likewise.
324 (RELAX_DELAY_SLOT_SIZE_SECOND): Likewise.
325 (RELAX_MICROMIPS_ENCODE, RELAX_MICROMIPS_P): New macros.
326 (RELAX_MICROMIPS_TYPE, RELAX_MICROMIPS_AT): Likewise.
327 (RELAX_MICROMIPS_U16BIT, RELAX_MICROMIPS_UNCOND): Likewise.
328 (RELAX_MICROMIPS_COMPACT, RELAX_MICROMIPS_LINK): Likewise.
329 (RELAX_MICROMIPS_RELAX32, RELAX_MICROMIPS_TOOFAR16): Likewise.
330 (RELAX_MICROMIPS_MARK_TOOFAR16): Likewise.
331 (RELAX_MICROMIPS_CLEAR_TOOFAR16): Likewise.
332 (RELAX_MICROMIPS_TOOFAR32): Likewise.
333 (RELAX_MICROMIPS_MARK_TOOFAR32): Likewise.
334 (RELAX_MICROMIPS_CLEAR_TOOFAR32): Likewise.
335 (INSERT_OPERAND, EXTRACT_OPERAND): Handle microMIPS ASE.
336 (mips_macro_warning): Add delay_slot_16bit_p, delay_slot_32bit_p,
338 (mips_mark_labels): New function.
339 (mips16_small, mips16_ext): Remove variables, replacing with...
340 (forced_insn_size): ... this.
341 (append_insn, mips16_ip): Update accordingly.
342 (micromips_insn_length): New function.
343 (insn_length): Return the length of microMIPS instructions.
344 (mips_record_mips16_mode): Rename to...
345 (mips_record_compressed_mode): ... this. Handle microMIPS ASE.
346 (install_insn): Handle microMIPS ASE.
347 (reglist_lookup): New function.
348 (is_size_valid, is_delay_slot_valid): Likewise.
349 (md_begin): Handle microMIPS ASE.
350 (md_assemble): Likewise. Update for append_insn interface change.
351 (micromips_reloc_p): New function.
352 (got16_reloc_p): Handle microMIPS ASE.
353 (hi16_reloc_p): Likewise.
354 (lo16_reloc_p): Likewise.
355 (jmp_reloc_p): New function.
356 (jalr_reloc_p): Likewise.
357 (matching_lo_reloc): Handle microMIPS ASE.
358 (insn_uses_reg, reg_needs_delay): Likewise.
359 (mips_move_labels): Likewise.
360 (mips16_mark_labels): Rename to...
361 (mips_compressed_mark_labels): ... this. Handle microMIPS ASE.
362 (gpr_mod_mask): New function.
363 (gpr_read_mask, gpr_write_mask): Handle microMIPS ASE.
364 (fpr_read_mask, fpr_write_mask): Likewise.
365 (insns_between, nops_for_vr4130, nops_for_insn): Likewise.
366 (fix_loongson2f_nop, fix_loongson2f_jump): Likewise.
367 (MICROMIPS_LABEL_CHAR): New macro.
368 (micromips_target_label, micromips_target_name): New variables.
369 (micromips_label_name, micromips_label_expr): New functions.
370 (micromips_label_inc, micromips_add_label): Likewise.
371 (mips_label_is_local): Likewise.
372 (micromips_map_reloc): Likewise.
373 (can_swap_branch_p): Handle microMIPS ASE.
374 (append_insn): Add expansionp argument. Handle microMIPS ASE.
375 (start_noreorder, end_noreorder): Handle microMIPS ASE.
376 (macro_start, macro_warning, macro_end): Likewise.
377 (brk_fmt, cop12_fmt, jalr_fmt, lui_fmt): New variables.
378 (mem12_fmt, mfhl_fmt, shft_fmt, trap_fmt): Likewise.
379 (BRK_FMT, COP12_FMT, JALR_FMT, LUI_FMT): New macros.
380 (MEM12_FMT, MFHL_FMT, SHFT_FMT, TRAP_FMT): Likewise.
381 (macro_build): Handle microMIPS ASE. Update for append_insn
383 (mips16_macro_build): Update for append_insn interface change.
384 (macro_build_jalr): Handle microMIPS ASE.
385 (macro_build_lui): Likewise. Simplify.
386 (load_register): Handle microMIPS ASE.
387 (load_address): Likewise.
388 (move_register): Likewise.
389 (macro_build_branch_likely): New function.
390 (macro_build_branch_ccl): Likewise.
391 (macro_build_branch_rs): Likewise.
392 (macro_build_branch_rsrt): Likewise.
393 (macro): Handle microMIPS ASE.
394 (validate_micromips_insn): New function.
395 (expr_const_in_range): Likewise.
396 (mips_ip): Handle microMIPS ASE.
397 (options): Add OPTION_MICROMIPS and OPTION_NO_MICROMIPS.
398 (md_longopts): Add mmicromips and mno-micromips.
399 (md_parse_option): Handle OPTION_MICROMIPS and
401 (mips_after_parse_args): Handle microMIPS ASE.
402 (md_pcrel_from): Handle microMIPS relocations.
403 (mips_force_relocation): Likewise.
404 (md_apply_fix): Likewise.
405 (mips_align): Handle microMIPS ASE.
406 (s_mipsset): Likewise.
407 (s_cpload, s_cpsetup, s_cpreturn): Use relocation wrappers.
408 (s_dtprel_internal): Likewise.
409 (s_gpword, s_gpdword): Likewise.
410 (s_insn): Handle microMIPS ASE.
411 (s_mips_stab): Likewise.
412 (relaxed_micromips_32bit_branch_length): New function.
413 (relaxed_micromips_16bit_branch_length): New function.
414 (md_estimate_size_before_relax): Handle microMIPS ASE.
415 (mips_fix_adjustable): Likewise.
416 (tc_gen_reloc): Handle microMIPS relocations.
417 (mips_relax_frag): Handle microMIPS ASE.
418 (md_convert_frag): Likewise.
419 (mips_frob_file_after_relocs): Likewise.
420 (mips_elf_final_processing): Likewise.
421 (mips_nop_opcode): Likewise.
422 (mips_handle_align): Likewise.
423 (md_show_usage): Handle microMIPS options.
424 * symbols.c (TC_LABEL_IS_LOCAL): New macro.
425 (S_IS_LOCAL): Add a TC_LABEL_IS_LOCAL check.
427 * doc/as.texinfo (Target MIPS options): Add -mmicromips and
429 (-mmicromips, -mno-micromips): New options.
430 * doc/c-mips.texi (-mmicromips, -mno-micromips): New options.
431 (MIPS ISA): Document .set micromips and .set nomicromips.
432 (MIPS insn): Update for microMIPS support.
434 2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
436 * config/tc-mips.c (mips_ip): Make a copy of the instruction's
437 mnemonic and use it for further processing.
439 2011-07-24 Maciej W. Rozycki <macro@codesourcery.com>
441 * config/tc-mips.c (can_swap_branch_p): Adjust for the rename of
442 INSN_TRAP to INSN_NO_DELAY_SLOT. Remove the check for INSN_SYNC
443 as well as explicit checks for ERET and DERET when scheduling
446 2011-07-22 H.J. Lu <hongjiu.lu@intel.com>
448 * config/tc-i386.c (cpu_arch): Add k1om.
449 (i386_align_code): Handle PROCESSOR_K1OM.
450 (check_cpu_arch_compatible): Check EM_K1OM.
451 (i386_arch): Handle Intel K1OM.
452 (i386_mach): Return bfd_mach_k1om for Intel K1OM.
453 (i386_target_format): Return ELF_TARGET_K1OM_FORMAT for Intel
456 * config/tc-i386.h (ELF_TARGET_K1OM_FORMAT): New.
457 (processor_type): Add PROCESSOR_K1OM.
459 * doc/c-i386.texi: Document k1om.
461 2011-07-18 H.J. Lu <hongjiu.lu@intel.com>
463 * doc/c-i386.texi: Fix a typo.
465 2011-07-06 Aurelien Jarno <aurelien@aurel32.net>
467 * config/tc-mips.c (append_insn): delete prev_pinfo2 and pinfo2.
469 2011-07-04 Richard Sandiford <rdsandiford@googlemail.com>
471 * config/tc-mips.c (gpr_read_mask, gpr_write_mask): Fix handling
474 2011-07-04 Maciej W. Rozycki <macro@codesourcery.com>
476 * config/tc-mips.c (append_insn): Make sure DWARF-2 location
477 information is properly adjusted for branches that get swapped.
479 2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
480 Thomas Schwinge <thomas@schwinge.name>
483 * config/obj-elf.c (obj_elf_type): Use ELFOSABI_GNU name instead of
484 ELFOSABI_LINUX alias.
485 * config/tc-ia64.c: Likewise.
487 2011-06-30 Paul Carroll <pcarroll@codesourcery.com>
489 * config/tc-arm.c (do_t_add_sub): Only allow LSL shifts of less
490 than 4 in Thumb mode.
492 2011-06-30 Nick Clifton <nickc@redhat.com>
495 * config/tc-arm.c (BAD_RANGE): New error message define.
496 (md_apply_fix): Use it.
497 Fix range check for thumb branch instructions.
499 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
501 * config/tc-mips.c (append_method): New enum.
502 (can_swap_branch_p, get_append_method): New functions.
503 (append_insn): Use get_append_method to decide how the instruction
506 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
508 * config/tc-mips.c (append_insn): Remove bogus goto.
510 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
512 * config/tc-mips.c (append_insn): Always clear the history after an
513 unconditional branch.
515 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
517 * config/tc-mips.c (find_altered_mips16_opcode): New function.
518 (append_insn): Use it.
520 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
522 * config/tc-mips.c (insn_uses_reg): Delete.
523 (gpr_read_mask, gpr_write_mask): New functions.
524 (fpr_read_mask, fpr_write_mask): Likewise.
525 (insns_between, nops_for_vr4130, append_insn): Use them.
527 2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
529 * config/tc-mips.c (md_mips_end): Call mips_emit_delays.
531 2011-06-29 Dave Martin <dave.martin@linaro.org>
534 * config/tc-arm.c (mapping_state): When changing to ARM or THUMB
535 state set the minimum required alignment of the section.
537 2011-06-29 Tristan Gingold <gingold@adacore.com>
539 * config/tc-i386.c (i386_mach): Convert to ISO-C.
540 (md_begin, pe_directive_secrel, md_estimate_size_before_relax): Ditto.
541 (md_convert_frag, md_apply_fix, md_undefined_symbol): Ditto.
542 (md_section_align, tc_gen_reloc): Ditto.
544 2011-06-28 Tristan Gingold <gingold@adacore.com>
546 * config/tc-alpha.c (s_alpha_pdesc): Fix indentation. Do not
549 2011-06-28 Tristan Gingold <gingold@adacore.com>
551 * config/tc-alpha.c (load_expression): Use alloca instead of xmalloc.
552 (emit_jsrjmp): Ditto.
553 (tc_gen_reloc): Ditto.
555 2011-06-28 Tristan Gingold <gingold@adacore.com>
557 * config/tc-alpha.c (alpha_evax_proc_hash): Remove.
558 (alpha_evax_proc_data): New variable.
559 (s_alpha_ent): Prevent nested function. Remove has_insert call.
560 (s_alpha_pdesc): Do not call demand_empty_rest_of_line in case of
561 error. Do not search in the hash table. Check if match with .ent.
562 (s_alpha_name): Remove unused variable.
563 (md_begin): Remove initialization of alpha_evax_proc_hash.
565 2011-06-27 Tristan Gingold <gingold@adacore.com>
567 * config/tc-alpha.c (add_to_link_pool): Remove basesym parameter.
568 Locally declare basesym. Add comments. Do not set literal_pool_size.
569 (load_expression): Adjust call to add_to_link_pool.
570 (s_alpha_pdesc): Define pdesc symbol using dot.
571 Do not set literal_pool_size.
572 (s_alpha_end): Use NULL instead of 0.
574 2011-06-27 Tristan Gingold <gingold@adacore.com>
576 * config/obj-evax.c (evax_frob_file_before_adjust): Add comments.
578 * config/obj-evax.h (struct alpha_linkage_fixups): Remove seg
580 (obj_symbol_type, object_headers, OBJ_SYMFIELD_TYPE): Remove
582 2011-06-26 Richard Sandiford <rdsandiford@googlemail.com>
584 * config/tc-mips.c (fix_24k_record_store_info): If the previous
585 instruction was a store, and the next instructions are unknown,
588 2011-06-25 Richard Sandiford <rdsandiford@googlemail.com>
591 * config/tc-mips.c (nops_for_vr4130, nops_for_24k, nops_for_insn)
592 (nops_for_sequence, nops_for_insn_or_target): Add ignore parameters.
593 (mips_emit_delays, start_noreorder): Update accordingly.
594 (append_insn): Likewise. Revert original fix for this PR
595 and use the ignore parameter instead.
597 2011-06-24 Tristan Gingold <gingold@adacore.com>
600 * config/obj-evax.c (evax_frob_symbol): Use as_bad instead of abort.
602 2011-06-24 Tristan Gingold <gingold@adacore.com>
604 * config/tc-alpha.c (add_to_link_pool): Remove useless offset
607 2011-06-23 Richard Sandiford <rdsandiford@googlemail.com>
610 * config/tc-mips.c (append_insn): Only consider hazards between the
611 pre-noreorder block and ip.
613 2011-06-21 Sameera Deshpande <sameera.deshpande@arm.com>
615 * config/tc-arm.c (vfp_conv): Add check on range of immediate operand
616 in vcvt instruction between floating-point and fixed-point.
617 (operand_parse_code): Add "OP_oI32z".
618 (parse_operands): OP_oI32z case added.
620 2011-06-20 H.J. Lu <hongjiu.lu@intel.com>
622 * configure.tgt: Revert x32 change.
624 2011-06-20 Nick Clifton <nickc@redhat.com>
626 * doc/Makefile.am: (CPU_DOCS): Add c-xstormy16.texi.
627 * doc/Makefile.in: Regenerate.
628 * doc/all.texi: Set XSTORMY16.
629 * doc/c-xstormy16.texi: New file.
631 2011-06-19 H.J. Lu <hongjiu.lu@intel.com>
633 * configure.tgt: Support x32.
635 2011-06-15 Nick Clifton <nickc@redhat.com>
637 * NEWS: Mention addition of TILEPRO and TIKE-Gx support.
639 2011-06-14 Tristan Gingold <gingold@adacore.com>
641 * config/tc-ppc.h (struct ppc_tc_sy): Complete comment on within.
642 (tc_new_dot_label): Define.
643 (ppc_new_dot_label): Declare.
644 * config/tc-ppc.c (ppc_frob_label): Set within target field.
645 (ppc_fix_adjustable): Use this field to adjust the reloc.
646 (ppc_new_dot_label): New function.
648 2011-06-14 Alan Modra <amodra@gmail.com>
650 * po/POTFILES.in: Regenerate.
652 2011-06-13 Walter Lee <walt@tilera.com>
654 * Makefile.am (TARGET_CPU_CFILES): Add config/tc-tilegx.c and
656 (TARGET_CPU_HFILES): Add config/tc-tilegx.h and
658 * Makefile.in: Regenerate.
659 * configure.tgt (tilepro-*-*): New.
660 (tilegx-*-*): Likewise.
661 * config/tc-tilegx.c: New file.
662 * config/tc-tilegx.h: Likewise.
663 * config/tc-tilepro.h: Likewise.
664 * config/tc-tilepro.c: Likewise.
665 * doc/Makefile.am (CPU_DOCS): Add c-tilegx.texi and
667 * doc/Makefile.in: Regenerate.
668 * doc/all.texi (TILEGX): Define.
670 * doc/as.texinfo: Add Tile-Gx and TILEPro documentation. Include
671 c-tilegx.texi and c-tilepro.texi.
672 * doc/c-tilegx.texi: New.
673 * doc/c-tilepro.texi: New.
675 2011-06-13 Nick Clifton <nickc@redhat.com>
678 * config/tc-arm.c (do_shift): Do not allow shift operations at the
679 end of a register based shift insn.
680 (do_t_shift): Likewise.
682 2011-06-13 Nick Clifton <nickc@redhat.com>
684 * config/tc-score.c (s3_my_get_expression): Delete unused local
686 (s3_do_ldst_insn): Delete unused local variable 'strbak'.
687 (s3_do16_ldst_insn): Delete unused local variable 'temp'.
688 (s3_do_macro_bcmp): Zero inst_expand array.
689 (s3_do_macro_bcmpz): Likewise.
690 (s3_s_score_end): Delete unused local variable 'dot'.
691 (s3_gen_reloc): Delete unused local variables 'f', 's', and 'e'.
692 * config/tc-score7.c (s7_my_get_expression): Delete unused local
694 (s7_do_ldst_insn): Delete unused local variable 'strbak'.
695 (s7_b32_relax_to_b16): Delete unused local variables 'r_old' and
697 (s7_s_score_end): Delete unused local variable 'dot'.
698 (s7_relax_frag): Delete unused local variable 'relax_size'.
699 (s7_gen_reloc): Delete unused local variables 'f', 's', and 'e'.
701 2011-06-10 H.J. Lu <hongjiu.lu@intel.com>
703 AVX Programming Reference (June, 2011)
704 * config/tc-i386.c (i386_error): Add invalid_vsib_address and
705 unsupported_vector_index_register.
706 (cpu_arch): Add .avx2, .bmi2, .lzcnt and .invpcid.
707 (check_VecOperands): New.
708 (match_template): Call check_VecOperands. Handle
709 invalid_vsib_address and unsupported_vector_index_register.
710 (build_modrm_byte): Support VecSIB. Check register-only source
711 operand when two source operands are swapped.
712 (i386_index_check): Allow Xmm/Ymm index registers.
714 * doc/c-i386.texi: Document avx2/.avx2, bmi2/.bmi2, lzcnt/.lzcnt
715 and invpcid./invpcid.
717 2011-06-09 Nick Clifton <nickc@redhat.com>
720 * config/tc-cr16.c (tc_gen_reloc): Remove unused local variable
722 (check_cinv_options): Remove unused local variables. Make
724 (md_assemble): Remove unused local variable.
726 2011-06-09 James Greenhalgh <james.greenhalgh@arm.com>
728 * config/tc-arm.c (do_ldrd): Warn in unpredictable cases.
730 2011-06-03 Arnaud Patard <arnaud.patard@rtp-net.org>
733 * config/tc-arm.c (parse_psr): Set m_profile to false when
734 assembling for any architecture.
736 2011-06-02 Jie Zhang jie@codesourcery.com
737 Nathan Sidwell nathan@codesourcery.com
739 * config/tc-arm.c (parse_address_main): Handle -0 offsets.
740 (encode_arm_addr_mode_2): Set default sign of zero here ...
741 (encode_arm_addr_mode_3): ... and here.
742 (encode_arm_cp_address): ... and here.
743 (md_apply_fix): Use default sign of zero here.
745 2011-06-02 Nick Clifton <nickc@redhat.com>
747 * as.c: Fix spelling typo.
749 * config/tc-ppc.c: Likewise.
750 * po/gas.pit: Regenerate.
752 2011-05-31 Paul Brook <paul@codesourcery.com>
754 * config/tc-arm.c (arm_cpus): Add Cortex-R5.
755 (arm_extensions): Allow idiv on ARMv7-R.
756 * doc/c-arm.text: Update idiv extension restrictions.
758 2011-05-31 Paul Brook <paul@codesourcery.com>
760 * config/tc-arm.c (arm_force_relocation): Resolve all pc-relative
763 2011-05-31 Paul Brook <paul@codesourcery.com>
765 * config/tc-arm.c (do_t_branch): Avoid relaxing branches to constant
768 2011-05-31 Paul Brook <paul@codesourcery.com>
769 Nathan Sidwell <nathan@codesourcery.com>
771 * config/tc-arm.c (fix_new_arm): Create an absolute symbol for
772 pc-relative fixes to constants.
773 * config/tc-arm.h (TC_FORCE_RELOCATATION_ABS): Define.
775 2011-05-27 Nick Clifton <nickc@redhat.com>
777 * config/tc-s390.c (md_begin): Remove unused variable dup_insn.
779 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
781 * config/tc-s390.c (md_gather_operands): Fix check for floating
782 register pair operands.
784 2011-05-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
786 * config/tc-s390.c (md_gather_operands): Emit an error for odd
787 numbered registers used as register pair operand.
789 2011-05-23 Nick Clifton <nickc@redhat.com>
791 * config/tc-v850.h (TC_FX_SIZE_SLACK): Define.
793 2011-05-20 Bernd Schmidt <bernds@codesourcery.com>
795 * config/tc-tic6x.c (tic6x_operators): Add "pcr_offset".
796 (tic6x_parse_name): Handle it.
797 (tic6x_fix_new_exp): Handle O_pcr_offset.
798 (tic6x_fix_adjustable): Return 0 for the new relocs.
799 (md_apply_fix): Handle them.
800 (tc_gen_reloc): Likewise.
801 * config/tc-tic6x.h (tic6x_fix_info): Add a fix_subsy member.
803 2011-05-18 Nick Clifton <nickc@redhat.com>
806 * config/tc-tic30.c (ordinal_names): Allow translation of the
809 2011-05-18 Nick Clifton <nickc@redhat.com>
811 * config/tc-arm.c (s_unreq): Reword warning message to make it
813 * config/tc-ia64.c (md_show_usage): Add note for translators.
814 * configure.in (ALL_LINGUAS): Add "fi".
815 * configure: Regenerate.
817 2011-05-18 Tristan Gingold <gingold@adacore.com>
819 * config/tc-ppc.h (ppc_tc_sy): Reorder fields.
820 Put size into an union with dw.
821 (OBJ_COPY_SYMBOL_ATTRIBUTES): Adjust.
822 (ppc_xcoff_end): Declare.
824 * config/tc-ppc.c: Add includes for xcoff.
825 (ppc_dwsect): New function.
826 (md_pseudo_table): Add dwsect.
827 (struct dw_subsection): New.
829 (ppc_change_debug_section): New function.
830 (ppc_xcoff_end): Ditto.
831 (ppc_function): Adjust for ppc_tc_sy.
832 (ppc_symbol_new_hook): Ditto.
833 (ppc_frob_symbol): Ditto.
834 (ppc_frob_section): Do not set vma for debug sections.
835 (ppc_fix_adjustable): Return true for debug sections.
836 * config/obj-coff.c: Add includes for xcoff.
837 (coff_frob_section): Handle dwarf section.
839 2011-05-17 Nick Clifton <nickc@redhat.com>
841 * po/fi.po: New Finnish translation.
842 * po/fr.po: Updated French translation.
844 * config/tc-m32r.c (md_show_usage): Fix typos in descriptions.
845 * config/tc-mt.c (md_assemble): Fix typos in warning messages.
846 * cond.c (s_else): Fix typos in error messages.
847 * config/tc-pj.c (md_assemble): Fix typo in error message.
849 2011-05-16 Hans-Peter Nilsson <hp@axis.com>
851 * config/tc-cris.c (md_parse_option) <OPTION_PIC>: Error if not
853 (md_show_usage): Only mention --pic if the assembler can generate
855 * doc/c-cris.texi (CRIS-Opt): Mention that generating ELF is a
856 prerequisite for --pic being a valid option.
858 2011-05-13 Frederic Marchal <fmarchal@perso.be>
861 * config/tc-v850.c (parse_register_list): Correct error string.
863 2011-05-12 Quentin Neill <quentin.neill@amd.com>
865 * config/tc-i386.c (cpu_arch): Rename PROCESSOR_BDVER1 to PROCESSOR_BD.
866 (i386_align_code): Ditto
868 2011-05-12 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
871 * config/tc-arm.c (parse_big_immediate): Fix parsing of 64-bit
872 immediates on 32-bit hosts.
874 2011-05-10 Quentin Neill <quentin.neill@amd.com>
876 * config/tc-i386.c (cpu_arch): Add bdver2 and rename
877 PROCESSOR_BDVER1 to PROCESSOR_BDVER.
878 (i386_align_code): Rename PROCESSOR_BDVER1.
879 (processor_type): Ditto.
880 * doc/c-i386.texi: Add bdver2.
882 2011-05-10 Alan Modra <amodra@gmail.com>
884 * dw2gencfi.c (tc_cfi_endproc): Avoid "set but not used" error.
886 2011-05-09 Paul Brook <paul@codesourcery.com>
888 * config/tc-tic6x.c (streq): Define.
889 (tic6x_get_unwind): New.
890 (s_tic6x_cantunwind, s_tic6x_handlerdata, s_tic6x_endp,
891 s_tic6x_personalityindex, s_tic6x_personality): New functions.
892 (md_pseudo_table): Add "endp", "handlerdata", "personalityindex",
893 "personality" and "cantunwind".
894 (tic6x_regname_to_dw2regnum, tic6x_frame_initial_instructions,
895 tic6x_start_unwind_section, tic6x_unwind_frame_regs,
896 tic6x_pop_rts_offset_little, tic6x_pop_rts_offset_big,
897 tic6x_unwind_reg_from_dwarf, tic6x_flush_unwind_word,
898 tic6x_unwind_byte, tic6x_unwind_2byte, tic6x_unwind_uleb,
899 tic6x_cfi_startproc, output_exidx_entry, tic6x_output_unwinding,
900 tic6x_cfi_endproc): New.
901 * config/tc-tic6x.h (TIC6X_NUM_UNWIND_REGS): Define.
902 (tic6x_unwind_info): New.
903 (tic6x_segment_info_type): Add marked_pr_dependency, unwind and
905 (TARGET_USE_CFIPOP, tc_regname_to_dw2regnum,
906 tc_cfi_frame_initial_instructions, DWARF2_DEFAULT_RETURN_COLUMN,
907 DWARF2_CIE_DATA_ALIGNMENT, tc_cfi_startproc, tc_cfi_endproc,
908 tc_cfi_section_name): Define.
909 * doc/c-tic6x.texi: Document new unwinding directives.
910 * dw2gencfi.c (tc_cfi_startproc, tc_cfi_endproc): Add default
912 (cfi_insn_data, fde_entry, CFI_adjust_cfa_offset, CFI_return_column,
913 CFI_rel_offset, CFI_escape, CFI_signal_frame, CFI_val_encoded_addr):
915 (CFI_EMIT_target): Define.
916 (dot_cfi_sections): Check tc_cfi_section_name.
917 (dot_cfi_startproc): Use tc_cfi_startproc.
918 (dot_cfi_endproc): Use tc_cfi_endproc.
919 * dw2gencfi.h (cfi_insn_data, fde_entry, CFI_adjust_cfa_offset,
920 CFI_return_column, CFI_rel_offset, CFI_escape, CFI_signal_frame,
921 CFI_val_encoded_addr): Move to here from dw2gencfi.c.
923 2011-05-07 Alan Modra <amodra@gmail.com>
925 * dw2gencfi.c (CUR_SEG, SET_CUR_SEG, HANDLED, SET_HANDLED): Define.
926 Use throughout in place of #if SUPPORT_FRAME_LINKONCE.
927 (struct fde_entry): Rename cseg to cur_seg.
928 (cfi_change_reg_numbers): Remove ATTRIBUTE_UNUSED.
929 (get_cfi_seg): Likewise. Use if (SUPPORT_FRAME_LINKONCE) rather
930 that #if SUPPORT_FRAME_LINKONCE.
931 (cfi_finish): Likewise.
933 2011-05-06 Tristan Gingold <gingold@adacore.com>
935 * read.c (s_comm_internal): Remove code for OBJ_VMS.
938 * write.c (write_object_file): Ditto.
939 * symbols.c (define_sym_at_dot): Ditto.
942 2011-05-05 Alan Modra <amodra@gmail.com>
944 * dw2gencfi.c (SUPPORT_FRAME_LINKONCE): Define. Use throughout
945 file to conditionally compile code added 2011-04-26.
946 (cfi_change_reg_numbers): Add ATTRIBUTE_UNUSED on params only used
947 when SUPPORT_FRAME_LINKONCE.
948 (get_cfi_seg): Likewise. Reintroduce old code for when not
949 SUPPORT_FRAME_LINKONCE.
950 (cfi_finish): Move get_cfi_seg calls out of loop when not
951 SUPPORT_FRAME_LINKONCE. Avoid unused var warning.
953 2011-05-03 Paul Brook <paul@codesourcery.com>
955 * config/tc-tic6x.c (s_ehtype): New function.
956 (md_pseudo_table): Add "ehtype".
957 (tic6x_fix_adjustable, md_apply_fix): BFD_RELOC_C6000_EHTYPE.
958 * doc/c-tic6x.texi: Document .ehtype directive.
960 2011-04-26 Kai Tietz <ktietz@redhat.com>
962 * dw2gencfi.c (dwcfi_seg_list): New struct.
963 (dwcfi_hash): New static hash variable.
964 (get_debugseg_name): New.
965 (alloc_debugseg_item): New.
966 (make_debug_seg): New.
967 (dwcfi_hash_insert): New.
968 (dwcfi_hash_find): New.
969 (dwcfi_hash_find_or_make): New.
970 (cfi_insn_data): New member cur_seg.
971 (cie_entry): Likewise.
972 (fde_entry): New cseg and handled members.
973 (alloc_fde_entry): Initialize cseg member.
974 (alloc_cfi_insn_data): Initialize cur_seg member.
975 (dot_cfi_sections): Compare for beginning of
976 section names via strncmp.
978 (cfi_finish): Treat link-once sections.
979 (is_now_linkonce_segment): New local helper.
980 (output_cie): Ignore cie entries not member of current
982 (output_fde): Likewise.
983 (select_cie_for_fde): Likewise.
984 (cfi_change_reg_numbers): Add new argument for current segment
985 and ignore insn elements, if not part of current segment.
986 * ehopt.c (get_cie_info): Use strncmp for
987 section name matching.
988 (heck_eh_frame): Likewise.
990 2011-04-20 Catherine Moore <clm@codesourcery.com>
991 David Ung <davidu@mips.com>
993 * config/mips.c (mips_cl_insn): Add new field complete_p.
994 (create_insn): Initialize complete_p to zero.
996 (fix_24k_align_to): New.
997 (fix_24k_store_info): Declare.
999 (fix_24k_record_store_info): New.
1000 (nops_for_24k): New.
1001 (nops_for_insn): Call nops_for_24k.
1002 (append_insn): Move O_constant expression handling.
1004 2011-04-20 Alan Modra <amodra@gmail.com>
1006 * hash.c (set_gas_hash_table_size): Use bfd_hash_set_default_size.
1007 (hash_new_sized): New function, split out from..
1010 2011-04-19 Nick Clifton <nickc@redhat.com>
1012 * config/tc-arm.c (v7m_psrs): Revert previous delta.
1014 2011-04-18 Julian Brown <julian@codesourcery.com>
1015 Nick Clifton <nickc@redhat.com>
1017 * config/tc-arm.c (parse_psr): Use selected_cpu not cpu_variant to
1018 detect M-profile targets.
1019 (do_t_swi): Exclude v7 and higher variants from arm_ext_os test.
1020 (v7m_psrs): Fix typo: basepri_max should be basepri_mask.
1022 2011-04-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1024 * config/tc-s390.c (s390_machine): New prototype.
1025 (md_pseudo_table): New pseudo-op .machine.
1026 (s390_opcode_hash): Initialize to NULL.
1027 (s390_parse_cpu): New function.
1028 (md_parse_option): Use s390_parse_cpu.
1029 (s390_setup_opcodes): New function.
1030 (md_begin): Use s390_setup_opcodes.
1031 (s390_machine): New hook handling the new .machine pseudo.
1033 * doc/c-s390.texi: Document the new pseudo op .machine.
1035 2011-04-12 H.J. Lu <hongjiu.lu@intel.com>
1037 * config/tc-i386.c (i386_mach): Start error message with lower
1039 (md_begin): Likewise.
1040 (md_parse_option): Likewise.
1041 (i386_target_format): Likewise.
1042 (check_byte_reg): Likewise.
1043 (check_long_reg): Likewise.
1044 (check_qword_reg): Likewise.
1045 (check_word_reg): Likewise.
1047 2011-04-12 Nick Clifton <nickc@redhat.com>
1050 * config/tc-arm.c (relax_branch): Do not relax branches to
1051 preemptable global symbols.
1053 2011-04-11 Julian Brown <julian@codesourcery.com>
1055 * config/tc-arm.c (parse_psr): Add LHS argument. Improve support
1057 (operand_parse_code): Replace OP_PSR with OP_wPSR and OP_rPSR.
1059 (parse_operands): Likewise.
1060 (do_mrs): Tweak error message for constraint.
1061 (do_t_mrs): Update constraints for changes to APSR support.
1062 (do_t_msr): Likewise. Don't set PSR_f flag here.
1063 (psrs): Remove "g", "nzcvq", "nzcvqg".
1064 (insns): Tweak entries for msr and mrs instructions.
1066 2011-04-11 Kai Tietz <ktietz@redhat.com>
1068 * config/tc-i386.c (x86_cons): Initialize adjust with zero.
1070 2011-04-11 Nick Clifton <nickc@redhat.com>
1072 * config/tc-i386.c (x86_cons): Define even for non-ELF targets.
1073 * config/tc-i386.h (x86_cons): Always prototype.
1075 * config/tc-cr16.c (getprocregp_image): Fix type of 'r' parameter
1076 in order to avoid a compile time warning.
1077 (getprocreg_image): Likewise.
1079 2011-04-11 Alan Modra <amodra@gmail.com>
1081 * config/tc-cr16.c (getprocreg_image): Correct range check.
1082 (getprocregp_image): Likewise.
1084 2011-04-06 Joseph Myers <joseph@codesourcery.com>
1086 * configure.tgt (strongarm*be, strongarm*b, strongarm*,
1087 xscale*be|xscale*b, xscale*): Remove architectures.
1088 (thumb-*-coff, thumb-*-rtems*, thumb-*-elf, thumb-epoc-pe,
1089 thumb-*-pe, xscale-*-coff, xscale-*-elf): Remove targets.
1091 2011-04-01 Tristan Gingold <gingold@adacore.com>
1093 * config/tc-ia64.c (md_apply_fix): Add a cast to avoid a warning.
1095 2011-03-31 Bernd Schmidt <bernds@codesourcery.com>
1097 * config/tc-tic6x.c (sbss_section, scom_section, scom_symbol): New
1099 (md_begin): Initialize them.
1100 (s_tic6x_scomm): New static function.
1101 (md_pseudo_table): Add "scomm".
1102 (tc_gen_reloc): Really undo all adjustments made by
1103 bfd_install_relocation.
1104 * doc/c-tic6x.texi: Document the .scomm directive.
1106 2011-03-31 Tristan Gingold <gingold@adacore.com>
1108 * dwarf2dbg.c (DWARF2_VERSION): Define.
1109 (out_debug_line): Use it.
1110 (out_debug_aranges): Ditto.
1111 (out_debug_info): Ditto.
1112 * config/tc-ia64.h (DWARF2_VERSION): Override it.
1114 2011-03-30 Michael Snyder <msnyder@vmware.com>
1116 * obj-elf.c (obj_elf_section): Free malloced name.
1117 * macro.c (get_any_string): Free malloced br_buf.
1118 (do_formals): Free 'formal'.
1120 2011-03-30 Tristan Gingold <gingold@adacore.com>
1122 * config/tc-ppc.c (ppc_frob_symbol): Convert stsym symbols value
1123 to offset only if within is set.
1124 (ppc_stabx): Reformat. For stsym stabs, add a check and set
1125 within only for symbols.
1127 2011-03-29 Richard Henderson <rth@redhat.com>
1130 * config/tc-alpha.c (s_alpha_align): Don't auto-align a previous
1131 label; zap alpha_insn_label.
1133 2011-03-29 H.J. Lu <hongjiu.lu@intel.com>
1135 * config/tc-i386.c (handle_quad): Properly handle multiple
1138 2011-03-29 Mike Frysinger <vapier@gentoo.org>
1140 * config/bfin-parse.y (BYTEUNPACK): Return yyerror when dest
1141 reg $2 is the same as dest reg $4.
1143 2011-03-29 Mike Frysinger <vapier@gentoo.org>
1145 * config/bfin-parse.y (BYTEOP16M): Return yyerror when dest
1146 reg $2 is the same as dest reg $4.
1148 2011-03-29 Mike Frysinger <vapier@gentoo.org>
1150 * config/bfin-parse.y (BYTEOP16P): Return yyerror when dest
1151 reg $2 is the same as dest reg $4.
1153 2011-03-28 Mike Frysinger <vapier@gentoo.org>
1155 * config/bfin-parse.y (16bit acc add): Return yyerror when dest
1156 reg $1 is the same as dest reg $7.
1158 2011-03-28 H.J. Lu <hongjiu.lu@intel.com>
1160 * config/tc-i386.c (handle_quad): New.
1161 (md_pseudo_table): Add "quad".
1163 2011-03-26 John Marino <binutils@marino.st>
1165 * configure.tgt: Fix support for *-*-dragonfly*.
1166 * config/tc-i386.c: define SVR4_COMMENT_CHARS for dragonfly.
1167 * config/te-dragonfly.h: New file.
1169 2011-03-24 Eric B. Weddington <eric.weddington@atmel.com>
1171 * config/tc-avr.c (mcu_types): Add new devices: atmega325pa,
1172 atmega3250pa, atmega3290pa, atmega16hvbrevb, atmega32hvbrevb,
1174 * doc/c-avr.texi: Document new device names.
1176 2011-03-24 Mike Frysinger <vapier@gentoo.org>
1178 * config/bfin-parse.y (dual 32bit add/sub): Return yyerror when dest
1179 reg $1 is the same as dest reg $7.
1180 (quad 16bit add/sub): Return yyerror when dest reg $1 is the same as
1183 2011-03-24 Mike Frysinger <vapier@gentoo.org>
1185 * config/bfin-parse.y (check_macfuncs): Clarify error message when
1186 P is mismatched. Check destination regno are off by one when P is
1187 set, or are equal when P is not set.
1189 2011-03-23 Mike Frysinger <vapier@gentoo.org>
1191 * config/bfin-parse.y (SEARCH): Return yyerror when dest reg $2 is
1192 the same as dest reg $4.
1193 (BITMUX): Return yyerror when dest reg $3 is the same as dest reg $5.
1195 2011-03-23 Eric B. Weddington <eric.weddington@atmel.com>
1197 * config/tc-avr.c (mcu_types): Add new xmega devices: atxmega64a1u,
1198 atxmega128a1u, atxmega16x1, atxmega32x1, atxmega128b1, atxmega256a3bu.
1199 * doc/c-avr.texi: Document new device names.
1201 2011-03-22 Eric B. Weddington <eric.weddington@atmel.com>
1203 * config/tc-avr.c (struct avr_opcodes_s): Add opcode field.
1204 (AVR_INSN): Change definition to match.
1205 (avr_opcodes): Likewise, change to match.
1206 (mcu_types): Add XMEGA architecture names and new XMEGA device names.
1207 (md_show_usage): Add XMEGA architecture names.
1208 (avr_operand): Add 'E' constraint for DES instruction of XMEGA devices.
1209 Add support for SPM Z+ instruction.
1210 * doc/c-avr.texi: Add documentation for XMEGA architectures and
1213 2011-03-21 Eric B. Weddington <eric.weddington@atmel.com>
1215 * config/tc-avr.c (md_show_usage): Add "Assembler" text to output.
1217 2011-03-18 Alan Modra <amodra@gmail.com>
1219 * config/obj-elf.c (elf_frob_symbol): Report S_SET_SIZE symbol
1220 on .size expression errors rather than symbols in the size expression.
1222 2011-03-18 Alan Modra <amodra@gmail.com>
1224 * input-scrub.c (line_numberT): Delete.
1225 (input_scrub_close): Reset line counters.
1226 * messages.c (as_show_where): Don't print invalid line number.
1227 (as_warn_internal, as_bad_internal): Likewise.
1229 2011-03-18 Alan Modra <amodra@gmail.com>
1231 * read.c (read_a_source_file): Remove md_after_pass_hook.
1232 Move "quit" label before set of dot_symbol.
1233 * config/tc-d10v.h (md_after_pass_hook): Don't define.
1234 * config/tc-d30v.h (md_after_pass_hook): Likewise.
1235 * config/tc-m32r.h (md_after_pass_hook): Likewise.
1236 (md_cleanup): Define to call m32r_fill_insn.
1238 2011-03-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1240 * config/tc-s390.c (md_parse_option): Add -march=all option which
1241 switches to the highest available CPU.
1243 2011-03-17 Alan Modra <amodra@gmail.com>
1246 * expr.c (operand): Correct passing of "mode" to expr.
1247 * read.c (do_org): Allow expr_section.
1248 (get_known_segmented_expression): Don't assert anything about the
1251 2011-03-16 H.J. Lu <hongjiu.lu@intel.com>
1253 * as.c (show_usage): Add --size-check=.
1254 (parse_args): Add and handle OPTION_SIZE_CHECK.
1256 * as.h (flag_size_check): New.
1258 * config/obj-elf.c (elf_frob_symbol): Use as_bad to report
1259 bad .size directive only for --size-check=error.
1261 * doc/as.texinfo: Document --size-check=.
1263 2011-03-14 Mike Frysinger <vapier@gentoo.org>
1265 * config/tc-bfin.c (bfin_cpus[]): Add 0.4 for
1266 bf542/bf544/bf547/bf548/bf549.
1268 2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
1270 * config/tc-arm.c (md_pcrel_from_section): Use S_FORCE_RELOC to
1271 determine whether a relocation is needed.
1272 (md_apply_fix, arm_apply_sym_value): Likewise.
1274 2011-03-14 Richard Sandiford <richard.sandiford@linaro.org>
1276 * config/tc-arm.c (arm_adjust_symtab): Set the branch type
1279 2011-03-11 Nick Clifton <nickc@redhat.com>
1281 * remap.c (remap_debug_filename): Always allocate a buffer for the
1283 * stabs.c (stabs_generate_asm_file): Free the pointer returned by
1284 remap_debug_filename.
1286 2011-03-10 Michael Snyder <msnyder@vmware.com>
1288 Revert the following change:
1289 * dwarf2dbg.c (out_file_list): Free malloced 'dir'.
1290 (out_debug_info): Free malloced 'dirname' and 'comp_dir'.
1292 2011-03-10 Alan Modra <amodra@gmail.com>
1294 * gas/config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS,
1295 TARGET_SYMBOL_FIELDS): Don't define.
1296 * gas/config/tc-arc.c (arc_common): Use correct symbol "local" field.
1298 2011-03-09 Michael Snyder <msnyder@vmware.com>
1300 * dwarf2dbg.c (out_file_list): Free malloced 'dir'.
1301 (out_debug_info): Free malloced 'dirname' and 'comp_dir'.
1302 (emit_fixed_inc_line_addr): Assign instead of conditional in
1305 2011-03-05 H.J. Lu <hongjiu.lu@intel.com>
1307 * config/obj-elf.c (elf_frob_symbol): Mention symbol name in
1308 non-constant .size expression.
1310 2011-03-02 Nick Clifton <nickc@redhat.com>
1312 * ecoff.c: Incldue filenames.h
1314 2011-02-28 Kai Tietz <kai.tietz@onevision.com>
1316 * depend.c (register_dependency): Use filename_(n)cmp.
1317 * dwarf2dbg.c (get_filenum): Likewise.
1318 * ecoff.c (add_file): Likewise.
1319 (ecoff_generate_asm_lineno): Likewise.
1320 * input-scrub.c (new_logical_line_flags): Likewise.
1321 * listing.c (file_info): Likewise.
1322 (listing_newline): Likewise.
1323 * remap.c (remap_debug_filename): Likewise.
1324 * stabs.c (generate_asm_file): Likewise.
1325 (stabs_generate_asm_lineno): Likewise.
1327 2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
1329 * config/tc-mips.c (append_insn): Disable branch relaxation for
1332 2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
1334 * config/tc-mips.c (macro): Handle M_PREF_AB.
1336 2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
1338 * config/tc-mips.c (RELAX_BRANCH_ENCODE): Encode the temporary
1340 (RELAX_BRANCH_UNCOND): Adjust accordingly.
1341 (RELAX_BRANCH_LIKELY): Likewise.
1342 (RELAX_BRANCH_LINK): Likewise.
1343 (RELAX_BRANCH_TOOFAR): Likewise.
1344 (RELAX_BRANCH_AT): New macro.
1345 (append_insn): Encode the temporary register to use in standard
1346 MIPS branch relaxation.
1347 (relaxed_branch_length): Update according to changes to
1348 RELAX_BRANCH_ENCODE.
1349 (md_convert_frag): Use the encoded register as the temporary.
1351 2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
1353 * config/tc-mips.c (mips_fix_adjustable): On REL targets also
1354 reject PC-relative relocations.
1356 2011-02-28 Maciej W. Rozycki <macro@codesourcery.com>
1358 * config/tc-mips.c (md_convert_frag): Correct message
1361 2011-02-28 Alan Modra <amodra@gmail.com>
1363 * symbols.c (report_op_error): Remove unnecessary forward declaration.
1364 Add "op" parameter. Report operator and operand segments in error
1365 message, not operand symbols.
1366 (resolve_symbol_value): Always set segment for equated symbols, not
1367 just when finalizing. Adjust report_op_error calls.
1369 2011-02-25 H.J. Lu <hongjiu.lu@intel.com>
1371 * config/tc-i386.c (reloc): Don't sign-check 4-byte relocations
1372 if 64bit relocations aren't allowed.
1374 2011-02-25 Alan Modra <amodra@gmail.com>
1377 * config/obj-elf.c (elf_frob_symbol): Properly handle size expression.
1379 2011-02-21 Maciej W. Rozycki <macro@codesourcery.com>
1381 * config/tc-mips.c (mips_ip) <'o'>: Remove duplicate
1382 initialization of offset_reloc.
1384 2011-02-15 Richard Henderson <rth@redhat.com>
1386 * dw2gencfi.c (dot_cfi_dummy): New.
1387 (cfi_pseudo_table) [!TARGET_USE_CFIPOP]: New.
1388 * read.c (pobegin): Unconditionally call cfi_pop_insert.
1390 2011-02-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1392 * configure: Regenerate.
1394 2011-02-13 Mike Frysinger <vapier@gentoo.org>
1396 * config/bfin-lex.l (BYTEOP2M): Remove tokenization.
1397 * config/bfin-parse.y (BYTEOP2M): Delete token.
1398 (asm_1): Remove BYTEOP2M insn matching.
1400 2011-02-12 Mike Frysinger <vapier@gentoo.org>
1402 * config/bfin-defs.h: Include opcode/bfin.h.
1403 (M_S2RND, M_T, M_W32, M_FU, M_TFU, M_IS, M_ISS2, M_IH, M_IU): Delete.
1405 2011-02-11 Mike Frysinger <vapier@gentoo.org>
1407 * doc/c-bfin.texi (Instruction Delimiting): Fix occur typo.
1408 (Modify Registers): Fix subtracted typo.
1409 (.byte2): Extend and swap descriptions with .byte4.
1410 (.byte4): Extend and swap descriptions with .byte2.
1411 (.db, .dw, .dd): Document behavior.
1413 2011-02-11 Mike Frysinger <vapier@gentoo.org>
1415 * config/bfin-parse.y (TESTSET): Reject REG_SP and REG_FP.
1417 2011-02-11 Alan Modra <amodra@gmail.com>
1419 * doc/c-ppc.texi (PowerPC-Opts <-nops>): Clarify.
1421 2011-02-10 Alan Modra <amodra@gmail.com>
1423 * doc/as.texinfo (Overview): Add missing markup around Blackfin
1424 and PowerPC options.
1426 2011-02-10 Alan Modra <amodra@gmail.com>
1428 * config/tc-ppc.c (md_show_usage): Remove -l and -b. Add -K PIC.
1429 * doc/as.texinfo: Refer to and include c-ppc.texi for PowerPC options.
1430 (Overview <Target PowerPC options>): Add a number of missing options.
1431 * doc/c-ppc.texi: Likewise. Add markup for use in manpage generation.
1433 2011-02-08 H.J. Lu <hongjiu.lu@intel.com>
1436 * config/tc-i386.c (i386_align_code): Use f32_patt when tuning
1439 2011-02-08 H.J. Lu <hongjiu.lu@intel.com>
1441 * config/tc-i386.c (set_cpu_arch): Also update cpu_arch_isa_flags
1443 (md_parse_option): Likewise.
1445 2011-02-04 Bernd Schmidt <bernds@codesourcery.com>
1447 * doc/as.texinfo (Target TIC6X options): Don't mention "-matomic".
1448 * doc/c-tic6x.texi (TIC6X Directives): Don't mention ".atomic".
1449 (TIC6X Options): Don't mention "-matomic".
1450 * config/tc-tic6x.c (OPTION_MATOMIC, OPTION_MNO_ATOMIC): Delete.
1451 (md_longopts): Remove corresponding entries.
1452 (md_parse_option): Don't handle them.
1453 (md_show_usage): Don't document them.
1454 (tic6x_atomic): Delete variable.
1455 (tic6x_update_features): Always copy tic6x_arch_enable to
1457 (tic6x_arch_enable): Remove references to TIC6X_INSN_ATOMIC.
1458 (s_tic6x_atomic, s_tic6x_noatomic): Remove functions.
1459 (md_pseudo_table): Remove ".atomic" and ".noatomic".
1461 2011-01-31 Nick Clifton <nickc@redhat.com>
1463 * write.c (write_contents): Include output file name and bfd error
1464 value when reporting the inability to write to the output file.
1465 * config/tc-rx.c (rx_handle_align): Do not insert NOPs into align
1466 frag that has a non-zero fill value.
1468 2011-01-27 DJ Delorie <dj@redhat.com>
1470 * config/tc-rx.c (md_convert_frag): If we can't compute the target
1471 address, zero out the values stored in the object file to make
1472 objdump's output consistent.
1474 2011-01-26 Kai Tietz <kai.tietz@onevision.com>
1476 * config/tc-i386.c (md_begin): Set for x64 windows COFF target
1477 x86_dwarf2_return_column to 32.
1479 2011-01-20 Nick Clifton <nickc@redhat.com>
1482 * config/tc-h8300.c (constant_fits_width_p): Use correct type for
1485 2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
1487 * write.c (compress_debug): Return if section size is smaller
1490 2011-01-18 H.J. Lu <hongjiu.lu@intel.com>
1493 * write.c (compress_debug): Return if section size is 0.
1495 2011-01-18 Mingfeng Wu <mingfeng@faraday-tech.com>
1497 * config/tc-arm.c (arm_cpus): Add Faraday ARMv5TE compatible
1498 cores: fa606te, fa616te, fmp626. Modify the VFP of fa626te.
1499 * doc/c-arm.texi (ARM Options): Add -mcpu={fa606te, fa616te,
1502 2011-01-18 Nick Clifton <nickc@redhat.com>
1505 * doc/all.texi: Add NS32K
1506 * doc/as.texinfo: Remove target specific details of which
1507 characters act as comment initiators and statement separators into
1508 individual target specific files.
1509 * doc/c-alpha.texi (Alpha-Chars): Document special behaviour of
1510 the hash character at the start of a line.
1511 * doc/c-arm.texi (ARM-Chars): Likewise.
1512 * doc/c-avr.texi (AVR-Chars): Likewise.
1513 * doc/c-d10v.texi (D10V-Chars): Likewise.
1514 * doc/c-d30v.texi (D30V-Chars): Likewise.
1515 * doc/c-mmix.texi (MMIX-Chars): Likewise.
1516 * doc/c-s390.texi (s390 characters): Likewise.
1517 * doc/c-sh.texi (SH-Chars): Likewise.
1518 * doc/c-sh64.texi (SH64-Chars): Likewise.
1519 * doc/c-sparc.texi (SPARC-Chars): Likewise.
1520 * doc/c-tic6x.texi (TIC6X Syntax): Likewise.
1521 * doc/c-xtensa.texi (Xtensa Syntax): Likewise.
1522 * doc/c-z80.texi (Z80-Chars): Likewise.
1523 * doc/c-z8k.texi (Z8000-Chars): Likewise.
1524 * doc/c-pdp11.texi (PDP11-Syntax): Document line separator character.
1525 * doc/c-arc.texi (ARC-Chars): Fill in this subsection.
1526 * doc/c-bfin.texi (Blackfin Syntax): Document line comment and
1527 line separator characters.
1528 * doc/c-cr16.texi (CR16 Syntax): Likewise.
1529 * doc/c-i386.texi (i386-Chars): Likewise.
1530 * doc/c-i860.texi (i860-Chars): Likewise.
1531 * doc/c-i960.texi (i960-Chars): Likewise.
1532 * doc/c-ip2k.texi (IP2K-Chars): Likewise.
1533 * doc/c-lm32.texi (LM32-Chars): likewise.
1534 * doc/c-m32c.texi (M32C-Chars): Likewise.
1535 * doc/c-m68hc11.texi (M68HC11-syntax): Likewise.
1536 * doc/c-m68k.texi (M68K-Chars): Likewise.
1537 * doc/c-microblaze.texi (MicroBlaze-Chars): Likewise.
1538 * doc/c-msp430.texi (MSP430-Chars): Likewise.
1539 * doc/c-mt.texi (MT-Chars): Likewise.
1540 * doc/c-ns32k.texi (NS32K-Chars): Likewise.
1541 * doc/c-pj.texi (PJ-Chars): Likewise.
1542 * doc/c-ppc.texi (PowerPC-Chars): Likewise.
1543 * doc/c-rx.texi (RX-Chars): Likewise.
1544 * doc/c-score.texi (SCORE-Chars): Likewise.
1545 * doc/c-tic54x.texi (TIC54X-Chars): Likewise.
1546 * doc/c-v850.texi (V850-Chars): Likewise.
1547 * doc/c-vax.texi (VAX-Chars): Likewise.
1548 * doc/c-xc16x.texi (xc16x-Chars): Likewise.
1550 2011-01-17 Quentin Neill <quentin.neill@amd.com>
1552 * config/tc-i386.c (cpu_arch): Add CPU_TBM_FLAGS.
1554 * doc/c-i386.texi (i386-TBM): New section.
1556 2011-01-16 H.J. Lu <hongjiu.lu@intel.com>
1558 * config/tc-i386.c (disallow_64bit_disp): Renamed to ...
1559 (disallow_64bit_reloc): This.
1560 (md_assemble): Don't check movabs for x32 mode here.
1561 (i386_target_format): Updated.
1562 (tc_gen_reloc): Check if 64bit relocations are allowed.
1564 2011-01-15 H.J. Lu <hongjiu.lu@intel.com>
1566 * config/tc-i386.c (disallow_64bit_disp): New.
1567 (x86_elf_abi): Replace X86_64_LP64_ABI/X86_64_ILP32_ABI with
1568 X86_64_ABI/X86_64_X32_ABI.
1569 (md_assemble): Don't allow movabs with relocation in x32 mode.
1570 (i386_target_format): Updated.
1572 2011-01-14 H.J. Lu <hongjiu.lu@intel.com>
1574 * config/tc-i386.c (OPTION_N32): Renamed to ...
1576 (md_longopts): Replace n32 with x32.
1577 (md_parse_option): Updated.
1578 (md_show_usage): Likewise.
1580 * doc/c-i386.texi: Replace --n32 with --x32.
1582 2011-01-11 Mingjie Xing <mingjie.xing@gmail.com>
1584 * config/tc-mips.c (mips_ip): Update error messages. Take an
1585 unadjusted offset for "+c" argument.
1587 2011-01-10 Nick Clifton <nickc@redhat.com>
1589 * config/tc-i386.c (x86_elf_abi): Only define for targets that use
1592 2011-01-10 Nick Clifton <nickc@redhat.com>
1594 * config/tc-arm.c (s_arm_tls_desceq): Move code into ELF-only
1597 2011-01-10 Nathan Sidwell <nathan@codesourcery.com>
1598 Glauber de Oliveira Costa <glommer@gmail.com>
1600 * doc/c-arm.texi: Document TLSDESC and TLSCALL relocations, and
1601 .tlsdescseq directive.
1602 * config/tc-arm.c (arm_typed_reg_parse): Check for potential reloc
1604 (s_arm_tls_descseq): New directive.
1605 (md_pseudo_table): Add it.
1606 (encode_branch): Allow TLS_CALL relocs too.
1607 (do_t_blx, do_t_branch23): Use encode_branch.
1608 (reloc_names): Add tlsdesc and tlscall.
1609 (md_apply_fix): Process tls desc relocations.
1610 (tc_gen_reloc): Likewise.
1611 (arm_fix_adjustable): Likewise.
1613 2011-01-07 Quentin Neill <quentin.neill@amd.com>
1615 * config/tc-i386.c (cpu_arch): Add CPU_BMI_FLAGS.
1617 * doc/c-i386.texi (i386-BMI): New section.
1619 2011-01-06 Paul Koning <ni1d@arrl.net>
1621 * config/tc-pdp11.c (parse_op_no_deferred): Allow PC-relative
1622 references to absolute addresses.
1624 2011-01-05 DJ Delorie <dj@redhat.com>
1626 * config/tc-rx.c (tc_gen_reloc): Emit an RX_OP_NEG expression
1627 instead of an RH_NEG32 one.
1629 2011-01-05 Jonathan Wakely <jwakely.gcc@gmail.com>
1631 * doc/c-i386.texi: Clarify --n32.
1633 2011-01-04 H.J. Lu <hongjiu.lu@intel.com>
1635 * config/tc-i386.c (build_modrm_byte): Allow encoding 32/64bit
1636 integer registers in VEX.vvvv. Check register-only source
1637 operand when two source operands are swapped. Properly update
1638 destination when two source operands are swapped.
1640 2011-01-01 H.J. Lu <hongjiu.lu@intel.com>
1642 * gas.c (parse_args): Update copyright to 2011.
1644 For older changes see ChangeLog-2010
1650 version-control: never