Trait yaxpeax_core::data::ValueLocations[][src]

pub trait ValueLocations: Arch {
    type Location: Debug + Hash + Eq + Serialize + for<'de> Deserialize<'de> + Clone + AliasInfo;
    fn decompose(
        op: &Self::Instruction
    ) -> Vec<(Option<Self::Location>, Direction)>; }
Expand description

ValueLocations allows decomposition of an instruction into a series of locations and an indication of them being read or written. this defines the data flow relation between instructions and all locations in programs.

NOTE: ValueLocations is deprecated in favor of LocIterator.

implementation guidance: for correctness, decompose must express the most conservative locations. as an example, x86_64 “push” should not be defined to use a stack-specific location

  • ValueLocations::decompose should simply specify memory access, and allow a Disambiguator with appropriate assumptions to refine the memory access into something appropriate for analysis.

Associated Types

Required methods

Implementations on Foreign Types

Implementors