diff options
author | Terry Guo <xuepeng.guo@intel.com> | 2018-11-05 13:28:48 +0800 |
---|---|---|
committer | Cui,Lili <lili.cui@intel.com> | 2020-09-23 10:47:44 +0800 |
commit | c4694f172b51a2168b8cc15109ab1b97fc0bcb9c (patch) | |
tree | 1c50e8425fdad64ae7dd733b0f377e392fa3ee52 /gas/config/tc-i386.c | |
parent | 9fcff415820e37db422500d80c78df32fa2f34f6 (diff) | |
download | gdb-c4694f172b51a2168b8cc15109ab1b97fc0bcb9c.zip gdb-c4694f172b51a2168b8cc15109ab1b97fc0bcb9c.tar.gz gdb-c4694f172b51a2168b8cc15109ab1b97fc0bcb9c.tar.bz2 |
Enable support to Intel Keylocker instructions
gas/
* NEWS: Add Key Locker.
* config/tc-i386.c (cpu_arch): Add .kl and .wide_kl.
(cpu_noarch): Likewise.
* doc/c-i386.texi: Document kl and wide_kl.
* testsuite/gas/i386/i386.exp: Run keylocker tests.
* testsuite/gas/i386/keylocker-intel.d: New test.
* testsuite/gas/i386/keylocker.d: Likewise.
* testsuite/gas/i386/keylocker.s: Likewise.
* testsuite/gas/i386/x86-64-keylocker-intel.d: Likewise.
* testsuite/gas/i386/x86-64-keylocker.d: Likewise.
* testsuite/gas/i386/x86-64-keylocker.s: Likewise.
* testsuite/gas/i386/x86-64-property-10.d: Likewise.
* testsuite/gas/i386/property-10.d: Likewise.
* testsuite/gas/i386/property-10.s: Likewise.
opcodes/
* i386-dis.c (enum): Add REG_0F38D8_PREFIX_1,
MOD_0F38FA_PREFIX_1, MOD_0F38FB_PREFIX_1,
MOD_0F38DC_PREFIX_1, MOD_0F38DD_PREFIX_1,
MOD_0F38DE_PREFIX_1, MOD_0F38DF_PREFIX_1,
PREFIX_0F38D8, PREFIX_0F38FA, PREFIX_0F38FB.
(reg_table): New instructions (see prefixes above).
(prefix_table): Likewise.
(three_byte_table): Likewise.
(mod_table): Likewise
* i386-gen.c (cpu_flag_init): Add CPU_KL_FLAGS, CPU_WIDE_KL_FLAGS,
CPU_ANY_KL_FLAGS and CPU_ANY_WIDE_KL_FLAGS.
(cpu_flags): Likewise.
(operand_type_init): Likewise.
* i386-opc.h (enum): Add CpuKL and CpuWide_KL.
(i386_cpu_flags): Add cpukl and cpuwide_kl.
* i386-opc.tbl: Add KL and WIDE_KL insns.
* i386-init.h: Regenerate.
* i386-tbl.h: Likewise.
Diffstat (limited to 'gas/config/tc-i386.c')
-rw-r--r-- | gas/config/tc-i386.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index d237352..60b2fea 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1232,6 +1232,10 @@ static const arch_entry cpu_arch[] = CPU_SEV_ES_FLAGS, 0 }, { STRING_COMMA_LEN (".tsxldtrk"), PROCESSOR_UNKNOWN, CPU_TSXLDTRK_FLAGS, 0 }, + { STRING_COMMA_LEN (".kl"), PROCESSOR_UNKNOWN, + CPU_KL_FLAGS, 0 }, + { STRING_COMMA_LEN (".widekl"), PROCESSOR_UNKNOWN, + CPU_WIDEKL_FLAGS, 0 }, }; static const noarch_entry cpu_noarch[] = @@ -1281,6 +1285,8 @@ static const noarch_entry cpu_noarch[] = { STRING_COMMA_LEN ("noenqcmd"), CPU_ANY_ENQCMD_FLAGS }, { STRING_COMMA_LEN ("noserialize"), CPU_ANY_SERIALIZE_FLAGS }, { STRING_COMMA_LEN ("notsxldtrk"), CPU_ANY_TSXLDTRK_FLAGS }, + { STRING_COMMA_LEN ("nokl"), CPU_ANY_KL_FLAGS }, + { STRING_COMMA_LEN ("nowidekl"), CPU_ANY_WIDEKL_FLAGS }, }; #ifdef I386COFF @@ -9199,7 +9205,9 @@ output_insn (void) || i.tm.base_opcode == 0xf77 /* emms */ || i.tm.base_opcode == 0xf0e /* femms */) x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX; - if ((i.xstate & xstate_xmm)) + if ((i.xstate & xstate_xmm) + || i.tm.cpu_flags.bitfield.cpuwidekl + || i.tm.cpu_flags.bitfield.cpukl) x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XMM; if ((i.xstate & xstate_ymm) == xstate_ymm) x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM; |