aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmblock.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-20 12:32:11 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-20 12:32:11 +0100
commit61b41b4f2e46ecd4a023ce72e72f697b5f1e2637 (patch)
tree2ecbe0f2fe023c47576475885c3a0ffcaca5b44b /aarch64/Asmblock.v
parent169764e1873c6c04ed8027eec7e016365d6b5434 (diff)
downloadcompcert-kvx-61b41b4f2e46ecd4a023ce72e72f697b5f1e2637.tar.gz
compcert-kvx-61b41b4f2e46ecd4a023ce72e72f697b5f1e2637.zip
draft of the exec_bblock Asmblockdeps proof
Diffstat (limited to 'aarch64/Asmblock.v')
-rw-r--r--aarch64/Asmblock.v20
1 files changed, 15 insertions, 5 deletions
diff --git a/aarch64/Asmblock.v b/aarch64/Asmblock.v
index 3973abc0..bdcead0b 100644
--- a/aarch64/Asmblock.v
+++ b/aarch64/Asmblock.v
@@ -1478,8 +1478,12 @@ Fixpoint exec_body (body: list basic) (rs: regset) (m: mem): outcome :=
Definition incrPC size_b (rs: regset) :=
rs#PC <- (Val.offset_ptr rs#PC size_b).
-Definition estep (f: function) cfi size_b (rs: regset) (m: mem) :=
- exec_cfi f cfi (incrPC size_b rs) m.
+Definition estep (f: function) oc size_b (rs: regset) (m: mem) :=
+ match oc with
+ | Some (PCtlFlow cfi) => exec_cfi f cfi (incrPC size_b rs) m
+ | Some (Pbuiltin ef args res) => None
+ | None => Next (incrPC size_b rs) m
+ end.
(** execution of the exit instruction of a bblock *)
Inductive exec_exit (f: function) size_b (rs: regset) (m: mem): (option control) -> trace -> regset -> mem -> Prop :=
@@ -1497,9 +1501,15 @@ Inductive exec_exit (f: function) size_b (rs: regset) (m: mem): (option control)
exec_exit f size_b rs m (Some (Pbuiltin ef args res)) t rs' m'
.
-Definition bbstep f cfi size_b bdy rs m :=
- match exec_body bdy rs m with
- | Some (State rs' m') => estep f cfi size_b rs' m'
+(*Definition bbstep f cfi size_b bdy rs m :=*)
+ (*match exec_body bdy rs m with*)
+ (*| Some (State rs' m') => estep f cfi size_b rs' m'*)
+ (*| Stuck => Stuck*)
+ (*end.*)
+
+Definition bbstep f bb rs m :=
+ match exec_body (body bb) rs m with
+ | Some (State rs' m') => estep f (exit bb) (Ptrofs.repr (size bb)) rs' m'
| Stuck => Stuck
end.