Adds the Intel MPX opcodes bndmov, bndcl, bndcn, bndcu, bndmk, bndldx, bndstx.
Adds the new registers DR_REG_BND0 - DR_REG_BND3 and the new operand types TYPE_T_REG and TYPE_T_MODRM.
Adds the size OPSZ_8x16. Both OPSZ_4x8 and the new size are used in order to avoid a superfluous REX prefix when encoding the MPX instructions.
Adds the function reg_is_bnd().
Adds tests for above.
Removes an invalid encoding from decenc.drdecode_decenc_x86[_64]. The encoding would decode to a bnd instruction with invalid register.
Opcodes have been checked against llvm-mc and binutils/gas/objdump.
In an unrelated change, the unnecessary reg_size_ok() checks from certain TYPE_K_ versions in the encoder have been removed and a TODO comment has been added.
Clients should not rely on binary compatibility of the added opcodes until both issues #3581 (closed) and #1312 have been closed.
Issue: #3581 (closed)