Enum bddisasm::decode_error::DecodeError
source · 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 moresource§impl Debug for DecodeError
impl Debug for DecodeError
source§impl Display for DecodeError
impl Display for DecodeError
source§impl Error for DecodeError
impl Error for DecodeError
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl Hash for DecodeError
impl Hash for DecodeError
source§impl PartialEq for DecodeError
impl PartialEq for DecodeError
source§fn eq(&self, other: &DecodeError) -> bool
fn eq(&self, other: &DecodeError) -> bool
self
and other
values to be equal, and is used
by ==
.