aboutsummaryrefslogtreecommitdiffstats
path: root/scheduling/BTLtoRTLproof.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-05-04 10:42:08 +0200
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-05-04 10:42:08 +0200
commitd44d44c8fffbd85d501e30b7dfdf93683ed9bb4d (patch)
tree37a2a1e1a5ae3262f73d55a08a3bdc9c99cb34b9 /scheduling/BTLtoRTLproof.v
parent0ed3ee91bad8dc17a77d742ed9c43742c0a833ba (diff)
downloadcompcert-kvx-d44d44c8fffbd85d501e30b7dfdf93683ed9bb4d.tar.gz
compcert-kvx-d44d44c8fffbd85d501e30b7dfdf93683ed9bb4d.zip
proof for Icond in iblock_istep
Diffstat (limited to 'scheduling/BTLtoRTLproof.v')
-rw-r--r--scheduling/BTLtoRTLproof.v32
1 files changed, 31 insertions, 1 deletions
diff --git a/scheduling/BTLtoRTLproof.v b/scheduling/BTLtoRTLproof.v
index 31652697..8df8ef1e 100644
--- a/scheduling/BTLtoRTLproof.v
+++ b/scheduling/BTLtoRTLproof.v
@@ -179,7 +179,37 @@ Proof.
eapply plus_trans; eauto.
- inv MIB.
destruct b; exploit IHIBIS; eauto.
-Admitted.
+ + (* taking ifso *)
+ destruct ofin; simpl.
+ * (* ofin is Some final *)
+ intros (isfst' & pc1 & MI & STAR).
+ repeat eexists; eauto.
+ eapply css_plus_trans.
+ eapply plus_one. eapply exec_Icond; eauto.
+ eauto.
+ * (* ofin is None *)
+ intros (pc1 & OPC & PLUS). inv OPC.
+ inv H10; eexists; split; eauto.
+ all:
+ eapply plus_trans;
+ [ eapply plus_one; eapply exec_Icond; eauto
+ | eauto | eauto ].
+ + (* taking ifnot *)
+ destruct ofin; simpl.
+ * (* ofin is Some final *)
+ intros (isfst' & pc1 & MI & STAR).
+ repeat eexists; eauto.
+ eapply css_plus_trans.
+ eapply plus_one. eapply exec_Icond; eauto.
+ eauto.
+ * (* ofin is None *)
+ intros (pc1 & OPC & PLUS). inv OPC.
+ inv H10; eexists; split; eauto.
+ all:
+ eapply plus_trans;
+ [ eapply plus_one; eapply exec_Icond; eauto
+ | eauto | eauto ].
+Qed.
Lemma iblock_step_simulation sp dupmap stack stack' f f' ib rs0 m0 rs1 m1 pc0 fin t s
(STACKS: list_forall2 match_stackframes stack stack')