diff options
Diffstat (limited to 'backend/Linear.v')
-rw-r--r-- | backend/Linear.v | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/backend/Linear.v b/backend/Linear.v index 31c3fed..23f0324 100644 --- a/backend/Linear.v +++ b/backend/Linear.v @@ -44,6 +44,7 @@ Inductive instruction: Type := | Lcall: signature -> mreg + ident -> instruction | Ltailcall: signature -> mreg + ident -> instruction | Lbuiltin: external_function -> list mreg -> mreg -> instruction + | Lannot: external_function -> list loc -> instruction | Llabel: label -> instruction | Lgoto: label -> instruction | Lcond: condition -> list mreg -> label -> instruction @@ -296,6 +297,11 @@ Inductive step: state -> trace -> state -> Prop := external_call ef ge (reglist rs args) m t v m' -> step (State s f sp (Lbuiltin ef args res :: b) rs m) t (State s f sp b (Locmap.set (R res) v (undef_temps rs)) m') + | exec_Lannot: + forall s f sp rs m ef args b t v m', + external_call ef ge (map rs args) m t v m' -> + step (State s f sp (Lannot ef args :: b) rs m) + t (State s f sp b rs m') | exec_Llabel: forall s f sp lbl b rs m, step (State s f sp (Llabel lbl :: b) rs m) |