pub enum DecodeError {
Show 34 variants
BufferTooSmall,
InvalidEncoding,
InstructionTooLong,
InvalidPrefixSequence,
InvalidRegisterInInstruction,
XopWithPrefix,
VexWithPrefix,
EvexWithPrefix,
InvalidEncodingInMode,
BadLockPrefix,
CsLoad,
Prefix66NotAccepted,
AddressingNotSupported16Bit,
RipRelAddressingNotSupported,
VsibWithoutSib,
InvalidVsibRegs,
VexVvvvMustBeZero,
MaskNotSupported,
MaskRequired,
ErSaeNotSupported,
ZeroingNotSupported,
ZeroingOnMemory,
ZeroingNoMask,
BroadcastNotSupported,
BadEvexVPrime,
BadEvexLl,
SibmemWithoutSib,
InvalidTileRegs,
InvalidDestRegs,
InvalidParameter,
InvalidInstrux,
BufferOverflow,
InvalidEvexByte3,
InternalError(u64),
}
Expand description
Holds all the possible errors that can be encountered by the decoder.
§Notes
If the std
feature is disabled, DecodeError
does not implement the Error
trait.
Variants§
BufferTooSmall
The provided input buffer is too small and does not contain a valid instruction.
InvalidEncoding
Invalid encoding/instruction.
InstructionTooLong
Instruction exceeds the maximum 15 bytes.
InvalidPrefixSequence
Invalid prefix sequence is present.
InvalidRegisterInInstruction
The instruction uses an invalid register.
XopWithPrefix
XOP is present, but also a legacy prefix.
VexWithPrefix
VEX is present, but also a legacy prefix.
EvexWithPrefix
EVEX is present, but also a legacy prefix.
InvalidEncodingInMode
Invalid encoding/instruction.
BadLockPrefix
Invalid usage of LOCK.
CsLoad
An attempt to load the CS register.
Prefix66NotAccepted
0x66 prefix is not accepted.
AddressingNotSupported16Bit
16 bit addressing mode not supported.
RipRelAddressingNotSupported
RIP-relative addressing not supported.
VsibWithoutSib
Instruction uses VSIB, but SIB is not present.
InvalidVsibRegs
VSIB addressing, same vector reg used more than once.
VexVvvvMustBeZero
VEX.VVVV field must be zero.
MaskNotSupported
Masking is not supported.
MaskRequired
Masking is mandatory.
ErSaeNotSupported
Embedded rounding/SAE not supported.
ZeroingNotSupported
Zeroing not supported.
ZeroingOnMemory
Zeroing on memory.
ZeroingNoMask
Zeroing without masking.
BroadcastNotSupported
Broadcast not supported.
BadEvexVPrime
EVEX.V’ field must be one (negated 0).
BadEvexLl
EVEX.L’L field is invalid for the instruction.
SibmemWithoutSib
Instruction uses SIBMEM, but SIB is not present.
InvalidTileRegs
Tile registers are not unique.
InvalidDestRegs
Destination register is not unique (used as src).
InvalidParameter
An invalid parameter was provided.
InvalidInstrux
The INSTRUX contains unexpected values.
BufferOverflow
Not enough space is available.
InvalidEvexByte3
EVEX payload byte 3 is invalid.
InternalError(u64)
Internal library error.
Trait Implementations§
Source§impl Clone for DecodeError
impl Clone for DecodeError
Source§fn clone(&self) -> DecodeError
fn clone(&self) -> DecodeError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more