gas/
[deliverable/binutils-gdb.git] / gas / ChangeLog
index 5e7a4933042a6e14c3a94ded11b551f66c0b6f75..0a9af0d11f61fb2b83105b89a90aa14a677ccd85 100644 (file)
@@ -1,3 +1,241 @@
+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", "\\"
+       and "~".
+       (macro): Update accordingly.
+
+2013-07-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (imm_expr, imm2_expr, offset_expr): Tweak commentary.
+       (imm_reloc): Delete.
+       (md_assemble): Remove imm_reloc handling.
+       (mips_ip): Update commentary.  Use offset_expr and offset_reloc
+       rather than imm_expr and imm_reloc for 'i', 'j' and 'u'.
+       Use a temporary array rather than imm_reloc when parsing
+       constant expressions.  Remove imm_reloc initialization.
+       (mips16_ip): Update commentary.  Use offset_expr and offset_reloc
+       for the relaxable field.  Use a relax_char variable to track the
+       type of this field.  Remove imm_reloc initialization.
+
+2013-07-14  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (mips16_ip): Handle "I".
+
+2013-07-12  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * config/tc-mips.c (mips_flag_nan2008): New variable.
+       (options): Add OPTION_NAN enum value.
+       (md_longopts): Handle it.
+       (md_parse_option): Likewise.
+       (s_nan): New function.
+       (mips_elf_final_processing): Handle EF_MIPS_NAN2008.
+       (md_show_usage): Add -mnan.
+
+       * doc/as.texinfo (Overview): Add -mnan.
+       * doc/c-mips.texi (MIPS Opts): Document -mnan.
+       (MIPS NaN Encodings): New node.  Document .nan directive.
+       (MIPS-Dependent): List the new node.
+
+2013-07-09  Tristan Gingold  <gingold@adacore.com>
+
+       * configure.com: Define HAVE_SYS_TYPES_H and HAVE_UNISTD_H
+
+2013-07-08  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (mips_ip): Unconditionally parse an expression
+       for 'A' and assume that the constant has been elided if the result
+       is an O_register.
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (gprel16_reloc_p): New function.
+       (macro_read_relocs): Assume BFD_RELOC_LO16 if all relocs are
+       BFD_RELOC_UNUSED.
+       (offset_high_part, small_offset_p): New functions.
+       (nacro): Use them.  Remove *_OB and *_DOB cases.  For single-
+       register load and store macros, handle the 16-bit offset case first.
+       If a 16-bit offset is not suitable for the instruction we're
+       generating, load it into the temporary register using
+       ADDRESS_ADDI_INSN.  Make the M_LI_DD code fall through into the
+       M_L_DAB code once the address has been constructed.  For double load
+       and store macros, again handle the 16-bit offset case first.
+       If the second register cannot be accessed from the same high
+       part as the first, load it into AT using ADDRESS_ADDI_INSN.
+       Fix the handling of LD in cases where the first register is the
+       same as the base.  Also handle the case where the offset is
+       not 16 bits and the second register cannot be accessed from the
+       same high part as the first.  For unaligned loads and stores,
+       fuse the offbits == 12 and old "ab" handling.  Apply this handling
+       whenever the second offset needs a different high part from the first.
+       Construct the offset using ADDRESS_ADDI_INSN where possible,
+       for offbits == 16 as well as offbits == 12.  Use offset_reloc
+       when constructing the individual loads and stores.
+       (mips_ip): Set up imm_expr, imm2_expr, offset_expr, imm_reloc
+       and offset_reloc before matching against a particular opcode.
+       Handle elided 'A' constants.  Allow 'A' constants to use
+       relocation operators.
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (validate_mips_insn): Remove "[" and "]" handling.
+       (mips_ip): Likewise.  Do not set is_mdmx for INSN_5400 instructions.
+       Check constraints on the VR5400 RZU.OB, SLL.OB and SRL.OB instructions.
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (mips_ip): Preserve the real bit number for "+p".
+       Require the msb to be <= 31 for "+s".  Check that the size is <= 31
+       for both "+s" and "+S".
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (validate_mips_insn, validate_micromips_insn):
+       (mips_ip, mips16_ip): Handle "+i".
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (mips32_to_micromips_reg_h_map): Delete.
+       (micromips_to_32_reg_h_map): Rename to...
+       (micromips_to_32_reg_h_map1): ...this.
+       (micromips_to_32_reg_i_map): Rename to...
+       (micromips_to_32_reg_h_map2): ...this.
+       (mips_lookup_reg_pair): New function.
+       (gpr_write_mask, macro): Adjust after above renaming.
+       (validate_micromips_insn): Remove "mi" handling.
+       (mips_ip): Likewise.  Parse both registers in a pair for "mh".
+
+2013-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/tc-mips.c (validate_mips_insn, validate_micromips_insn)
+       (mips_ip): Remove "+D" and "+T" handling.
+
+2013-07-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/tc-s390.c (md_gather_operands, md_apply_fix): Support new
+       relocs.
+
+2013-07-03  Marcus Shawcroft  <marcus.shawcroft@arm.com>
+
+       * config/tc-aarch64.c (reloc_table): Merge got_prel19 into got.
+
+2013-07-02  Marcus Shawcroft  <marcus.shawcroft@arm.com>
+
+       * config/tc-aarch64.c (md_apply_fix): Reorder case values.
+       (aarch64_force_relocation): Likewise.
+
+2013-07-02  Alan Modra  <amodra@gmail.com>
+
+       * config/tc-ppc.c (ppc_elf_adjust_symtab): Don't make .TOC. weak.
+
 2013-06-26  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * doc/as.texinfo (Overview): Remove @samp from MIPS ISA names.
This page took 0.024971 seconds and 4 git commands to generate.