(&self)
| 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)), |
no outgoing calls
no test coverage detected