diff options
Diffstat (limited to 'TODO')
-rw-r--r-- | TODO | 31 |
1 files changed, 21 insertions, 10 deletions
@@ -34,23 +34,34 @@ - New disp8 addressing scheme. Requires emit_reg_regm to deal with it and produce additional information to be stored in EVEX. - - There may be additinal XMM and YMM registers, so we now need the - ability to choose EVEX encoding on the fly. The way to do this is - probably to introduce new optypes XMM_LO, YMM_LO, ZMM_LO(?), and - then change XMM to be XMM_LO | XMM_HI. Ie., similar to the - existing cases where some instructions can be encoded more + - There may (or may not) be additinal XMM and YMM registers, so we + now need the ability to choose EVEX encoding on the fly. The way + to do this is probably to introduce new optypes XMM_LO, YMM_LO, + ZMM_LO(?), and then change XMM to be XMM_LO | XMM_HI. Ie., similar + to the existing cases where some instructions can be encoded more efficiently when the register is ax, in this case some instructions can be encoded with VEX when the registers are *mm0-*mm15 - - Some new variants of existing instructions have a different number - of operands, at least if you count optionals. For example - - vcmppd k1 { k2 }, zmm2, zmm/m512/bcst, imm8 + - A problem is that some of the new instructions have the same name + as existing ones, but different number of arguments. For example + + VPGATHERDD zmm1 {k1}, vm32z + + in AVX-512 vs + + VPGATHERDD xmm1, vm32x, xmm2 + + in AVX-2. There are also things like + + VADDPS zmm1 {k1}{z}, zmm2, zmm3/m512/m32bcst {er} vs - vcmppd ymm1, ymm2, ymm3/m256, imm8 + VADDPS ymm1, ymm2, ymm3/m256 + + A possibility is to just rename the avx-512 instructions to use a vz prefix + instead of v. - Size directives |