This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, i386] Support of MPX ISA extension


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]