From 282bb955f224376150a5860f7a6dd96e189fccdb Mon Sep 17 00:00:00 2001 From: Florian Bernd Date: Sun, 3 Nov 2024 21:16:57 +0100 Subject: [PATCH] Add missing push/pop variants --- include/Zydis/Formatter.h | 4 ++++ src/Generated/DecoderTables.inc | 32 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/include/Zydis/Formatter.h b/include/Zydis/Formatter.h index 2b92de13..9fa490b2 100644 --- a/include/Zydis/Formatter.h +++ b/include/Zydis/Formatter.h @@ -340,6 +340,10 @@ typedef enum ZydisFormatterProperty_ * instead of prepending it as a pseudo prefix. * * The default value is implementation specific: `ZYAN_FALSE` for Intel and `ZYAN_TRUE` for ATT. + * + * WARNING: Suffix mode currently does not correctly follow the standard. The `nf` suffix should + * appear before any additional `zu` and/or `cc` suffix. This is not the case. + * The current implementation would e.g. emit `imulzunf` instead of `imulnfzu`. */ ZYDIS_FORMATTER_PROP_DECO_APX_NF_USE_SUFFIX, diff --git a/src/Generated/DecoderTables.inc b/src/Generated/DecoderTables.inc index 97316d9d..ab6aee97 100644 --- a/src/Generated/DecoderTables.inc +++ b/src/Generated/DecoderTables.inc @@ -201,22 +201,22 @@ const ZydisDecoderTreeNode FILTERS_MODE_COMPACT[][2] = { ZYDIS_INVALID, ZYDIS_DEFINITION(0x0, 0x15A) }, { ZYDIS_INVALID, ZYDIS_DEFINITION(0x0, 0x15A) }, { ZYDIS_INVALID, ZYDIS_DEFINITION(0x0, 0x15A) }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x33), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x34), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x35), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x36), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x37), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x38), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x39), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3A), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3B), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3C), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3D), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3E), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3F), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x40), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x41), ZYDIS_INVALID }, - { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x42), ZYDIS_INVALID }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x33), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x34), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x35), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x36), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x37), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x38), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x39), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3A), ZYDIS_DEFINITION(0x0, 0x5D4) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3B), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3C), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3D), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3E), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x3F), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x40), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x41), ZYDIS_DEFINITION(0x0, 0x527) }, + { ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_REX_W, 0x42), ZYDIS_DEFINITION(0x0, 0x527) }, { ZYDIS_INVALID, ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_OPERAND_SIZE, 0x2) }, { ZYDIS_INVALID, ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_OPERAND_SIZE, 0x3) }, { ZYDIS_INVALID, ZYDIS_FILTER(ZYDIS_NODETYPE_FILTER_OPERAND_SIZE, 0x4) },