aboutsummaryrefslogtreecommitdiffstats
path: root/backend/Injectproof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-04-16 18:01:25 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-04-16 18:01:25 +0200
commit6ae48a2f079d6c420df57cb8616692c3d6cdd0ca (patch)
tree6ba77e86acfa3adfb4f82a33e9b4afec4544f647 /backend/Injectproof.v
parentc023775b1584399e08d05de30291e496cdd776e4 (diff)
downloadcompcert-kvx-6ae48a2f079d6c420df57cb8616692c3d6cdd0ca.tar.gz
compcert-kvx-6ae48a2f079d6c420df57cb8616692c3d6cdd0ca.zip
adapt for Icond with predicted direction
Diffstat (limited to 'backend/Injectproof.v')
-rw-r--r--backend/Injectproof.v16
1 files changed, 8 insertions, 8 deletions
diff --git a/backend/Injectproof.v b/backend/Injectproof.v
index 2506bcc8..75fed25f 100644
--- a/backend/Injectproof.v
+++ b/backend/Injectproof.v
@@ -1651,9 +1651,9 @@ Section INJECTOR.
destruct SKIP as [trs' [MATCH PLUS]].
econstructor; split.
* eapply Smallstep.plus_left.
- ** apply exec_Icond with (b := true) (cond := cond) (args := args) (ifso := pc_inj) (ifnot := ifnot).
+ ** apply exec_Icond with (b := true) (cond := cond) (args := args) (ifso := pc_inj) (ifnot := ifnot) (predb := predb).
exact ALTER.
- replace args with (instr_uses (Icond cond args ifso ifnot)) by reflexivity.
+ replace args with (instr_uses (Icond cond args ifso ifnot predb)) by reflexivity.
rewrite transf_function_preserves_uses with (f := f) (tf := tf) (pc := pc) (rs := rs); trivial.
simpl. reflexivity.
** apply Smallstep.plus_star.
@@ -1669,28 +1669,28 @@ Section INJECTOR.
destruct SKIP as [trs' [MATCH PLUS]].
econstructor; split.
* eapply Smallstep.plus_one.
- apply exec_Icond with (b := false) (cond := cond) (args := args) (ifso := pc_inj) (ifnot := ifnot).
+ apply exec_Icond with (b := false) (cond := cond) (args := args) (ifso := pc_inj) (ifnot := ifnot) (predb := predb).
exact ALTER.
- replace args with (instr_uses (Icond cond args ifso ifnot)) by reflexivity.
+ replace args with (instr_uses (Icond cond args ifso ifnot predb)) by reflexivity.
rewrite transf_function_preserves_uses with (f := f) (tf := tf) (pc := pc) (rs := rs); trivial.
simpl. reflexivity.
* simpl. constructor; auto.
+ destruct b eqn:B.
* econstructor; split.
** eapply Smallstep.plus_one.
- apply exec_Icond with (b := true) (cond := cond) (args := args) (ifso := ifso) (ifnot := ifnot).
+ apply exec_Icond with (b := true) (cond := cond) (args := args) (ifso := ifso) (ifnot := ifnot) (predb := predb).
*** rewrite transf_function_preserves with (f:=f); eauto.
eapply max_pc_function_sound; eauto.
- *** replace args with (instr_uses (Icond cond args ifso ifnot)) by reflexivity.
+ *** replace args with (instr_uses (Icond cond args ifso ifnot predb)) by reflexivity.
rewrite transf_function_preserves_uses with (f := f) (tf := tf) (pc := pc) (rs := rs); trivial.
*** reflexivity.
** constructor; auto.
* econstructor; split.
** eapply Smallstep.plus_one.
- apply exec_Icond with (b := false) (cond := cond) (args := args) (ifso := ifso) (ifnot := ifnot).
+ apply exec_Icond with (b := false) (cond := cond) (args := args) (ifso := ifso) (ifnot := ifnot) (predb := predb).
*** rewrite transf_function_preserves with (f:=f); eauto.
eapply max_pc_function_sound; eauto.
- *** replace args with (instr_uses (Icond cond args ifso ifnot)) by reflexivity.
+ *** replace args with (instr_uses (Icond cond args ifso ifnot predb)) by reflexivity.
rewrite transf_function_preserves_uses with (f := f) (tf := tf) (pc := pc) (rs := rs); trivial.
*** reflexivity.
** constructor; auto.