MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / operands

Method operands

rust/src/high_level_il/lift.rs:294–462  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

292 }
293
294 pub fn operands(&self) -> Vec<(&'static str, HighLevelILLiftedOperand)> {
295 use HighLevelILLiftedInstructionKind::*;
296 use HighLevelILLiftedOperand as Operand;
297 match &self.kind {
298 Nop | Break | Continue | Noret | Unreachable | Bp | Undef | Unimpl => vec![],
299 Adc(op) | Sbb(op) | Rlc(op) | Rrc(op) => vec![
300 ("left", Operand::Expr(*op.left.clone())),
301 ("right", Operand::Expr(*op.right.clone())),
302 ("carry", Operand::Expr(*op.carry.clone())),
303 ],
304 Add(op) | Sub(op) | And(op) | Or(op) | Xor(op) | Lsl(op) | Lsr(op) | Asr(op)
305 | Rol(op) | Ror(op) | Mul(op) | MuluDp(op) | MulsDp(op) | Divu(op) | DivuDp(op)
306 | Divs(op) | DivsDp(op) | Modu(op) | ModuDp(op) | Mods(op) | ModsDp(op) | CmpE(op)
307 | CmpNe(op) | CmpSlt(op) | CmpUlt(op) | CmpSle(op) | CmpUle(op) | CmpSge(op)
308 | CmpUge(op) | CmpSgt(op) | CmpUgt(op) | TestBit(op) | AddOverflow(op) | Fadd(op)
309 | Fsub(op) | Fmul(op) | Fdiv(op) | FcmpE(op) | FcmpNe(op) | FcmpLt(op) | FcmpLe(op)
310 | FcmpGe(op) | FcmpGt(op) | FcmpO(op) | FcmpUo(op) => vec![
311 ("left", Operand::Expr(*op.left.clone())),
312 ("right", Operand::Expr(*op.right.clone())),
313 ],
314 ArrayIndex(op) => vec![
315 ("src", Operand::Expr(*op.src.clone())),
316 ("index", Operand::Expr(*op.index.clone())),
317 ],
318 ArrayIndexSsa(op) => vec![
319 ("src", Operand::Expr(*op.src.clone())),
320 ("src_memory", Operand::Int(op.src_memory)),
321 ("index", Operand::Expr(*op.index.clone())),
322 ],
323 Assign(op) => vec![
324 ("dest", Operand::Expr(*op.dest.clone())),
325 ("src", Operand::Expr(*op.src.clone())),
326 ],
327 AssignMemSsa(op) => vec![
328 ("dest", Operand::Expr(*op.dest.clone())),
329 ("dest_memory", Operand::Int(op.dest_memory)),
330 ("src", Operand::Expr(*op.src.clone())),
331 ("src_memory", Operand::Int(op.src_memory)),
332 ],
333 AssignUnpack(op) => vec![
334 ("dest", Operand::ExprList(op.dest.clone())),
335 ("src", Operand::Expr(*op.src.clone())),
336 ],
337 AssignUnpackMemSsa(op) => vec![
338 ("dest", Operand::ExprList(op.dest.clone())),
339 ("dest_memory", Operand::Int(op.dest_memory)),
340 ("src", Operand::Expr(*op.src.clone())),
341 ("src_memory", Operand::Int(op.src_memory)),
342 ],
343 Block(op) => vec![("body", Operand::ExprList(op.body.clone()))],
344 Call(op) | Tailcall(op) => vec![
345 ("dest", Operand::Expr(*op.dest.clone())),
346 ("params", Operand::ExprList(op.params.clone())),
347 ],
348 CallSsa(op) => vec![
349 ("dest", Operand::Expr(*op.dest.clone())),
350 ("params", Operand::ExprList(op.params.clone())),
351 ("dest_memory", Operand::Int(op.dest_memory)),

Callers 2

print_il_exprFunction · 0.45
print_il_exprFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected