aboutsummaryrefslogtreecommitdiff
path: root/patio-to-cranelift/src/patio/instructions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'patio-to-cranelift/src/patio/instructions.rs')
-rw-r--r--patio-to-cranelift/src/patio/instructions.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/patio-to-cranelift/src/patio/instructions.rs b/patio-to-cranelift/src/patio/instructions.rs
index 39c39964..1cba2953 100644
--- a/patio-to-cranelift/src/patio/instructions.rs
+++ b/patio-to-cranelift/src/patio/instructions.rs
@@ -7,6 +7,7 @@ pub(crate) enum PatioInstruction {
Block(PatioBlock),
BoolToInt(PatioBoolToInt),
Call(PatioCall),
+ CallPointer(PatioCallPointer),
If(PatioIf),
IntAdd(PatioIntAdd),
IntEquals(PatioIntEquals),
@@ -39,6 +40,12 @@ pub(crate) struct PatioCall {
pub(crate) args: Vec<PatioOperand>,
}
+pub(crate) struct PatioCallPointer {
+ pub(crate) destination: PatioLocalRef,
+ pub(crate) function_pointer: PatioOperand,
+ pub(crate) args: Vec<PatioOperand>,
+}
+
pub(crate) struct PatioIf {
pub(crate) destinations: Vec<PatioLocalRef>,
pub(crate) condition: PatioOperand,