Skip to main content

qcode/value/insn/
pcode_op.rs

1use super::mnemonic::{Args, MnemonicKind};
2use crate::value::LocalValueId;
3use serde::{Deserialize, Serialize};
4use smallvec::SmallVec;
5
6pub use pcode_types::PCodeOpId;
7
8#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
9pub struct PCodeOp {
10    pub id: PCodeOpId,
11    pub args: Vec<LocalValueId>,
12    pub dst: Option<LocalValueId>,
13}
14
15impl MnemonicKind for PCodeOp {
16    fn opcode(&self) -> &'static str {
17        "pcode_op"
18    }
19
20    fn args(&self) -> Args {
21        SmallVec::from_vec(self.args.clone())
22    }
23}