+2013-08-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (match_int_operand): Use mips_int_operand_min
+ and mips_int_operand_max.
+ (mips16_immed_operand, mips16_immed_operands, MIPS16_NUM_IMMED):
+ Delete.
+ (mips16_immed_operand, mips16_immed_in_range_p): New functions.
+ (mips16_immed, mips16_extended_frag): Use them. Use mips_int_operand
+ instead of mips16_immed_operand.
+
+2013-08-03 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (mips16_macro): Don't use move_register.
+ (mips16_ip): Allow macros to use 'p'.
+
+2013-08-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (MAX_OPERANDS): New macro.
+ (mips_operand_array): New structure.
+ (mips_operands, mips16_operands, micromips_operands): New arrays.
+ (micromips_to_32_reg_b_map, micromips_to_32_reg_c_map)
+ (micromips_to_32_reg_e_map, micromips_to_32_reg_f_map)
+ (micromips_to_32_reg_g_map, micromips_to_32_reg_l_map)
+ (micromips_to_32_reg_q_map): Delete.
+ (insn_operands, insn_opno, insn_extract_operand): New functions.
+ (validate_mips_insn): Take a mips_operand_array as argument and
+ use it to build up a list of operands. Extend to handle INSN_MACRO
+ and MIPS16.
+ (validate_mips16_insn): New function.
+ (validate_micromips_insn): Take a mips_operand_array as argument.
+ Handle INSN_MACRO.
+ (md_begin): Initialize mips_operands, mips16_operands and
+ micromips_operands. Call validate_mips_insn and
+ validate_micromips_insn for macro instructions too.
+ Call validate_mips16_insn for MIPS16 instructions.
+ (insn_read_mask, insn_write_mask, operand_reg_mask, insn_reg_mask):
+ New functions.
+ (gpr_read_mask, gpr_write_mask, fpr_read_mask, fpr_write_mask): Use
+ them. Handle INSN_UDI.
+ (get_append_method): Use gpr_read_mask.
+
+2013-08-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (compact_branch_p, uncond_branch_p): Use the same
+ flags for MIPS16 and non-MIPS16 instructions.
+ (gpr_mod_mask): Move the INSN2_MOD_SP case outside the micromips block.
+ (gpr_read_mask): Use INSN2_READ_GPR_31 for MIPS16 instructions too.
+ (gpr_write_mask): Remove MIPS16_INSN_WRITE_SP handling.
+ (can_swap_branch_p, get_append_method): Use the same flags for MIPS16
+ and non-MIPS16 instructions. Fix formatting.
+
+2013-08-01 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (reg_needs_delay): Move later in file.
+ Use gpr_write_mask.
+ (insns_between): Use gpr_read_mask instead of EXTRACT_OPERAND.
+
+2013-07-26 Sergey Guriev <sergey.s.guriev@intel.com>
+ Alexander Ivchenko <alexander.ivchenko@intel.com>
+ Maxim Kuznetsov <maxim.kuznetsov@intel.com>
+ Sergey Lega <sergey.s.lega@intel.com>
+ Anna Tikhonova <anna.tikhonova@intel.com>
+ Ilya Tocar <ilya.tocar@intel.com>
+ Andrey Turetskiy <andrey.turetskiy@intel.com>
+ Ilya Verbin <ilya.verbin@intel.com>
+ Kirill Yukhin <kirill.yukhin@intel.com>
+ Michael Zolotukhin <michael.v.zolotukhin@intel.com>
+
+ * config/tc-i386-intel.c (O_zmmword_ptr): New.
+ (i386_types): Add zmmword.
+ (i386_intel_simplify_register): Allow regzmm.
+ (i386_intel_simplify): Handle zmmwords.
+ (i386_intel_operand): Handle RC/SAE, vector operations and
+ zmmwords.
+ * config/tc-i386.c (ZMMWORD_MNEM_SUFFIX): New.
+ (struct RC_Operation): New.
+ (struct Mask_Operation): New.
+ (struct Broadcast_Operation): New.
+ (vex_prefix): Size of bytes increased to 4 to support EVEX
+ encoding.
+ (enum i386_error): Add new error codes: unsupported_broadcast,
+ broadcast_not_on_src_operand, broadcast_needed,
+ unsupported_masking, mask_not_on_destination, no_default_mask,
+ unsupported_rc_sae, rc_sae_operand_not_last_imm,
+ invalid_register_operand, try_vector_disp8.
+ (struct _i386_insn): Add new fields vrex, need_vrex, mask,
+ rounding, broadcast, memshift.
+ (struct RC_name): New.
+ (RC_NamesTable): New.
+ (evexlig): New.
+ (evexwig): New.
+ (extra_symbol_chars): Add '{'.
+ (cpu_arch): Add AVX512F, AVX512CD, AVX512ER and AVX512PF.
+ (i386_operand_type): Add regzmm, regmask and vec_disp8.
+ (match_mem_size): Handle zmmwords.
+ (operand_type_match): Handle zmm-registers.
+ (mode_from_disp_size): Handle vec_disp8.
+ (fits_in_vec_disp8): New.
+ (md_begin): Handle {} properly.
+ (type_names): Add "rZMM", "Mask reg" and "Vector d8".
+ (build_vex_prefix): Handle vrex.
+ (build_evex_prefix): New.
+ (process_immext): Adjust to properly handle EVEX.
+ (md_assemble): Add EVEX encoding support.
+ (swap_2_operands): Correctly handle operands with masking,
+ broadcasting or RC/SAE.
+ (check_VecOperands): Support EVEX features.
+ (VEX_check_operands): Properly handle 16 upper [xyz]mm registers.
+ (match_template): Support regzmm and handle new error codes.
+ (process_suffix): Handle zmmwords and zmm-registers.
+ (check_byte_reg): Extend to zmm-registers.
+ (process_operands): Extend to zmm-registers.
+ (build_modrm_byte): Handle EVEX.
+ (output_insn): Adjust to properly handle EVEX case.
+ (disp_size): Handle vec_disp8.
+ (output_disp): Support compressed disp8*N evex feature.
+ (output_imm): Handle RC/SAE immediates properly.
+ (check_VecOperations): New.
+ (i386_immediate): Handle EVEX features.
+ (i386_index_check): Handle zmmwords and zmm-registers.
+ (RC_SAE_immediate): New.
+ (i386_att_operand): Handle EVEX features.
+ (parse_real_register): Add a check for ZMM/Mask registers.
+ (OPTION_MEVEXLIG): New.
+ (OPTION_MEVEXWIG): New.
+ (md_longopts): Add mevexlig and mevexwig.
+ (md_parse_option): Handle mevexlig and mevexwig options.
+ (md_show_usage): Add description for mevexlig and mevexwig.
+ * doc/c-i386.texi: Document avx512f/.avx512f, avx512cd/.avx512cd,
+ avx512er/.avx512er, avx512pf/.avx512pf, mevexlig and mevexwig.
+
+2013-07-25 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
+
+ * config/tc-i386.c (cpu_arch): Add .sha.
+ * doc/c-i386.texi: Document sha/.sha.
+
+2013-07-24 Anna Tikhonova <anna.tikhonova@intel.com>
+ Kirill Yukhin <kirill.yukhin@intel.com>
+ Michael Zolotukhin <michael.v.zolotukhin@intel.com>
+
+ * config/tc-i386.c (BND_PREFIX): New.
+ (struct _i386_insn): Add new field bnd_prefix.
+ (add_bnd_prefix): New.
+ (cpu_arch): Add MPX.
+ (i386_operand_type): Add regbnd.
+ (md_assemble): Handle BND prefixes.
+ (parse_insn): Likewise.
+ (output_branch): Likewise.
+ (output_jump): Likewise.
+ (build_modrm_byte): Handle regbnd.
+ (OPTION_MADD_BND_PREFIX): New.
+ (md_longopts): Add entry for 'madd-bnd-prefix'.
+ (md_parse_option): Handle madd-bnd-prefix option.
+ (md_show_usage): Add description for madd-bnd-prefix
+ option.
+ * doc/c-i386.texi: Document mpx/.mpx and -madd-bnd-prefix.
+
+2013-07-24 Tristan Gingold <gingold@adacore.com>
+
+ * config/tc-ppc.c (md_apply_fix): Adjust BFD_RELOC_PPC_B16 on
+ xcoff targets.
+
+2013-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
+
+ * config/tc-s390.c (s390_machine): Don't force the .machine
+ argument to lower case.
+
+2013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * config/tc-arm.c (s_arm_arch_extension): Improve error message
+ for invalid extension.
+
+2013-07-19 Yufeng Zhang <yufeng.zhang@arm.com>
+
+ * config/tc-aarch64.c (enum aarch64_abi_type): New enumeration tag.
+ (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
+ (aarch64_abi): New variable.
+ (ilp32_p): Change to be a macro.
+ (aarch64_opts): Remove the support for option -milp32 and -mlp64.
+ (struct aarch64_option_abi_value_table): New struct.
+ (aarch64_abis): New table.
+ (aarch64_parse_abi): New function.
+ (aarch64_long_opts): Add entry for -mabi=.
+ * doc/as.texinfo (Target AArch64 options): Document -mabi.
+ * doc/c-aarch64.texi: Likewise.
+
+2013-07-18 Jim Thomas <thomas@cfht.hawaii.edu>
+
+ * config/tc-i386-intel.c (i386_intel_operand): Fixed signed vs
+ unsigned comparison.
+
+2013-07-18 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
+
+ * config/rx-defs.h: Add macros for RX100, RX200, RX600, and
+ RX610.
+ * config/rx-parse.y: (rx_check_float_support): Add function to
+ check floating point operation support for target RX100 and
+ RX200.
+ * config/tc-rx.c: Add CPU options RX100, RX200, RX600, and RX610.
+ * doc/c-rx.texi: Add -mcpu option to recognize macros for RX100,
+ RX200, RX600, and RX610
+
+2013-07-18 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ * config/tc-avr.c (md_show_usage): Add avrxmega2 to help text
+
+2013-07-18 Vishnu K.S <vishnu.k_s@atmel.com>
+
+ * config/tc-avr.c: Make ata6289's ISA to AVR_ISA_AVR4.
+ * doc/c-avr.texi: Likewise.
+
+2013-07-15 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (match_save_restore_list_operand): Avoid -Wformat
+ error with older GCCs.
+ (mips16_macro_build): Dereference args.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (mips_prefer_vec_regno, mips_parse_register):
+ New functions, split out from...
+ (reg_lookup): ...here. Remove itbl support.
+ (reglist_lookup): Delete.
+ (mips_operand_token_type): New enum.
+ (mips_operand_token): New structure.
+ (mips_operand_tokens): New variable.
+ (mips_add_token, mips_parse_base_start, mips_parse_argument_token)
+ (mips_parse_arguments): New functions.
+ (md_begin): Initialize mips_operand_tokens.
+ (mips_arg_info): Add a token field. Remove optional_reg field.
+ (match_char, match_expression): New functions.
+ (match_const_int): Use match_expression. Remove "s" argument
+ and return a boolean result. Remove O_register handling.
+ (match_regno, match_reg, match_reg_range): New functions.
+ (match_int_operand, match_mapped_int_operand, match_msb_operand)
+ (match_reg_operand, match_reg_pair_operand, match_perf_reg_operand)
+ (match_addiusp_operand, match_clo_clz_dest_operand)
+ (match_lwm_swm_list_operand, match_entry_exit_operand)
+ (match_save_restore_list_operand, match_mdmx_imm_reg_operand)
+ (match_tied_reg_operand): Remove "s" argument and return a boolean
+ result. Match tokens rather than text. Update calls to
+ match_const_int. Rely on match_regno to call check_regno.
+ (match_pcrel_operand, match_pc_operand): Replace "s" argument with
+ "arg" argument. Return a boolean result.
+ (parse_float_constant): Replace with...
+ (match_float_constant): ...this new function.
+ (match_operand): Remove "s" argument and return a boolean result.
+ Update calls to subfunctions.
+ (mips_ip, mips16_ip): Call mips_parse_arguments. Use match routines
+ rather than string-parsing routines. Update handling of optional
+ registers for token scheme.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (parse_float_constant): Split out from...
+ (mips_ip): ...here.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (INSERT_BITS, INSERT_OPERAND, MIPS16_INSERT_OPERAND):
+ Delete.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (mips32_to_16_reg_map): Delete.
+ (match_entry_exit_operand): New function.
+ (match_save_restore_list_operand): Likewise.
+ (match_operand): Use them.
+ (check_absolute_expr): Delete.
+ (mips16_ip): Rewrite main parsing loop to use mips_operands.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c: Enable functions commented out in previous patch.
+ (SKIP_SPACE_TABS): Move further up file.
+ (mips32_to_micromips_reg_b_map, mips32_to_micromips_reg_c_map)
+ (mips32_to_micromips_reg_d_map, mips32_to_micromips_reg_e_map)
+ (ips32_to_micromips_reg_f_map, mips32_to_micromips_reg_g_map)
+ (mips32_to_micromips_reg_l_map, mips32_to_micromips_reg_m_map)
+ (mips32_to_micromips_reg_q_map, mips32_to_micromips_reg_n_map)
+ (micromips_imm_b_map, micromips_imm_c_map): Delete.
+ (mips_lookup_reg_pair): Delete.
+ (macro): Use report_bad_range and report_bad_field.
+ (mips_immed, expr_const_in_range): Delete.
+ (mips_ip): Rewrite main parsing loop to use new functions.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (mips_oddfpreg_ok): Move further up file.
+ Change return type to bfd_boolean.
+ (report_bad_range, report_bad_field): New functions.
+ (mips_arg_info): New structure.
+ (match_const_int, convert_reg_type, check_regno, match_int_operand)
+ (match_mapped_int_operand, match_msb_operand, match_reg_operand)
+ (match_reg_pair_operand, match_pcrel_operand, match_perf_reg_operand)
+ (match_addiusp_operand, match_clo_clz_dest_operand)
+ (match_lwm_swm_list_operand, match_mdmx_imm_reg_operand)
+ (match_pc_operand, match_tied_reg_operand, match_operand)
+ (check_completed_insn): New functions, commented out for now.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (insn_insert_operand): New function.
+ (macro_build, mips16_macro_build): Put null character check
+ in the for loop and convert continues to breaks. Use operand
+ structures to handle constant operands.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (validate_mips_insn): Move further up file.
+ Add insn_bits and decode_operand arguments. Use the mips_operand
+ fields to work out which bits an operand occupies. Detect double
+ definitions.
+ (validate_micromips_insn): Move further up file. Call into
+ validate_mips_insn.
+
+2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
+
+ * config/tc-mips.c (mips16_macro_build): Remove 'Y' case.
+
2013-07-14 Richard Sandiford <rdsandiford@googlemail.com>
* config/tc-mips.c (macro_build): Take an int for "C", "k", "\\"