summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO31
1 files changed, 21 insertions, 10 deletions
diff --git a/TODO b/TODO
index 8bbeafb..7dde1e5 100644
--- a/TODO
+++ b/TODO
@@ -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