3 * doc/tc-arm.texi: Fix fnstart and fnend directive names.
7 * config/tc-ppc.c (parse_cpu): Handle "e500mc". Extend "e500" to
8 accept e500mc instructions.
9 (md_show_usage): Document -me500mc.
13 * listing.c (print_timestamp): Use localtime rather than
14 localtime_r since not all build environments provide the latter.
18 * NEWS: Mention -msse-check=[none|error|warning].
20 * config/tc-i386.c (sse_check): New.
21 (OPTION_MSSE_CHECK): Likewise.
22 (md_assemble): Check SSE instructions if needed.
23 (md_longopts): Add -msse-check.
24 (md_parse_option): Handle OPTION_MSSE_CHECK.
25 (md_show_usage): Show -msse-check=[none|error|warning].
27 * doc/c-i386.texi: Document -msse-check=[none|error|warning].
31 * listing.c: Add -ag listing flag to show general information in
32 listings such as gas version, passed options, and time stamp.
33 (listing_general_info): New function.
34 (print_options): New function.
35 (print_single_option): New function.
36 (print_timestamp): New function.
37 (MAX_DATELEN): Define.
38 (listing_print): Add call to listing_general_info.
39 * listing.h (LISTING_GENERAL): Define.
40 (listing_print): Add new parameter.
41 * as.c (show_usage): Print new switch.
42 (parse_args): Parse new switch.
43 (main): Pass command line on to listing_print.
44 * NEWS: Mention this new feature.
45 * doc/as.texinfo: Document the new sub-option.
49 * dwarf2dbg.c (dwarf2_emit_insn): Simplify test before dwarf2_where
50 call. Delete out of date comment.
51 (dwarf2_consume_line_info): Always clear dwarf2_loc_directive_seen.
52 (dwarf2_emit_label): Don't emit unless there has been a previous
53 .file or we are outputting assembler generated debug.
54 dwarf2_consume_line_info after emitting line info, not before.
55 (out_debug_info): Simplify files_in_use test.
59 * config/tc-i386.c (parse_real_register): Return AVX register
60 only if AVX is enabled.
65 * config/tc-sh64.c (shmedia_md_pcrel_from_section): Use
66 md_pcrel_from_section for BFD_RELOC_64 and BFD_RELOC_64_PCREL.
71 * config/tc-xtensa.c (xg_apply_fix_value): Check return code from
76 * NEWS: Mention XSAVE. Change CLMUL to PCLMUL.
78 * config/tc-i386.c (cpu_arch): Add .pclmul.
79 (md_show_usage): Replace clmul with pclmul.
80 * doc/c-i386.texi: Likewise.
84 * NEWS: Mention AES, CLMUL, AVX/FMA and -msse2avx.
86 * doc/c-i386.texi: Add avx, aes, clmul and fma to -march=.
87 Document -msse2avx, .avx, .aes, .clmul and .fma.
89 * config/tc-i386.c (YMMWORD_MNEM_SUFFIX): New.
90 (vex_prefix): Likewise.
92 (CPU_FLAGS_ARCH_MATCH): Likewise.
93 (CPU_FLAGS_64BIT_MATCH): Likewise.
94 (CPU_FLAGS_32BIT_MATCH): Likewise.
95 (CPU_FLAGS_PERFECT_MATCH): Likewise.
98 (fits_in_imm4): Likewise.
99 (build_vex_prefix): Likewise.
100 (VEX_check_operands): Likewise.
101 (bad_implicit_operand): Likewise.
102 (OPTION_MSSE2AVX): Likewise.
103 (T_YMMWORD): Likewise.
104 (_i386_insn): Add vex.
105 (cpu_arch): Add .avx, .aes, .clmul and .fma.
106 (cpu_flags_match): Changed to take a pointer to const template.
107 Enable encoding SSE instructions with VEX prefix for -msse2avx.
108 (match_mem_size): Also check ymmword.
109 (operand_type_match): Clear ymmword.
110 (md_begin): Allow '_' in mnemonic.
111 (type_names): Add OPERAND_TYPE_VEX_IMM4.
112 (process_immext): Update assert.
113 (md_assemble): Don't call process_immext if sse2avx and immext
114 are true. Call build_vex_prefix if vex is true.
115 (parse_insn): Updated for cpu_flags_match.
116 (swap_operands): Handle 5 operands.
117 (match_template): Handle 5 operands. Updated for cpu_flags_match.
118 Check regymm. Call VEX_check_operands. Handle YMMWORD_MNEM_SUFFIX.
119 (process_suffix): Handle YMMWORD_MNEM_SUFFIX.
120 (check_byte_reg): Check regymm.
121 (process_operands): Duplicate the destination register for
123 (build_modrm_byte): Updated for instructions with VEX encoding.
124 (output_insn): Output VEX prefix if needed.
125 (md_longopts): Add msse2avx.
126 (md_parse_option): Handle OPTION_MSSE2AVX.
127 (md_show_usage): Add avx, aes, clmul, fma and -msse2avx.
128 (intel_e09): Support YMMWORD.
129 (intel_e11): Likewise.
130 (intel_get_token): Likewise.
134 * config/tc-avr.c (mcu_types): Add attiny167.
135 * doc/c-avr.texi: Likewise.
139 * config/tc-avr.c (mcu_types): Add atmega32u4.
140 * doc/c-avr.texi: Likewise.
144 * config/tc-avr.c (mcu_types): Add atmega32c1.
145 * doc/c-avr.texi: Likewise.
149 * config/tc-arm.c (parse_neon_mov): Parse register before immediate
150 to avoid spurious symbols.
154 * config/tc-m68k.c (md_convert_frag_1): Replace as_fatal with
159 * config/tc-avr.c (mcu_types): Add atmega32m1.
160 * doc/c-avr.texi: Likewise.
164 * config/tc-arm.c (do_neon_cvt): Move variable declarations to
166 (do_neon_ext): Fix sign of comparison.
171 * config/bfin-parse.y (asm_1): Check AREGS in comparison
172 instructions. And call yyerror when comparing PREG with
174 (check_macfunc_option): New.
175 (check_macfuncs): Check option by calling check_macfunc_option.
176 Fix comparison always true warnings. Both scalar instructions
177 of vector instruction must share the same mode option. Only allow
178 option mode at the end of the second instruction of the vector.
179 (asm_1): Check option by calling check_macfunc_option.
181 * config/bfin-parse.y (check_macfunc_option): Allow (IU)
182 option for multiply and multiply-accumulate to data register
184 (check_macfuncs): Don't check if accumulator matches the data register
186 (assign_macfunc): Check if accumulator matches the
187 data register in each rule that moves to the data
190 * config/tc-bfin.c (bfin_start_line_hook): Localize the labels
191 generated for LOOP_BEGIN and LOOP_END instructions.
192 (bfin_gen_loop): Likewise.
196 * config/tc-s390.c (md_parse_option): z10 option added.
200 * aclocal.m4: Regenerate.
201 * configure: Likewise.
202 * Makefile.in: Likewise.
203 * doc/Makefile.in: Likewise.
208 * config/tc-hppa.c (is_same_frag): Delete.
212 * config/tc-xtensa.h (xtensa_relax_statesE): Update comment for
213 RELAX_LOOP_END_ADD_NOP.
218 * read.c (s_mexit): Warn if attempting to exit a macro when not
219 inside a macro definition.
223 * Makefile.am: Run "make dep-am".
224 * Makefile.in: Regenerate.
225 * configure: Regenerate.
229 * config/tc-arm.c (arm_cpu_option_table): Add cortex-a9.
230 * doc/c-arm.texi: Add cortex-a9.
234 * config/tc-arm.c (fpu_vfp_ext_d32): New vairable.
235 (parse_vfp_reg_list, encode_arm_vfp_reg): Use it.
236 (arm_option_cpu_value): Add vfpv3-d16, vfpv2 and vfpv3.
237 (aeabi_set_public_attributes): Handle Tag_VFP_arch=VFPV3-D16.
238 * doc/c-arm.texi: Document new ARM FPU variants.
242 * config/tc-arm.c (md_apply_fix): Use correct offset range.
246 * config/tc-ppc.c (ppc_setup_opcodes): Tidy. Add code to test
247 for strict ordering of powerpc_opcodes, but disable for now.
251 * config/tc-arm.c (arm_ext_barrier, arm_ext_msr): New.
252 (arm_ext_v7m): Rename...
253 (arm_ext_m): ... to this. Include v6-M.
254 (do_t_add_sub): Allow narrow low-reg non flag setting adds.
255 (do_t_mrs, do_t_msr, aeabi_set_public_attributes): Use arm_ext_m.
256 (md_assemble): Allow wide msr instructions.
257 (insns): Add classifications for v6-m instructions.
258 (arm_cpu_option_table): Add cortex-m1.
259 (arm_arch_option_table): Add armv6-m.
260 (cpu_arch): Add ARM_ARCH_V6M. Fix numbering of other v6 variants.
265 * config/tc-xtensa.c (xtensa_num_pipe_stages): New.
266 (md_begin): Initialize it.
267 (resources_conflict): Use it.
271 * config/tc-xtensa.h (RELAX_XTENSA_NONE): New.
277 * read.c (pseudo_set): Don't allow global register symbol.
279 * symbols.c (S_SET_EXTERNAL): Don't allow register symbol
285 * write.c (write_object_file): Don't allow symbols which were
286 equated to register. Stop if there is an error.
290 * config/tc-ppc.h (struct _ppc_fix_extra): New.
292 (TC_FIX_TYPE, TC_INIT_FIX_DATA): Define.
293 * config/tc-ppc.c (ppu_cpu): Make global.
294 (ppc_insert_operand): Add ppu_cpu parameter.
295 (md_assemble): Adjust for above change.
296 (md_apply_fix): Pass tc_fix_data.ppc_cpu to ppc_insert_operand.
300 * config/tc-arm.c (do_bx): Only test EF_ARM_EABI_VERSION on ELF
301 targeted ARM ports, otherwise just skip generating the reloc.
305 * doc/c-i386.texi: Update -march= and .arch.
309 * config/tc-mn10300.c (has_known_symbol_location): New function.
310 Do not regard weak symbols as having a known location.
311 (md_estimate_size_before_relax): Use new function.
312 (md_pcrel_from): Do not compute a pcrel against a weak symbol.
316 * config/tc-i386.c (match_template): Disallow 'l' suffix when
317 currently selected CPU has no 32-bit support.
318 (parse_real_register): Do not return registers not available on
319 currently selected CPU.
323 * config/tc-i386.c (process_immext): Fix format.
327 * config/tc-i386.c (inoutportreg): New.
328 (process_immext): New.
329 (md_assemble): Use it.
330 (update_imm): Use imm16 and imm32s.
331 (i386_att_operand): Use inoutportreg.
335 * config/tc-i386.c (operand_type_all_zero): New.
336 (operand_type_set): Likewise.
337 (operand_type_equal): Likewise.
338 (cpu_flags_all_zero): Likewise.
339 (cpu_flags_set): Likewise.
340 (cpu_flags_equal): Likewise.
341 (UINTS_ALL_ZERO): Removed.
342 (UINTS_SET): Likewise.
343 (UINTS_CLEAR): Likewise.
344 (UINTS_EQUAL): Likewise.
345 (cpu_flags_match): Updated.
346 (smallest_imm_type): Likewise.
347 (set_cpu_arch): Likewise.
348 (md_assemble): Likewise.
349 (optimize_imm): Likewise.
350 (match_template): Likewise.
351 (process_suffix): Likewise.
352 (update_imm): Likewise.
353 (process_drex): Likewise.
354 (process_operands): Likewise.
355 (build_modrm_byte): Likewise.
356 (i386_immediate): Likewise.
357 (i386_displacement): Likewise.
358 (i386_att_operand): Likewise.
359 (parse_real_register): Likewise.
360 (md_parse_option): Likewise.
361 (i386_target_format): Likewise.
366 * config/tc-arm.c (s_arm_unwind_save): Advance the input line
367 pointer past the comma after parsing a floating point register
373 * config/tc-avr.c (mcu_types): Change the ISA tyoe of the attiny26
375 (avr_operand): Disallow post-increment addressing in the lpm
376 instruction for the attiny26.
380 * config/tc-i386.c (parse_real_register): Don't return 'FLAT'
381 if not in Intel mode.
382 (i386_intel_operand): Ignore segment overrides in immediate and
384 (intel_e11): Range-check i.mem_operands before use as array
385 index. Filter out FLAT for uses other than as segment override.
386 (intel_get_token): Remove broken promotion of "FLAT:" to mean
391 * config/tc-i386.c (intel_e09): Also special-case 'bound'.
395 * config/tc-i386.c (allow_pseudo_reg): New.
396 (parse_real_register): Check for NULL just once. Allow all
397 register table entries when allow_pseudo_reg is non-zero.
398 Don't allow any registers without type when allow_pseudo_reg
400 (tc_x86_regname_to_dw2regnum): Replace with ...
401 (tc_x86_parse_to_dw2regnum): ... this.
402 (tc_x86_frame_initial_instructions): Adjust for above change.
403 * config/tc-i386.h (tc_regname_to_dw2regnum): Remove.
404 (tc_parse_to_dw2regnum): New.
405 (tc_x86_regname_to_dw2regnum): Replace with ...
406 (tc_x86_parse_to_dw2regnum): ... this.
407 * dw2gencfi.c (tc_parse_to_dw2regnum): New, broken out of ...
408 (cfi_parse_reg): ... this. Use tc_parse_to_dw2regnum. Adjust
413 * config/tc-tic4x.c (tic4x_insn_insert): Add const qualifier to
415 (tic4x_insn_add): Likewise.
416 (md_begin): Drop cast that was discarding a const qualifier.
417 * config/tc-d30v.c (get_reloc): Add const qualifier to op
419 (build_insn): Drop cast that was discarding a const qualifier.
423 * config/tc-i386.c (cpu_arch): Add .xsave.
424 (md_show_usage): Add .xsave.
426 * doc/c-i386.texi: Add xsave to -march=.
430 * read.c (s_weakref): Don't pass unadorned NULL to concat.
431 * config/tc-i386.c (set_cpu_arch, md_parse_option): Likewise.
435 * config/tc-xtensa.c (relax_frag_immed): Change internal consistency
436 checks into assertions. When relaxation produces an operation that
437 does not fit in the current FLIX instruction, make sure that the
438 operation is relaxed as needed to account for being placed following
439 the current instruction.
444 * configure: Regenerated.
448 * config/tc-mips.c (mips_cpu_info_table): Add Octeon.
452 * configure.tgt (xtensa*-*-*): Recognize processor variants.
456 * read.c: (emit_expr): Correct for mingw use of printf size
461 * doc/c-xtensa.texi (Xtensa Syntax): Clarify handling of opcodes that
462 can only be encoded in FLIX instructions but are not specified as such.
463 (Xtensa Automatic Alignment): Remove obsolete comment about debugging
468 * NEWS: Mention new command line options for x86 targets.
472 * config/tc-i386.c (md_show_usage): Replace tabs with spaces.
476 * config/tc-avr.c (mcu_types): Change opcode set for at86rf401.
480 * config/tc-i386.c (md_show_usage): Show more processors for
485 * config/tc-i386.c (i386_target_format): Remove cpummx2.
489 * config/tc-i386.c (XXX_PREFIX): Moved from tc-i386.h.
490 (XXX_MNEM_SUFFIX): Likewise.
491 (END_OF_INSN): Likewise.
492 (templates): Likewise.
493 (modrm_byte): Likewise.
494 (rex_byte): Likewise.
495 (DREX_XXX): Likewise.
496 (drex_byte): Likewise.
497 (sib_byte): Likewise.
498 (processor_type): Likewise.
499 (arch_entry): Likewise.
500 (cpu_sub_arch_name): Remove const.
501 (cpu_arch): Add .vmx and .smx.
502 (set_cpu_arch): Append cpu_sub_arch_name.
503 (md_parse_option): Support -march=CPU[,+EXTENSION...].
504 (md_show_usage): Updated.
506 * config/tc-i386.h (XXX_PREFIX): Moved to tc-i386.c.
507 (XXX_MNEM_SUFFIX): Likewise.
508 (END_OF_INSN): Likewise.
509 (templates): Likewise.
510 (modrm_byte): Likewise.
511 (rex_byte): Likewise.
512 (DREX_XXX): Likewise.
513 (drex_byte): Likewise.
514 (sib_byte): Likewise.
515 (processor_type): Likewise.
516 (arch_entry): Likewise.
518 * doc/as.texinfo: Update i386 -march option.
520 * doc/c-i386.texi: Update -march= for ISA.
524 * config/tc-xtensa.c (xtensa_leb128): New function.
525 (md_pseudo_table): Use it for sleb128 and uleb128.
526 (is_leb128_expr): New internal flag.
527 (xtensa_symbol_new_hook): Check new flag.
531 * config/tc-avr.c (mcu_types): Change opcode set for avr3,
532 at90usb82, at90usb162.
533 * doc/c-avr.texi: Change architecture grouping for at90usb82,
535 These changes support the new avr35 architecture group in gcc.
539 * config/tc-i386.c (md_assemble): Also zap movzx and movsx
540 suffix for AT&T syntax.
544 * config/tc-i386.c (match_reg_size): New.
545 (match_mem_size): Likewise.
546 (operand_size_match): Likewise.
547 (operand_type_match): Also clear all size fields.
548 (match_template): Skip Intel syntax when in AT&T syntax.
549 Call operand_size_match to check operand size.
550 (i386_att_operand): Set the mem field to 1 for memory
552 (i386_intel_operand): Likewise.
557 * config/tc-i386.c (_i386_insn): Update comment.
558 (operand_type_match): Also clear unspecified.
559 (operand_type_register_match): Likewise.
560 (parse_operands): Initialize unspecified.
561 (i386_intel_operand): Likewise.
562 (match_template): Check memory and accumulator operand size.
563 (i386_att_operand): Clear unspecified on register operand.
564 (intel_e11): Likewise.
565 (intel_e09): Set operand size and clean unspecified for
570 * read.c (s_space): Declare `repeat' as offsetT.
574 * config/tc-i386.c (match_template): Check processor support
579 * config/tc-i386.c (match_template): Continue if processor
584 * config/tc-ia64.c (ia64_convert_frag): Zero-initialize room for
585 unwind personality function address.
589 * dwarf2dbg.c (out_sleb128): Delete.
590 (size_fixed_inc_line_addr, emit_fixed_inc_line_addr): New.
591 (out_fixed_inc_line_addr): Delete.
592 (relax_inc_line_addr, dwarf2dbg_estimate_size_before_relax): Call new
593 size_fixed_inc_line_addr if DWARF2_USE_FIXED_ADVANCE_PC is set.
594 (dwarf2dbg_convert_frag): Likewise for emit_fixed_inc_line_addr.
595 (process_entries): Remove calls to out_fixed_inc_line_addr. When
596 DWARF2_USE_FIXED_ADVANCE_PC is set, call relax_inc_line_addr.
597 * read.h (emit_expr_fix): New prototype.
598 * read.c (emit_expr): Move code to emit_expr_fix and use it here.
599 (emit_expr_fix): New.
603 * config/tc-i386.c (match_template): Check register size
604 only when size of operands can be encoded the canonical way.
608 * config/tc-i386.c (i386_operand): Renamed to ...
609 (i386_att_operand): This.
610 (parse_operands): Updated.
614 * doc/c-i386.texi: Update .att_mnemonic and .intel_mnemonic.
616 * config/tc-i386.c (set_intel_mnemonic): Set intel_mnemonic
618 (md_assemble): Remove Intel mode workaround.
619 (match_template): Check support for old gcc, AT&T mnemonic
621 (md_parse_option): Don't set intel_mnemonic to 0 for
626 * config/tc-i386.h: Update copyright to 2008.
630 * config/tc-ppc.c (parse_cpu): Preserve the settings of the
631 PPC_OPCODE_ALTIVEC and PPC_OPCODE_SPE flags.
635 * config/tc-i386.c (md_assemble): Use !intel_mnemonic instead
640 * gas/config/tc-i386.c (cpu_arch_flags_not): Removed.
641 (cpu_flags_not): Likewise.
642 (cpu_flags_match): Updated to check 64bit and arch.
643 (set_code_flag): Remove cpu_arch_flags_not.
644 (set_16bit_gcc_code_flag): Likewise.
645 (set_cpu_arch): Likewise.
646 (md_begin): Likewise.
647 (parse_insn): Call cpu_flags_match to check 64bit and arch.
648 (match_template): Likewise.
652 * config/tc-i386.c (process_drex): Initialize modrm_reg and
653 modrm_regmem to 0 instead of None.
657 * config/tc-i386.c (match_template): Use the xmmword field
662 * config/tc-i386.c (process_suffix): Fix a typo.
667 * config/tc-i386.c (match_template): Handle XMMWORD_MNEM_SUFFIX.
668 Check memory size in Intel mode.
669 (process_suffix): Handle XMMWORD_MNEM_SUFFIX.
670 (intel_e09): Likewise.
672 * config/tc-i386.h (XMMWORD_MNEM_SUFFIX): New.
676 * config/tc-mips.c (mips_ip): Check operands on jalr instruction.
678 For older changes see ChangeLog-2007
684 version-control: never