aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-05 16:51:08 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-09-05 16:51:08 +0200
commit3db304d599b7edf4ac77eb74c9b37e765b25bbd3 (patch)
treee5d4d506d3c85babde2ca2f2753da5bdd68d564c
parentf9feebf866ec62fc57cb6e7deea9864b65945f16 (diff)
downloadcompcert-kvx-3db304d599b7edf4ac77eb74c9b37e765b25bbd3.tar.gz
compcert-kvx-3db304d599b7edf4ac77eb74c9b37e765b25bbd3.zip
BSload notrap1
-rw-r--r--backend/Allocproof.v20
1 files changed, 19 insertions, 1 deletions
diff --git a/backend/Allocproof.v b/backend/Allocproof.v
index 428bcc0e..fce54563 100644
--- a/backend/Allocproof.v
+++ b/backend/Allocproof.v
@@ -2082,7 +2082,7 @@ Proof.
econstructor; eauto.
eapply wt_exec_Iop; eauto.
-(* load regular *)
+(* load regular TRAP *)
- generalize (wt_exec_Iload _ _ _ _ _ _ _ _ _ _ _ _ WTI H1 WTRS). intros WTRS'.
exploit (exec_moves mv1); eauto. intros [ls1 [A1 B1]].
exploit transfer_use_def_satisf; eauto. intros [X Y].
@@ -2229,6 +2229,24 @@ Proof.
econstructor; eauto.
eapply wt_exec_Iload; eauto.
+- (* BSload notrap1 *)
+ generalize (wt_exec_Iload_notrap _ _ _ _ _ _ _ _ WTI WTRS).
+ intro WTRS'.
+ exploit (exec_moves mv1); eauto. intros [ls1 [A1 B1]].
+ exploit transfer_use_def_satisf; eauto. intros [X Y].
+ exploit eval_addressing_lessdef_none; eauto. intro Haddr.
+ exploit (exec_moves mv2); eauto. intros [ls2 [A2 B2]].
+ econstructor; split.
+ eapply plus_left. econstructor; eauto.
+ eapply star_trans. eexact A1.
+ eapply star_left. eapply exec_Lload_notrap1. rewrite <- Haddr.
+ apply eval_addressing_preserved. exact symbols_preserved. eauto.
+
+ eapply star_right. eexact A2. constructor.
+ eauto. eauto. eauto. traceEq.
+ exploit satisf_successors; eauto. simpl; eauto. intros [enext [U V]].
+ econstructor; eauto.
+
(* store *)
- exploit exec_moves; eauto. intros [ls1 [X Y]].
exploit add_equations_lessdef; eauto. intros LD. simpl in LD. inv LD.