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]

[PATCH] Add vpermil2pd/vpermil2ps for AMD Orochi processor


This patch restores vpermil2pd/vpermil2ps insns with 5 operand support.

I started with the original Intel code removed back in
    http://sourceware.org/ml/binutils-cvs/2009-01/msg00025.html
and then adjusted for the AMD implementation.

Tested with make -k check.

Okay to commit?

gas:
        * config/tc-i386.c (vex_imm4) New operand type.
        (fits_in_imm4): New.
        (VEX_check_operands): New.
        (check_reverse): Call VEX_check_operands.
        (build_modrm_byte): Reintroduce code for 5
        operand insns.  Fix whitespace.

gas/testsuite:
        * gas/i386/x86-64-xop.d: Add vpermil2p[sd] tests.
        * testsuite/gas/i386/x86-64-xop.s: Likewise.
        * testsuite/gas/i386/xop.d: Likewise.
        * testsuite/gas/i386/xop.s: Likewise.

opcodes:
        * i386-dis.c (OP_EX_VexImmW): Reintroduced
        function to handle 5th imm8 operand.
        (PREFIX_VEX_3A48): Added.
        (PREFIX_VEX_3A49): Added.
        (VEX_W_3A48_P_2): Added.
        (VEX_W_3A49_P_2): Added.
        (prefix table): Added entries for PREFIX_VEX_3A48
        and PREFIX_VEX_3A49.
        (vex table): Added entries for VEX_W_3A48_P_2 and
        and VEX_W_3A49_P_2.
        * i386-gen.c (operand_type_init): Added OPERAND_TYPE_VEX_IMM4
        for VEX_Imm4 operands.
        * i386-opc.h (enum): Added Vex_Imm4.
        (i386_operand_type): Added vex_imm4.
        * i386-opc.tbl: Add entries for vpermilp[ds].
        * i386-init.h: Regenerated.
        * i386-tbl.h: Regenerated.

Attachment: 7008_vpermil2px.diff
Description: Binary data


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