Lili Cui
260cd341da
x86: Add support for Intel AMX instructions
gas/
* doc/c-i386.texi: Document amx_int8, amx_bf16 and amx_tile.
* config/tc-i386.c (i386_error): Add invalid_sib_address.
(cpu_arch): Add .amx_int8, .amx_bf16 and .amx_tile.
(cpu_noarch): Add noamx_int8, noamx_bf16 and noamx_tile.
(match_simd_size): Add tmmword check.
(operand_type_match): Add tmmword.
(type_names): Add rTMM.
(i386_error): Add invalid_tmm_register_set.
(check_VecOperands): Handle invalid_sib_address and
invalid_tmm_register_set.
(match_template): Handle invalid_sib_address.
(build_modrm_byte): Handle non-vector SIB and zmmword.
(i386_index_check): Disallow RegIP for non-vector SIB.
(check_register): Handle zmmword.
* testsuite/gas/i386/i386.exp: Add AMX new tests.
* testsuite/gas/i386/intel-regs.d: Add tmm.
* testsuite/gas/i386/intel-regs.s: Add tmm.
* testsuite/gas/i386/x86-64-amx-intel.d: New.
* testsuite/gas/i386/x86-64-amx-inval.l: New.
* testsuite/gas/i386/x86-64-amx-inval.s: New.
* testsuite/gas/i386/x86-64-amx.d: New.
* testsuite/gas/i386/x86-64-amx.s: New.
* testsuite/gas/i386/x86-64-amx-bad.d: New.
* testsuite/gas/i386/x86-64-amx-bad.s: New.
opcodes/
* i386-dis.c (TMM): New.
(EXtmm): Likewise.
(VexTmm): Likewise.
(MVexSIBMEM): Likewise.
(tmm_mode): Likewise.
(vex_sibmem_mode): Likewise.
(REG_VEX_0F3849_X86_64_P_0_W_0_M_1): Likewise.
(MOD_VEX_0F3849_X86_64_P_0_W_0): Likewise.
(MOD_VEX_0F3849_X86_64_P_2_W_0): Likewise.
(MOD_VEX_0F3849_X86_64_P_3_W_0): Likewise.
(MOD_VEX_0F384B_X86_64_P_1_W_0): Likewise.
(MOD_VEX_0F384B_X86_64_P_2_W_0): Likewise.
(MOD_VEX_0F384B_X86_64_P_3_W_0): Likewise.
(MOD_VEX_0F385C_X86_64_P_1_W_0): Likewise.
(MOD_VEX_0F385E_X86_64_P_0_W_0): Likewise.
(MOD_VEX_0F385E_X86_64_P_1_W_0): Likewise.
(MOD_VEX_0F385E_X86_64_P_2_W_0): Likewise.
(MOD_VEX_0F385E_X86_64_P_3_W_0): Likewise.
(RM_VEX_0F3849_X86_64_P_0_W_0_M_1_R_0): Likewise.
(PREFIX_VEX_0F3849_X86_64): Likewise.
(PREFIX_VEX_0F384B_X86_64): Likewise.
(PREFIX_VEX_0F385C_X86_64): Likewise.
(PREFIX_VEX_0F385E_X86_64): Likewise.
(X86_64_VEX_0F3849): Likewise.
(X86_64_VEX_0F384B): Likewise.
(X86_64_VEX_0F385C): Likewise.
(X86_64_VEX_0F385E): Likewise.
(VEX_LEN_0F3849_X86_64_P_0_W_0_M_0): Likewise.
(VEX_LEN_0F3849_X86_64_P_0_W_0_M_1_REG_0_RM_0): Likewise.
(VEX_LEN_0F3849_X86_64_P_2_W_0_M_0): Likewise.
(VEX_LEN_0F3849_X86_64_P_3_W_0_M_0): Likewise.
(VEX_LEN_0F384B_X86_64_P_1_W_0_M_0): Likewise.
(VEX_LEN_0F384B_X86_64_P_2_W_0_M_0): Likewise.
(VEX_LEN_0F384B_X86_64_P_3_W_0_M_0): Likewise.
(VEX_LEN_0F385C_X86_64_P_1_W_0_M_0): Likewise.
(VEX_LEN_0F385E_X86_64_P_0_W_0_M_0): Likewise.
(VEX_LEN_0F385E_X86_64_P_1_W_0_M_0): Likewise.
(VEX_LEN_0F385E_X86_64_P_2_W_0_M_0): Likewise.
(VEX_LEN_0F385E_X86_64_P_3_W_0_M_0): Likewise.
(VEX_W_0F3849_X86_64_P_0): Likewise.
(VEX_W_0F3849_X86_64_P_2): Likewise.
(VEX_W_0F3849_X86_64_P_3): Likewise.
(VEX_W_0F384B_X86_64_P_1): Likewise.
(VEX_W_0F384B_X86_64_P_2): Likewise.
(VEX_W_0F384B_X86_64_P_3): Likewise.
(VEX_W_0F385C_X86_64_P_1): Likewise.
(VEX_W_0F385E_X86_64_P_0): Likewise.
(VEX_W_0F385E_X86_64_P_1): Likewise.
(VEX_W_0F385E_X86_64_P_2): Likewise.
(VEX_W_0F385E_X86_64_P_3): Likewise.
(names_tmm): Likewise.
(att_names_tmm): Likewise.
(intel_operand_size): Handle void_mode.
(OP_XMM): Handle tmm_mode.
(OP_EX): Likewise.
(OP_VEX): Likewise.
* i386-gen.c (cpu_flag_init): Add entries for CpuAMX_INT8,
CpuAMX_BF16 and CpuAMX_TILE.
(operand_type_shorthands): Add RegTMM.
(operand_type_init): Likewise.
(operand_types): Add Tmmword.
(cpu_flag_init): Add CPU_AMX_INT8, CpuAMX_BF16 and CpuAMX_TILE.
(cpu_flags): Add CpuAMX_INT8, CpuAMX_BF16 and CpuAMX_TILE.
* i386-opc.h (CpuAMX_INT8): New.
(CpuAMX_BF16): Likewise.
(CpuAMX_TILE): Likewise.
(SIBMEM): Likewise.
(Tmmword): Likewise.
(i386_cpu_flags): Add cpuamx_int8, cpuamx_bf16 and cpuamx_tile.
(i386_opcode_modifier): Extend width of fields vexvvvv and sib.
(i386_operand_type): Add tmmword.
* i386-opc.tbl: Add AMX instructions.
* i386-reg.tbl: Add AMX registers.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
2020-07-10 05:18:34 -07:00
..
2020-07-06 10:54:36 +01:00
2020-04-30 15:47:30 +01:00
2020-04-20 10:58:16 +01:00
2020-04-20 10:58:16 +01:00
2020-04-30 15:47:30 +01:00
2020-04-20 10:58:16 +01:00
2020-04-20 10:58:16 +01:00
2020-02-26 10:37:25 +10:30
2020-04-30 15:47:30 +01:00
2020-06-11 12:34:37 +01:00
2020-04-30 15:47:30 +01:00
2020-04-30 15:47:30 +01:00
2020-02-26 10:37:25 +10:30
2020-01-01 18:42:54 +10:30
2020-07-06 10:54:36 +01:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-05-21 10:45:33 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-07-07 16:01:48 +03:00
2020-02-25 10:27:07 +02:00
2020-07-07 16:01:48 +03:00
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-04-16 09:52:57 +02:00
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-05-28 21:52:31 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-05 16:22:46 +09:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-07-10 05:18:34 -07:00
2020-01-01 18:12:08 +10:30
2020-07-04 10:34:23 +01:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-04 19:20:33 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-04 19:20:33 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-02-04 14:10:40 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-03-26 20:02:42 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-03-26 20:02:42 +10:30
2020-01-20 15:45:50 +10:30
2020-07-06 13:43:34 +02:00
2020-07-06 13:43:34 +02:00
2020-07-07 08:08:09 +02:00
2019-06-21 13:18:41 -07:00
2020-07-07 08:08:09 +02:00
2020-07-06 13:42:33 +02:00
2020-07-10 05:18:34 -07:00
2020-07-10 05:18:34 -07:00
2020-07-10 05:18:34 -07:00
2020-01-01 18:42:54 +10:30
2020-07-10 05:18:34 -07:00
2020-07-10 05:18:34 -07:00
2020-07-10 05:18:34 -07:00
2020-07-10 05:18:34 -07:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-04-21 16:53:36 +02:00
2020-01-10 17:32:33 +10:30
2020-01-01 18:42:54 +10:30
2020-01-10 17:32:33 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-03-09 08:23:46 -07:00
2020-03-09 08:23:46 -07:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-05-21 10:45:33 +09:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-03-20 12:35:51 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-02-26 10:37:25 +10:30
2020-01-01 18:42:54 +10:30
2020-03-20 12:35:51 +10:30
2020-01-01 18:42:54 +10:30
2020-02-26 10:37:25 +10:30
2020-05-28 22:08:42 +09:30
2020-01-01 18:42:54 +10:30
2020-05-28 21:11:32 +09:30
2020-01-01 18:42:54 +10:30
2020-01-17 12:34:03 -06:00
2020-05-19 20:41:03 +09:00
2020-06-04 16:17:42 +02:00
2020-05-19 20:41:03 +09:00
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-05-19 20:41:03 +09:00
2020-05-19 20:41:03 +09:00
2020-05-19 20:41:03 +09:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-06 14:44:32 +09:30
2020-05-19 18:09:51 -05:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-30 09:54:55 +08:00
2020-06-22 10:01:14 +08:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-03-22 23:20:15 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-05-26 18:15:41 +02:00
2020-01-13 12:12:41 +10:30
2020-01-13 12:12:41 +10:30
2020-01-01 18:42:54 +10:30
2020-04-29 13:13:55 +01:00
2020-04-29 16:09:38 +01:00
2020-05-21 10:45:33 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-05-21 10:45:33 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-10 17:32:33 +10:30
2020-01-01 18:42:54 +10:30
2020-01-10 17:32:33 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-02-26 10:37:25 +10:30
2020-01-01 18:42:54 +10:30
2020-01-13 16:44:27 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-29 10:07:56 +09:30
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-06-04 16:17:42 +02:00
2020-06-04 16:17:42 +02:00
2020-01-01 18:42:54 +10:30
2020-01-01 18:42:54 +10:30
2020-05-21 10:45:33 +09:30
2020-01-14 10:57:52 +10:30
2020-01-08 21:51:32 +10:30
2020-01-08 21:51:32 +10:30
2020-03-25 08:54:18 +10:30