diff --git a/rtl/x86_fpdbgdisas.pp b/rtl/x86_fpdbgdisas.pp index 20b1596c..8cafae8a 100644 --- a/rtl/x86_fpdbgdisas.pp +++ b/rtl/x86_fpdbgdisas.pp @@ -1561,9 +1561,12 @@ end; procedure TX86Disassembler.AddIz; begin - if OperandSize = os16 - then AddOperand(RegValue(regNone), os16, 2, [hvfIncludeHexchar]) - else AddOperand(RegValue(regNone), os32, 4, [hvfIncludeHexchar]); + case OperandSize of + os16:AddOperand(RegValue(regNone), os16, 2, [hvfIncludeHexchar]); + os64:AddOperand(RegValue(regNone), os32, 4, [hvfSigned, hvfIncludeHexchar]); + else + AddOperand(RegValue(regNone), os32, 4, [hvfIncludeHexchar]); + end; end; procedure TX86Disassembler.AddJb; @@ -2739,7 +2742,7 @@ end; procedure TX86Disassembler.DoGroup14; const - OPC: array[0..7] of TOpCode = (OPX_Invalid, OPX_Invalid, OPpsrl, OPpsll, OPX_Invalid, OPX_Invalid, OPpsll, OPpsrl); + OPC: array[0..7] of TOpCode = (OPX_Invalid, OPX_Invalid, OPpsrl, OPpsrl, OPX_Invalid, OPX_Invalid, OPpsll, OPpsll); OPS: array[0..7] of TOpCodeSuffix = (OPSnone, OPSnone, OPSx_q, OPSx_dq, OPSnone, OPSnone, OPSx_q, OPSx_dq); begin Assert(Code[CodeIdx] = $73, 'Not group 14');