insns.dat: Fix issue #171 - valid prefixes not allowed

Instructions like IRET, POPF and PUSHF used to not have a operand size
specifier but after applying macros they received the 'osm' one -
meaning must be the same as the BITS mode. Which is not true for these
instructions, using the operand size prefix doesn't change their
encoding and their default 64-bit encoding is the 32-bit version.

Align these with other similar instructions like RET, RETF and use the
'od#' keyword which returns their previous behavior.

Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com>
This commit is contained in:
Maciej Wieczor-Retman 2026-02-20 15:14:57 +01:00
parent 8744226309
commit 14f887fb4e

View file

@ -356,7 +356,7 @@ SYSENTER void [ 0f 34] P6,NOAPX
SYSEXIT void [ 0f 35] P6,PRIV,NOAPX
SYSRET void [ 0f 07] P6,PRIV,AMD
$zwdq IRET% void [ o# cf] 8086
$zwdq IRET% void [ od# cf] 8086
ERETS void [ f2 0f 01 ca ] FRED,PRIV,LONG
ERETU void [ f3 0f 01 ca ] FRED,PRIV,LONG
@ -378,8 +378,8 @@ LAHF void [ 9f] 8086
SAHF void [ 9e] 8086
SALC void [ d6] 8086,UNDOC,NOLONG
$zwdq PUSHF% void [ nw o# 9c] 8086
$zwdq POPF% void [ nw o# 9d] 8086
$zwdq PUSHF% void [ nw od# 9c] 8086
$zwdq POPF% void [ nw od# 9d] 8086
;# String instructions
$bwdq CMPS% void [ repe o# a6#] 8086,NOAPX