Add AMD SSE5 support
[binutils-gdb.git] / gas / ChangeLog
index 0186ee321431d239b654cd274f48837a4537a192..062bbd2029ba5da0e4ae156d6854b39b8696bb12 100644 (file)
@@ -1,3 +1,334 @@
+2007-08-31  Michael Meissner  <michael.meissner@amd.com>
+           Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
+           Tony Linthicum  <tony.linthicum@amd.com>
+
+       * NEWS: Add SSE5 support to NEWS file.
+       
+       * config/tc-i386.h (drex_byte): Add fields to allow process_drex
+       and build_modrm_byte to communicate.
+       (DREX_OC0): New SSE5 macro.
+       (DREX_OC0_MASK): Ditto.
+       (DREX_OC1): Ditto.
+       (DREX_OC1_MASK): Ditto.
+       (DREX_XMEM_X1_X2_X2): Ditto.
+       (DREX_X1_XMEM_X2_X2): Ditto.
+       (DREX_X1_XMEM_X2_X1: Ditto.
+       (DREX_X1_X2_XMEM_X1: Ditto.
+       (DREX_XMEM_X1_X2): Ditto.
+       (DREX_X1_XMEM_X2): Ditto.
+       (drex_byte): New structure to describe the DREX byte.
+
+       * config/tc-i386.c (process_drex): New function to handle SSE5
+       DREX bits.
+       (build_modrm_byte): Use the information cached away in
+       process_drex in the case of DREX instructions.
+       (i386_insn): Add drex field.
+       (pi): Add debugging of drex field.
+       (md_assemble): Treat SSE5 like SSE3 in instructions with an
+       immediate byte.  Move REX field to DREX if this is a DREX
+       instruction.
+       (process_operands): Add SSE5 support.
+       (build_modrm_byte): Ditto.
+       (output_insn): Ditto.
+       (cpu_arch): Ditto.
+       (i386_align_code): Ditto.
+
+2007-09-12  Jan Beulich  <jbeulich@novell.com>
+
+       * config/tc-i386.c (md_assemble): Move handling of extrq/insertq
+       after generic operand swapping, and swap only the immediate operands.
+
+2007-09-11  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/tc-m68k.c (m68k_ip): Add mcfisa_c case.
+       (m68k_elf_final_processing): Add EF_M68K_CF_ISA_C_NODIV.
+
+2007-09-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * tc-i386.c (output_insn): Only check SSE4.2 and ABM for 3
+       byte opcode.
+
+2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (cpu_flags_check_x64): Renamed to ...
+       (cpu_flags_check_cpu64): This. Inline.
+       (uints_all_zero): New.
+       (uints_set): Likewise
+       (uints_equal): Likewise
+       (UINTS_ALL_ZERO): Likewise
+       (UINTS_SET): Likewise
+       (UINTS_CLEAR): Likewise
+       (UINTS_EQUAL): Likewise
+       (cpu_flags_and): Likewise.
+       (cpu_flags_or): Likewise.
+       (operand_type_and): Likewise.
+       (operand_type_or): Likewise.
+       (operand_type_xor): Likewise.
+       (cpu_flags_not): Inline and use switch instead of loop.
+       (cpu_flags_match): Updated.
+       (operand_type_match): Likewise.
+       (smallest_imm_type): Likewise.
+       (set_cpu_arch): Likewise.
+       (pt): Likewise.
+       (md_assemble): Likewise.
+       (parse_insn): Likewise.
+       (optimize_imm): Likewise.
+       (match_template): Likewise.
+       (process_suffix): Likewise.
+       (update_imm): Likewise.
+       (finalize_imm): Likewise.
+       (process_operands): Likewise.
+       (build_modrm_byte): Likewise.
+       (i386_immediate): Likewise.
+       (i386_displacement): Likewise.
+       (i386_index_check): Likewise.
+       (i386_operand): Likewise.
+       (i386_target_format): Likewise.
+       (intel_e11): Likewise.
+       (operand_type): Remove implicitregister.
+       (operand_type_check): Updated. Inline.
+       (cpu_flags_all_zero): Removed.
+       (operand_type_all_zero): Likewise.
+       (i386_array_biop): Likewise.
+       (cpu_flags_biop): Likewise.
+       (operand_type_biop): Likewise.
+
+2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.am: Run "make dep-am".
+       * Makefile.in: Regenerate.
+
+2007-09-08  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.in (AC_CHECK_HEADERS): Add limits.h.
+       * configure: Regenerated.
+       * config.in: Likewise.
+
+       * config/tc-i386.c: Include "opcodes/i386-init.h".
+       (_i386_insn): Use i386_operand_type for types.
+       (cpu_arch_flags): Updated to new types with bitfield.
+       (cpu_arch_tune_flags): Likewise.
+       (cpu_arch_isa_flags): Likewise.
+       (cpu_arch): Likewise.
+       (i386_align_code): Likewise.
+       (set_code_flag): Likewise.
+       (set_16bit_gcc_code_flag): Likewise.
+       (set_cpu_arch): Likewise.
+       (md_assemble): Likewise.
+       (parse_insn): Likewise.
+       (process_operands): Likewise.
+       (output_branch): Likewise.
+       (output_jump): Likewise.
+       (parse_real_register): Likewise.
+       (mode_from_disp_size): Likewise.
+       (smallest_imm_type): Likewise.
+       (pi): Likewise.
+       (type_names): Likewise.
+       (pt): Likewise.
+       (pte): Likewise.
+       (swap_2_operands): Likewise.
+       (optimize_imm): Likewise.
+       (optimize_disp): Likewise.
+       (match_template): Likewise.
+       (check_string): Likewise.
+       (process_suffix): Likewise.
+       (check_byte_reg): Likewise.
+       (check_long_reg): Likewise.
+       (check_qword_reg): Likewise.
+       (check_word_reg): Likewise.
+       (finalize_imm): Likewise.
+       (build_modrm_byte): Likewise.
+       (output_insn): Likewise.
+       (disp_size): Likewise.
+       (imm_size): Likewise.
+       (output_disp): Likewise.
+       (output_imm): Likewise.
+       (gotrel): Likewise.
+       (i386_immediate): Likewise.
+       (i386_displacement): Likewise.
+       (i386_index_check): Likewise.
+       (i386_operand): Likewise.
+       (parse_real_register): Likewise.
+       (i386_intel_operand): Likewise.
+       (intel_e09): Likewise.
+       (intel_bracket_expr): Likewise.
+       (intel_e11): Likewise.
+       (cpu_arch_flags_not): New.
+       (cpu_flags_check_x64): Likewise.
+       (cpu_flags_all_zero): Likewise.
+       (cpu_flags_not): Likewise.
+       (i386_cpu_flags_biop): Likewise.
+       (cpu_flags_biop): Likewise.
+       (cpu_flags_match); Likewise.
+       (acc32): New.
+       (acc64): Likewise.
+       (control): Likewise.
+       (reg16_inoutportreg): Likewise.
+       (disp16): Likewise.
+       (disp32): Likewise.
+       (disp32s): Likewise.
+       (disp16_32): Likewise.
+       (anydisp): Likewise.
+       (baseindex): Likewise.
+       (regxmm): Likewise.
+       (imm8): Likewise.
+       (imm8s): Likewise.
+       (imm16): Likewise.
+       (imm32): Likewise.
+       (imm32s): Likewise.
+       (imm64): Likewise.
+       (imm16_32): Likewise.
+       (imm16_32s): Likewise.
+       (imm16_32_32s): Likewise.
+       (operand_type): Likewise.
+       (operand_type_check): Likewise.
+       (operand_type_match): Likewise.
+       (operand_type_register_match): Likewise.
+       (update_imm): Likewise.
+       (set_code_flag): Also update cpu_arch_flags_not.
+       (set_16bit_gcc_code_flag): Likewise.
+       (md_begin): Likewise.
+       (parse_insn): Use cpu_flags_check_x64 to check 64bit support.
+       Use cpu_flags_match to match instructions.
+       (i386_target_format): Update cpu_arch_isa_flags and
+       cpu_arch_tune_flags to i386_cpu_flags type with bitfield.
+       (smallest_imm_type): Check cpu_arch_tune to tune for i486.
+       (match_template): Don't initialize overlap0, overlap1,
+       overlap2, overlap3 and operand_types.
+       (process_suffix): Handle crc32 with 64bit register.
+       (MATCH): Removed.
+       (CONSISTENT_REGISTER_MATCH): Likewise.
+
+       * config/tc-i386.h (arch_entry): Updated to i386_cpu_flags
+       type.
+
+2007-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (match_template): Handle invlpga, vmload,
+       vmrun and vmsave in SVME.
+       (process_suffix): Likewise.
+
+2007-09-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (i386_index_check): Don't use RegRex
+       on the reg_type field.
+       (parse_real_register): Use `||' instead of `|'.
+
+2007-09-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (process_operands): Remove segment override
+       check on SVME instructions.
+       (i386_index_check): Remove memory operand check on SVME
+       instructions.
+
+2007-09-04  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/tc-spu.c (struct spu_insn): Delete "flag".  Add "reloc".
+       (md_assemble): Update init of insn.  Use insn.reloc instead of
+       calculating from flag.
+       (get_imm): Set reloc rather than flag.
+       (calcop): Formatting.
+
+2007-08-29  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * dwarf2dbg.c (dwarf2_directive_loc): Emit duplicate .loc directives.
+
+2007-08-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * doc/c-arc.texi: Fix typo.
+
+2007-08-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (process_suffix): Handle cmpxchg8b in
+       Intel mode.
+
+2007-08-28  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/tc-m68k.c (mcf52235_ctrl): Add cache registers.
+       (mcf5253_ctrl): Add RAMBAR, MBAR, MBAR2.
+       (mcf5407_ctrl): New.
+       (m68k_cpus): Adjust 5407 entry.
+
+2007-08-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * config/tc-m68k.c (mcf51qe_ctrl): Define 51QE control registers.
+       (m68k_cpus): Define 51QE cpu.
+
+2007-08-28  Mark Shinwell  <shinwell@codesourcery.com>
+           Joseph Myers  <joseph@codesourcery.com>
+
+       * as.c (main): Flush stderr before printing listings to ensure
+       consistent output order across platforms.
+
+2007-08-28  Robert Sebastian Gerus  <arachnist@gmail.com>
+
+       * configure.tgt: Add support for i[3-7]86-*-dragonfly*.
+
+2007-08-24  Joseph Myers  <joseph@codesourcery.com>
+           Paul Brook  <paul@codesourcery.com>
+
+       * remap.c: New.
+       * as.h (remap_debug_filename, add_debug_prefix_map): Declare.
+       * as.c (show_usage): Document --debug-prefix-map option.
+       (parse_args): Handle --debug-prefix-map.
+       * dwarf2dbg.c (out_file_list, out_debug_info): Remap debug paths.
+       * stabs.c (stabs_generate_asm_file): Remap debug paths.
+       * Makefile.am (GAS_CFILES): Add remap.c
+       (GENERIC_OBJS): Add remap.o.
+       Regenerate dependencies.
+       * Makefile.in: Regenerate.
+       * doc/as.texinfo (--debug-prefix-map): Document.
+
+2007-08-24  Aurelien Jarno  <aurel32@debian.org>
+
+       * config/tc-arm.c (md_apply_fix): Cast bfd_vma values to long
+       before printing them.
+
+2007-08-24  Anders Waldenborg  <anders@0x63.nu>
+           Alan Modra  <amodra@bigpond.net.au>
+
+       * config/tc-i386.c (lex_got): Don't scan past a comma.
+
+2007-08-23  Ben Elliston  <bje@au.ibm.com>
+
+       * config/tc-ppc.c (parse_cpu): Handle "750cl".
+       (pre_defined_registers): Add "gqr0" to "gqr7", "gqr.0" to "gqr.7".
+       (md_show_usage): Document -m750cl.
+       (md_assemble): Handle two delimiters in succession (eg. `),').
+       * doc/c-ppc.texi (PowerPC-Opts): Document -m750cl.
+       * testsuite/gas/ppc/ppc.exp: Run ppc70ps dump tests.
+       * testsuite/gas/ppc/ppc750ps.s: New file.
+       * testsuite/gas/ppc/ppc750ps.d: Likewise.
+
+2007-08-23  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/c-arm.texi (ARM Directives): Move brackets out of @vars.
+
+2007-08-17  Alan Modra  <amodra@bigpond.net.au>
+
+       PR gas/4079
+       * config/tc-i386.c (x86_cons): Complain about invalid @got etc.
+       expressions.
+       (i386_immediate): Detect and complain about more cases of
+       invalid immediate expressions.  Return failure rather than
+       converting them to zero.
+       (i386_displacement): Likewise.
+
+2007-08-17  Alan Modra  <amodra@bigpond.net.au>
+
+       * po/Make-in: Add --msgid-bugs-address to xgettext invocation.
+
+2007-08-14  Andreas Schwab  <schwab@suse.de>
+
+       * config/tc-ia64.c (tc_gen_reloc): Return NULL if relocation is
+       unrepresentable.
+
+2007-08-12  Matthias Klose  <doko@ubuntu.com>
+
+       * doc/Makefile.am (AM_MAKEINFOFLAGS, TEXI2DVI): Include
+       $(top_srcdir)/../../bfd/doc.
+       * doc/Makefile.in: Regenerate.
+
 2007-08-10  Nick Clifton  <nickc@redhat.com>
 
        * NEWS: Add a marker for the 2.18 features.