diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-06-13 18:11:19 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-06-13 18:11:19 +0000 |
commit | a5ffc59246b09a389e5f8cbc2f217e323e76990f (patch) | |
tree | e1bc7cc54518aad7c20645f187cee8110de8cff9 /backend/Linear.v | |
parent | 4daccd62b92b23016d3f343d5691f9c164a8a951 (diff) | |
download | compcert-kvx-a5ffc59246b09a389e5f8cbc2f217e323e76990f.tar.gz compcert-kvx-a5ffc59246b09a389e5f8cbc2f217e323e76990f.zip |
Revised handling of annotation statements, and more generally built-in functions, and more generally external functions
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1672 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
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 31c3feda..23f0324e 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) |