include/opcode/
[external/binutils.git] / gas / ChangeLog
index 233f917..b201962 100644 (file)
@@ -1,3 +1,134 @@
+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.