This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH, i386] Support of MPX ISA extension
- From: "H.J. Lu" <hjl dot tools at gmail dot com>
- To: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Cc: Binutils <binutils at sourceware dot org>, areg dot melikadamyan at gmail dot com
- Date: Wed, 24 Jul 2013 08:48:14 -0700
- Subject: Re: [PATCH, i386] Support of MPX ISA extension
- References: <51EFC966 dot 5090600 at gmail dot com>
On Wed, Jul 24, 2013 at 5:32 AM, Kirill Yukhin <kirill.yukhin@gmail.com> wrote:
> Hello,
> Attached patch introduces support of Intel MPX ISA extensions. See [1].
>
> Testing pass.
>
> Ok to install?
>
> gas/Changelog:
> 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 new options.
>
> gas/testsuite/Changelog:
> 2013-07-24 Anna Tikhonova <anna.tikhonova@intel.com>
> Kirill Yukhin <kirill.yukhin@intel.com>
> Michael Zolotukhin <michael.v.zolotukhin@intel.com>
>
> * gas/i386/mpx-add-bnd-prefix.s: New.
> * gas/i386/mpx-add-bnd-prefix.d: New.
> * gas/i386/mpx-inval-1.l: New.
> * gas/i386/mpx-inval-1.s: New.
> * gas/i386/mpx.d: New.
> * gas/i386/mpx.s: New.
> * gas/i386/x86-64-mpx-add-bnd-prefix.d: New.
> * gas/i386/x86-64-mpx-add-bnd-prefix.s: New.
> * gas/i386/x86-64-mpx-addr32.d: New.
> * gas/i386/x86-64-mpx-addr32.s: New.
> * gas/i386/x86-64-mpx-inval-1.l: New.
> * gas/i386/x86-64-mpx-inval-1.s: New.
> * gas/i386/x86-64-mpx-inval-2.l: New.
> * gas/i386/x86-64-mpx-inval-2.s: New.
> * gas/i386/x86-64-mpx.d: New.
> * gas/i386/x86-64-mpx.s: New.
> * gas/i386/nops.d: Adjust to MPX changes.
> * gas/i386/nops.s: Likewise.
> * gas/i386/x86-64-nops.d: Likewise.
> * gas/i386/x86-64-nops.s: Likewise.
> * gas/i386/ilp32/x86-64-nops.d: Likewise.
> * gas/i386/i386.exp: Add new tests.
>
> include/Changelog:
> 2013-07-24 Anna Tikhonova <anna.tikhonova@intel.com>
> Kirill Yukhin <kirill.yukhin@intel.com>
> Michael Zolotukhin <michael.v.zolotukhin@intel.com>
>
> * opcode/i386.h (BND_PREFIX_OPCODE): New.
>
> opcodes/Changelog:
> 2013-07-24 Anna Tikhonova <anna.tikhonova@intel.com>
> Kirill Yukhin <kirill.yukhin@intel.com>
> Michael Zolotukhin <michael.v.zolotukhin@intel.com>
>
> * i386-dis.c (BND_Fixup): New.
> (Ebnd): New.
> (Ev_bnd): New.
> (Gbnd): New.
> (BND): New.
> (v_bnd_mode): New.
> (bnd_mode): New.
> (MOD enum): Add new entries.
> (PREFIX enum): Likewise.
> (dis tables): Replace XX with BND for near branch and call
> instructions.
> (prefix_table): Add new entries.
> (mod_table): Likewise.
> (names_bnd): New.
> (intel_names_bnd): New.
> (att_names_bnd): New.
> (BND_PREFIX): New.
> (prefix_name): Handle BND_PREFIX.
> (print_insn): Initialize names_bnd.
> (intel_operand_size): Handle new modes.
> (OP_E_register): Likewise.
> (OP_E_memory): Likewise.
> (OP_G): Likewise.
> * i386-gen.c (cpu_flag_init): Add CpuMPX.
> (cpu_flags): Add CpuMPX.
> (operand_type_init): Add RegBND.
> (opcode_modifiers): Add BNDPrefixOk.
> (operand_types): Add RegBND.
> * i386-init.h: Regenerate.
> * i386-opc.h (CpuMPX): New.
> (CpuUnused): Comment out.
> (i386_cpu_flags): Add cpumpx.
> (BNDPrefixOk): New.
> (i386_opcode_modifier): Add bndprefixok.
> (RegBND): New.
> (i386_operand_type): Add regbnd.
> * i386-opc.tbl: Add BNDPrefixOk to near jumps, calls and rets.
> Add MPX instructions.
> * i386-reg.tbl: Add bnd0-bnd3 registers.
> * i386-tbl.h: Regenerate.
>
I checked it in with small changes in ChangeLog.
Thanks.
--
H.J.