aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64/Asmblock.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-09 16:48:53 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-11-09 16:48:53 +0100
commitcd386c6943576049412760c0a72ff90e034a43d2 (patch)
treef68db5dbb9ca03cfd7f36f6afb51afd2ace4730f /aarch64/Asmblock.v
parent86d2b0555ee09d648c8d7373b0a9a4acdcb344e0 (diff)
downloadcompcert-kvx-cd386c6943576049412760c0a72ff90e034a43d2.tar.gz
compcert-kvx-cd386c6943576049412760c0a72ff90e034a43d2.zip
First version of the oracle checker, does not compile yet
Diffstat (limited to 'aarch64/Asmblock.v')
-rw-r--r--aarch64/Asmblock.v9
1 files changed, 9 insertions, 0 deletions
diff --git a/aarch64/Asmblock.v b/aarch64/Asmblock.v
index 4bc56a05..5da7e20a 100644
--- a/aarch64/Asmblock.v
+++ b/aarch64/Asmblock.v
@@ -1470,6 +1470,9 @@ 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.
+
(** 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 :=
| none_step:
@@ -1486,6 +1489,12 @@ 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'
+ | Stuck => Stuck
+ end.
+
Definition exec_bblock (f: function) (b: bblock) (rs: regset) (m: mem) (t:trace) (rs':regset) (m':mem): Prop
:= exists rs1 m1, exec_body (body b) rs m = Next rs1 m1 /\ exec_exit f (Ptrofs.repr (size b)) rs1 m1 (exit b) t rs' m'.