Enum GpReg
pub enum GpReg {
Show 21 variants
Rax,
Rcx,
Rdx,
Rsi,
Rdi,
Rip,
Rbp,
Rbx,
Rsp,
R8,
R9,
R10,
R11,
R12,
R13,
R14,
R15,
FsBase,
GsBase,
RFlags,
Riz,
}
Expand description
The general-purpose registers in the x86-64 state.
Variants§
Trait Implementations§
§impl<'de> Deserialize<'de> for GpReg
impl<'de> Deserialize<'de> for GpReg
§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
§impl JsonSchema for GpReg
impl JsonSchema for GpReg
§fn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the
$ref
keyword. Read more§impl NumberedRegister for GpReg
impl NumberedRegister for GpReg
§impl Ord for GpReg
impl Ord for GpReg
§impl PartialOrd for GpReg
impl PartialOrd for GpReg
§impl Register for GpReg
impl Register for GpReg
§fn mask(&self) -> Option<u64>
fn mask(&self) -> Option<u64>
Indicates which bits may be set. Any bit ‘1’ in the mask may be set, any bit ‘0’ MUST always be set to ‘0’.
Returns
None
when the register is a crate::value::ValueType::Bytes
.
Returns None
when all bits may be set (this is equivalent to returning Some(0xffffffff_ffffffff)
)§fn should_avoid(&self) -> bool
fn should_avoid(&self) -> bool
Returns true if this register should be avoided if possible.
This is used by enumeration to determine which instruction would be best to analyze. Read more
§fn byte_size(&self) -> usize
fn byte_size(&self) -> usize
Returns the number of bytes the register uses.
It must be possible to modify at least one bit in each byte.
§fn is_addr_reg(&self) -> bool
fn is_addr_reg(&self) -> bool
Returns true if the register should always contain a valid memory address.
impl Copy for GpReg
impl Eq for GpReg
impl StructuralPartialEq for GpReg
Auto Trait Implementations§
impl Freeze for GpReg
impl RefUnwindSafe for GpReg
impl Send for GpReg
impl Sync for GpReg
impl Unpin for GpReg
impl UnwindSafe for GpReg
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more