x86: disambiguate disassembly of certain AVX512 insns
Certain conversion operations as well as vfpclassp{d,s} are ambiguous
when the input operand is in memory and no broadcast is being used.
While in Intel mode this gets resolved by printing suitable operand
size modifiers, AT&T mode need mnemonic suffixes to be added.
gas/testsuite/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* gas/i386/avx512dq.d: Add 'z' suffix to vfpclassp{d,s} non-
register, non-broadcast cases.
* gas/i386/x86-64-avx512dq.d: Likewise.
* gas/i386/avx512dq_vl.d: Add 'x' and 'y' suffixes to
vcvt{,u}qq2ps and vfpclassp{d,s} non-register, non-broadcast
cases.
* gas/i386/x86-64-avx512dq_vl.d: Likewise.
* gas/i386/avx512f_vl.d: Add 'x' and 'y' suffixes to
vcvt{,t}pd2{,u}dq and vcvtpd2ps non-register, non-broadcast
cases.
* gas/i386/x86-64-avx512f_vl.d: Likewise.
opcodes/
2015-04-23 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (putop): Extend "XY" handling to AVX512. Handle "XZ".
* i386-dis-evex.h.c (vcvtpd2ps, vcvtqq2ps, vcvttpd2udq,
vcvtpd2udq, vcvtuqq2ps, vcvttpd2dq, vcvtpd2dq): Add %XY.
(vfpclasspd, vfpclassps): Add %XZ.
2015-04-23 14:42:40 +00:00
|
|
|
|
2015-04-23 Jan Beulich <jbeulich@suse.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (putop): Extend "XY" handling to AVX512. Handle "XZ".
|
|
|
|
|
* i386-dis-evex.h.c (vcvtpd2ps, vcvtqq2ps, vcvttpd2udq,
|
|
|
|
|
vcvtpd2udq, vcvtuqq2ps, vcvttpd2dq, vcvtpd2dq): Add %XY.
|
|
|
|
|
(vfpclasspd, vfpclassps): Add %XZ.
|
|
|
|
|
|
2015-04-15 22:58:45 +00:00
|
|
|
|
2015-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (PREFIX_UD_SHIFT): Removed.
|
|
|
|
|
(PREFIX_UD_REPZ): Likewise.
|
|
|
|
|
(PREFIX_UD_REPNZ): Likewise.
|
|
|
|
|
(PREFIX_UD_DATA): Likewise.
|
|
|
|
|
(PREFIX_UD_ADDR): Likewise.
|
|
|
|
|
(PREFIX_UD_LOCK): Likewise.
|
|
|
|
|
|
2015-04-15 18:28:16 +00:00
|
|
|
|
2015-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (prefix_requirement): Removed.
|
|
|
|
|
(print_insn): Don't set prefix_requirement. Check
|
|
|
|
|
dp->prefix_requirement instead of prefix_requirement.
|
|
|
|
|
|
2015-04-15 16:53:13 +00:00
|
|
|
|
2015-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/17898
|
|
|
|
|
* i386-dis.c (PREFIX_0FC7_REG_6): Renamed to ...
|
|
|
|
|
(PREFIX_MOD_0_0FC7_REG_6): This.
|
|
|
|
|
(PREFIX_MOD_3_0FC7_REG_6): New.
|
|
|
|
|
(PREFIX_MOD_3_0FC7_REG_7): Likewise.
|
|
|
|
|
(prefix_table): Replace PREFIX_0FC7_REG_6 with
|
|
|
|
|
PREFIX_MOD_0_0FC7_REG_6. Add PREFIX_MOD_3_0FC7_REG_6 and
|
|
|
|
|
PREFIX_MOD_3_0FC7_REG_7.
|
|
|
|
|
(mod_table): Replace PREFIX_0FC7_REG_6 with
|
|
|
|
|
PREFIX_MOD_0_0FC7_REG_6. Use PREFIX_MOD_3_0FC7_REG_6 and
|
|
|
|
|
PREFIX_MOD_3_0FC7_REG_7.
|
|
|
|
|
|
2015-04-15 16:24:45 +00:00
|
|
|
|
2015-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (PREFIX_MANDATORY_REPZ): Removed.
|
|
|
|
|
(PREFIX_MANDATORY_REPNZ): Likewise.
|
|
|
|
|
(PREFIX_MANDATORY_DATA): Likewise.
|
|
|
|
|
(PREFIX_MANDATORY_ADDR): Likewise.
|
|
|
|
|
(PREFIX_MANDATORY_LOCK): Likewise.
|
|
|
|
|
(PREFIX_MANDATORY): Likewise.
|
|
|
|
|
(PREFIX_UD_SHIFT): Set to 8
|
|
|
|
|
(PREFIX_UD_REPZ): Updated.
|
|
|
|
|
(PREFIX_UD_REPNZ): Likewise.
|
|
|
|
|
(PREFIX_UD_DATA): Likewise.
|
|
|
|
|
(PREFIX_UD_ADDR): Likewise.
|
|
|
|
|
(PREFIX_UD_LOCK): Likewise.
|
|
|
|
|
(PREFIX_IGNORED_SHIFT): New.
|
|
|
|
|
(PREFIX_IGNORED_REPZ): Likewise.
|
|
|
|
|
(PREFIX_IGNORED_REPNZ): Likewise.
|
|
|
|
|
(PREFIX_IGNORED_DATA): Likewise.
|
|
|
|
|
(PREFIX_IGNORED_ADDR): Likewise.
|
|
|
|
|
(PREFIX_IGNORED_LOCK): Likewise.
|
|
|
|
|
(PREFIX_OPCODE): Likewise.
|
|
|
|
|
(PREFIX_IGNORED): Likewise.
|
|
|
|
|
(Bad_Opcode): Replace PREFIX_MANDATORY with 0.
|
|
|
|
|
(dis386_twobyte): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
|
|
|
|
|
(three_byte_table): Likewise.
|
|
|
|
|
(mod_table): Likewise.
|
|
|
|
|
(mandatory_prefix): Renamed to ...
|
|
|
|
|
(prefix_requirement): This.
|
|
|
|
|
(prefix_table): Replace PREFIX_MANDATORY with PREFIX_OPCODE.
|
|
|
|
|
Update PREFIX_90 entry.
|
|
|
|
|
(get_valid_dis386): Check prefix_requirement to see if a prefix
|
|
|
|
|
should be ignored.
|
|
|
|
|
(print_insn): Replace mandatory_prefix with prefix_requirement.
|
|
|
|
|
|
2015-04-15 16:44:03 +00:00
|
|
|
|
2015-04-15 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (thumb32_opcodes): Define 'D' format control code,
|
|
|
|
|
use it for ssat and ssat16.
|
|
|
|
|
(print_insn_thumb32): Add handle case for 'D' control code.
|
|
|
|
|
|
x86: Use individual prefix control for each opcode.
2015-04-06 Ilya Tocar <ilya.tocar@intel.com>
H.J. Lu <hongjiu.lu@intel.com>
* i386-dis-evex.h (evex_table): Fill prefix_requirement field.
* i386-dis.c (PREFIX_MANDATORY_REPZ, PREFIX_MANDATORY_REPNZ,
PREFIX_MANDATORY_DATA, PREFIX_MANDATORY_ADDR, PREFIX_MANDATORY_LOCK,
PREFIX_UD_SHIFT, PREFIX_UD_REPZ, REFIX_UD_REPNZ, PREFIX_UD_DATA,
PREFIX_UD_ADDR, PREFIX_UD_LOCK, PREFIX_OPTIONAL, PREFIX_MANDATORY):
Define.
(Bad_Opcode, FLOAT, DIS386, DIS386_PREFIX, THREE_BYTE_TABLE_PREFIX):
Fill prefix_requirement field.
(struct dis386): Add prefix_requirement field.
(dis386): Fill prefix_requirement field.
(dis386_twobyte): Ditto.
(twobyte_has_mandatory_prefix_: Remove.
(reg_table): Fill prefix_requirement field.
(prefix_table): Ditto.
(x86_64_table): Ditto.
(three_byte_table): Ditto.
(xop_table): Ditto.
(vex_table): Ditto.
(vex_len_table): Ditto.
(vex_w_table): Ditto.
(mod_table): Ditto.
(bad_opcode): Ditto.
(print_insn): Use prefix_requirement.
(FGRPd9_2, FGRPd9_4, FGRPd9_5, FGRPd9_6, FGRPd9_7, FGRPda_5, FGRPdb_4,
FGRPde_3, FGRPdf_4): Fill prefix_requirement field.
(float_reg): Ditto.
2015-04-06 16:33:01 +00:00
|
|
|
|
2015-04-06 Ilya Tocar <ilya.tocar@intel.com>
|
|
|
|
|
H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis-evex.h (evex_table): Fill prefix_requirement field.
|
|
|
|
|
* i386-dis.c (PREFIX_MANDATORY_REPZ, PREFIX_MANDATORY_REPNZ,
|
|
|
|
|
PREFIX_MANDATORY_DATA, PREFIX_MANDATORY_ADDR, PREFIX_MANDATORY_LOCK,
|
|
|
|
|
PREFIX_UD_SHIFT, PREFIX_UD_REPZ, REFIX_UD_REPNZ, PREFIX_UD_DATA,
|
|
|
|
|
PREFIX_UD_ADDR, PREFIX_UD_LOCK, PREFIX_MANDATORY): Define.
|
|
|
|
|
(Bad_Opcode, FLOAT, DIS386, DIS386_PREFIX, THREE_BYTE_TABLE_PREFIX):
|
|
|
|
|
Fill prefix_requirement field.
|
|
|
|
|
(struct dis386): Add prefix_requirement field.
|
|
|
|
|
(dis386): Fill prefix_requirement field.
|
|
|
|
|
(dis386_twobyte): Ditto.
|
|
|
|
|
(twobyte_has_mandatory_prefix_: Remove.
|
|
|
|
|
(reg_table): Fill prefix_requirement field.
|
|
|
|
|
(prefix_table): Ditto.
|
|
|
|
|
(x86_64_table): Ditto.
|
|
|
|
|
(three_byte_table): Ditto.
|
|
|
|
|
(xop_table): Ditto.
|
|
|
|
|
(vex_table): Ditto.
|
|
|
|
|
(vex_len_table): Ditto.
|
|
|
|
|
(vex_w_table): Ditto.
|
|
|
|
|
(mod_table): Ditto.
|
|
|
|
|
(bad_opcode): Ditto.
|
|
|
|
|
(print_insn): Use prefix_requirement.
|
|
|
|
|
(FGRPd9_2, FGRPd9_4, FGRPd9_5, FGRPd9_6, FGRPd9_7, FGRPda_5, FGRPdb_4,
|
|
|
|
|
FGRPde_3, FGRPdf_4): Fill prefix_requirement field.
|
|
|
|
|
(float_reg): Ditto.
|
|
|
|
|
|
2015-03-30 05:40:09 +00:00
|
|
|
|
2015-03-30 Mike Frysinger <vapier@gentoo.org>
|
|
|
|
|
|
|
|
|
|
* d10v-opc.c (d10v_reg_name_cnt): Convert old style prototype.
|
|
|
|
|
|
2015-03-29 14:46:30 +00:00
|
|
|
|
2015-03-29 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
|
2015-03-25 02:44:28 +00:00
|
|
|
|
2015-03-25 Anton Blanchard <anton@samba.org>
|
|
|
|
|
|
|
|
|
|
* ppc-dis.c (disassemble_init_powerpc): Only initialise
|
|
|
|
|
powerpc_opcd_indices and vle_opcd_indices once.
|
|
|
|
|
|
2015-03-25 02:43:18 +00:00
|
|
|
|
2015-03-25 Anton Blanchard <anton@samba.org>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c (powerpc_opcodes): Add slbfee.
|
|
|
|
|
|
2015-03-24 06:08:08 +00:00
|
|
|
|
2015-03-24 Terry Guo <terry.guo@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (opcode32): Updated to use new arm feature struct.
|
|
|
|
|
(opcode16): Likewise.
|
|
|
|
|
(coprocessor_opcodes): Replace bit with feature struct.
|
|
|
|
|
(neon_opcodes): Likewise.
|
|
|
|
|
(arm_opcodes): Likewise.
|
|
|
|
|
(thumb_opcodes): Likewise.
|
|
|
|
|
(thumb32_opcodes): Likewise.
|
|
|
|
|
(print_insn_coprocessor): Likewise.
|
|
|
|
|
(print_insn_arm): Likewise.
|
|
|
|
|
(select_arm_features): Follow new feature struct.
|
|
|
|
|
|
2015-03-17 16:19:15 +00:00
|
|
|
|
2015-03-17 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (rm_table): Add clzero.
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Add new CPU_ZNVER1_FLAGS.
|
|
|
|
|
Add CPU_CLZERO_FLAGS.
|
|
|
|
|
(cpu_flags): Add CpuCLZERO.
|
|
|
|
|
* i386-opc.h: Add CpuCLZERO.
|
|
|
|
|
* i386-opc.tbl: Add clzero.
|
|
|
|
|
* i386-init.h: Re-generated.
|
|
|
|
|
* i386-tbl.h: Re-generated.
|
|
|
|
|
|
2015-03-13 22:42:55 +00:00
|
|
|
|
2015-03-13 Andrew Bennett <andrew.bennett@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-opc.c (decode_mips_operand): Fix constraint issues
|
|
|
|
|
with u and y operands.
|
|
|
|
|
|
2015-03-13 22:02:16 +00:00
|
|
|
|
2015-03-13 Andrew Bennett <andrew.bennett@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-opc.c (mips_builtin_opcodes): Add evp and dvp instructions.
|
|
|
|
|
|
2015-03-10 11:44:54 +00:00
|
|
|
|
2015-03-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* s390-opc.c: Add new IBM z13 instructions.
|
|
|
|
|
* s390-opc.txt: Likewise.
|
|
|
|
|
|
2015-03-10 11:27:56 +00:00
|
|
|
|
2015-03-10 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-tbl.h (aarch64_opcode_table): Remove strub, ldurb, ldursb,
|
|
|
|
|
stur, ldur, sturh, ldurh, ldursh, ldursw, prfum F_HAS_ALIAS flag and
|
|
|
|
|
related alias.
|
|
|
|
|
* aarch64-asm-2.c: Regenerate.
|
|
|
|
|
* aarch64-dis-2.c: Likewise.
|
|
|
|
|
* aarch64-opc-2.c: Likewise.
|
|
|
|
|
|
2015-03-03 15:00:59 +00:00
|
|
|
|
2015-03-03 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (arm_symbol_is_valid): Skip ARM private symbols.
|
|
|
|
|
|
2015-02-25 20:22:54 +00:00
|
|
|
|
2015-02-25 Oleg Endo <olegendo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* sh-opc.h (clrs, sets): Mark as arch_sh3_nommu_up instead of
|
|
|
|
|
arch_sh_up.
|
|
|
|
|
(pref): Mark as arch_sh2a_nofpu_or_sh3_nommu_up instead of
|
|
|
|
|
arch_sh2a_nofpu_or_sh4_nommu_nofpu_up.
|
|
|
|
|
|
2015-02-23 17:16:30 +00:00
|
|
|
|
2015-02-23 Vinay <Vinay.G@kpit.com>
|
|
|
|
|
|
|
|
|
|
* rl78-decode.opc (MOV): Added space between two operands for
|
|
|
|
|
'mov' instruction in index addressing mode.
|
|
|
|
|
* rl78-decode.c: Regenerate.
|
|
|
|
|
|
2015-02-12 09:59:03 +00:00
|
|
|
|
2015-02-19 Pedro Alves <palves@redhat.com>
|
|
|
|
|
|
|
|
|
|
* microblaze-dis.h [__cplusplus]: Wrap in extern "C".
|
|
|
|
|
|
opcodes/microblaze: Rename 'or', 'and', 'xor' to avoid C++ conflict
Building GDB as a C++ program, we see:
In file included from gdb/microblaze-tdep.c:37:0:
gdb/../opcodes/../opcodes/microblaze-opcm.h: At global scope:
gdb/../opcodes/../opcodes/microblaze-opcm.h:32:51: error: expected identifier before ‘or’ token
ncget, ncput, muli, bslli, bsrai, bsrli, mului, or, and, xor,
^
gdb/../opcodes/../opcodes/microblaze-opcm.h:32:51: error: expected ‘}’ before ‘or’ token
gdb/../opcodes/../opcodes/microblaze-opcm.h:32:51: error: expected unqualified-id before ‘or’ token
gdb/../opcodes/../opcodes/microblaze-opcm.h:60:1: error: expected declaration before ‘}’ token
};
^
opcodes/ChangeLog:
2015-02-10 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* microblaze-opcm.h (or, and, xor): Rename to microblaze_or,
microblaze_and, microblaze_xor.
* microblaze-opc.h (opcodes): Adjust.
2015-02-10 18:09:39 +00:00
|
|
|
|
2015-02-10 Pedro Alves <palves@redhat.com>
|
|
|
|
|
Tom Tromey <tromey@redhat.com>
|
|
|
|
|
|
|
|
|
|
* microblaze-opcm.h (or, and, xor): Rename to microblaze_or,
|
|
|
|
|
microblaze_and, microblaze_xor.
|
|
|
|
|
* microblaze-opc.h (opcodes): Adjust.
|
|
|
|
|
|
2015-01-28 05:06:43 +00:00
|
|
|
|
2015-01-28 James Bowman <james.bowman@ftdichip.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.am: Add FT32 files.
|
|
|
|
|
* configure.ac: Handle FT32.
|
|
|
|
|
* disassemble.c (disassembler): Call print_insn_ft32.
|
|
|
|
|
* ft32-dis.c: New file.
|
|
|
|
|
* ft32-opc.c: New file.
|
|
|
|
|
* Makefile.in: Regenerate.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
* po/POTFILES.in: Regenerate.
|
|
|
|
|
|
2015-01-28 01:12:59 +00:00
|
|
|
|
2015-01-28 Kuan-Lin Chen <kuanlinchentw@gmail.com>
|
|
|
|
|
|
|
|
|
|
* nds32-asm.c (keyword_sr): Add new system registers.
|
|
|
|
|
|
2015-01-16 11:19:21 +00:00
|
|
|
|
2015-01-16 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* s390-dis.c (s390_extract_operand): Support vector register
|
|
|
|
|
operands.
|
|
|
|
|
(s390_print_insn_with_opcode): Support new operands types and add
|
|
|
|
|
new handling of optional operands.
|
|
|
|
|
* s390-mkopc.c (s390_opcode_mode_val, s390_opcode_cpu_val): Remove
|
|
|
|
|
and include opcode/s390.h instead.
|
|
|
|
|
(struct op_struct): New field `flags'.
|
|
|
|
|
(insertOpcode, insertExpandedMnemonic): New parameter `flags'.
|
|
|
|
|
(dumpTable): Dump flags.
|
|
|
|
|
(main): Parse flags from the s390-opc.txt file. Add z13 as cpu
|
|
|
|
|
string.
|
|
|
|
|
* s390-opc.c: Add new operands types, instruction formats, and
|
|
|
|
|
instruction masks.
|
|
|
|
|
(s390_opformats): Add new formats for .insn.
|
|
|
|
|
* s390-opc.txt: Add new instructions.
|
|
|
|
|
|
2015-01-01 14:15:26 +00:00
|
|
|
|
2015-01-01 Alan Modra <amodra@gmail.com>
|
2014-12-27 15:57:04 +00:00
|
|
|
|
|
2015-01-01 14:15:26 +00:00
|
|
|
|
Update year range in copyright notice of all files.
|
2014-12-27 15:57:04 +00:00
|
|
|
|
|
2015-01-01 14:15:26 +00:00
|
|
|
|
For older changes see ChangeLog-2014
|
1999-05-03 07:29:11 +00:00
|
|
|
|
|
2015-01-01 14:15:26 +00:00
|
|
|
|
Copyright (C) 2015 Free Software Foundation, Inc.
|
2012-12-10 12:48:03 +00:00
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
1999-05-03 07:29:11 +00:00
|
|
|
|
Local Variables:
|
2001-01-11 19:01:42 +00:00
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
1999-05-03 07:29:11 +00:00
|
|
|
|
version-control: never
|
|
|
|
|
End:
|