« Return to Thread: PATCH: Implement Intel Transactional Synchronization Extensions

PATCH: Implement Intel Transactional Synchronization Extensions

by H.J. Lu :: Rate this Message:

| View in Thread

Hi,

I checked in this pach to implement Intel Transactional Synchronization
Extensions:

http://software.intel.com/en-us/avx/


H.J.
---
gas/

2012-02-08  H.J. Lu  <hongjiu.lu@...>

        * config/tc-i386.c (HLE_PREFIX): New.
        (check_hle): Likewise.
        (_i386_insn): Add have_hle.
        (cpu_arch): Add .hle and .rtm.
        (md_assemble): Call check_hle if i.have_hle isn't zero.
        (parse_insn): Set i.have_hle to 1 for HLE prefix.
        (output_jump): Support up to 2 byte opcode.

        * doc/c-i386.texi: Document hle/.hle and rtm/.rtm.

gas/testsuite/

2012-02-08  H.J. Lu  <hongjiu.lu@...>

        * gas/i386/hle-intel.d: New.
        * gas/i386/hle.d: Likewise.
        * gas/i386/hle.s: Likewise.
        * gas/i386/hlebad.l: Likewise.
        * gas/i386/hlebad.s: Likewise.
        * gas/i386/rtm-intel.d: Likewise.
        * gas/i386/rtm.d: Likewise.
        * gas/i386/rtm.s: Likewise.
        * gas/i386/x86-64-hle-intel.d: Likewise.
        * gas/i386/x86-64-hle.d: Likewise.
        * gas/i386/x86-64-hle.s: Likewise.
        * gas/i386/x86-64-hlebad.l: Likewise.
        * gas/i386/x86-64-hlebad.s: Likewise.
        * gas/i386/x86-64-rtm-intel.d: Likewise.
        * gas/i386/x86-64-rtm.d: Likewise.
        * gas/i386/x86-64-rtm.s: Likewise.

        * gas/i386/i386.exp: Run hle, hle-intel, hlebad x86-64-hle, rtm,
        rtm-intel, x86-64-hle-intel, x86-64-hlebad, x86-64-rtm and
        x86-64-rtm-intel.

include/opcode/

2012-02-08  H.J. Lu  <hongjiu.lu@...>

        * i386.h (XACQUIRE_PREFIX_OPCODE): New.
        (XRELEASE_PREFIX_OPCODE): Likewise.

opcodes/

2012-02-08  H.J. Lu  <hongjiu.lu@...>

        * i386-dis.c (HLE_Fixup1): New.
        (HLE_Fixup2): Likewise.
        (HLE_Fixup3): Likewise.
        (Ebh1): Likewise.
        (Evh1): Likewise.
        (Ebh2): Likewise.
        (Evh2): Likewise.
        (Ebh3): Likewise.
        (Evh3): Likewise.
        (MOD_C6_REG_7): Likewise.
        (MOD_C7_REG_7): Likewise.
        (RM_C6_REG_7): Likewise.
        (RM_C7_REG_7): Likewise.
        (XACQUIRE_PREFIX): Likewise.
        (XRELEASE_PREFIX): Likewise.
        (dis386): Use Ebh1/Evh1 on add, adc, and, btc, btr, bts,
        cmpxchg, dec, inc, neg, not, or, sbb, sub, xor and xadd. Use
        Ebh2/Evh2 on xchg.  Use Ebh3/Evh3 on mov.
        (reg_table): Use Ebh1/Evh1 on add, adc, and, dec, inc, neg,
        not, or, sbb, sub and xor.  Use Ebh3/Evh3 on mov.  Use
        MOD_C6_REG_7 and MOD_C7_REG_7.
        (mod_table): Add MOD_C6_REG_7 and MOD_C7_REG_7.
        (rm_table): Add RM_C6_REG_7 and RM_C7_REG_7.  Add xend and
        xtest.
        (prefix_name): Handle XACQUIRE_PREFIX and XRELEASE_PREFIX.
        (CMPXCHG8B_Fixup): Handle HLE prefix on cmpxchg8b.

        * i386-gen.c (cpu_flag_init): Add CPU_HLE_FLAGS and
        CPU_RTM_FLAGS.
        (cpu_flags): Add CpuHLE and CpuRTM.
        (opcode_modifiers): Add HLEPrefixOk.

        * i386-opc.h (CpuHLE): New.
        (CpuRTM): Likewise.
        (HLEPrefixOk): Likewise.
        (i386_cpu_flags): Add cpuhle and cpurtm.
        (i386_opcode_modifier): Add hleprefixok.

        * i386-opc.tbl: Add HLEPrefixOk=3 to mov.  Add HLEPrefixOk to
        add, adc, and, btc, btr, bts, cmpxchg, dec, inc, neg, not, or,
        sbb, sub, xor and xadd.  Add HLEPrefixOk=2 to xchg with memory
        operand.  Add xacquire, xrelease, xabort, xbegin, xend and
        xtest.
        * i386-init.h: Regenerated.
        * i386-tbl.h: Likewise.


binutils-tsx.patch.bz2 (42K) Download Attachment

 « Return to Thread: PATCH: Implement Intel Transactional Synchronization Extensions