Trait yaxpeax_core::analyses::memory_layout::MemoryAccessBaseInference[][src]

pub trait MemoryAccessBaseInference {
    type Base;
    type Addend;
    fn infer_base_and_addend(&self) -> Option<(Self::Base, Self::Addend)>;
}
Expand description

in most cases, Base and Addend should both be Self.

Associated Types

type of the base address for some. as a common example, the value of a machine’s stack pointer will often be of this type.

type of the offsets for some access. this is defined with respect to Self::Base; it’s possible to simply say Self::Addend is always zero, but memory layout inference will be better behaved if Self::Addend can be selected so that a common Self::Base is reported. as a common example, offsets for stack-local storage probably should be represented by Addend. additionally, value sets in registers would make for good Self::Addend candidates.

Required methods

given some Value, self, try to interpret self as a base plus addend-style memory access. the base should be a constant or a fully-unbounded variable, where addend may be a constant, bounded variable, or value set.

Implementations on Foreign Types

Implementors