pub struct AssumedCallEffect {
pub reads: Vec<VarnodeId>,
pub writes: Vec<VarnodeId>,
}Expand description
The register-space effect the opt-in Proposition::AssumeCallingConvention
hypothesis assigns to an indirect / unresolved call, precomputed once from the
module’s calling convention by the assume_calling_convention pass and cached
on the Shared context so the mem2reg / alias
register classifier can consult it without an ABI in hand.
reads is all convention argument registers (integer + SSE) — reads-all-args
keeps pre-call argument setup live, since a variadic-arity callee may consume
any of them — and writes is the convention’s caller-saved (volatile) set.
Neither the stack- nor the frame-pointer varnode appears in either list: both
are callee-saved, so no ABI argument list or caller-saved set contains them.
Fields§
§reads: Vec<VarnodeId>Argument registers the call is assumed to read.
writes: Vec<VarnodeId>Caller-saved registers the call is assumed to write (clobber).
Trait Implementations§
Source§impl Clone for AssumedCallEffect
impl Clone for AssumedCallEffect
Source§fn clone(&self) -> AssumedCallEffect
fn clone(&self) -> AssumedCallEffect
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more