aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2021-01-31 00:00:37 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2021-01-31 00:00:37 +0100
commitfc36b9c17b8bfd020258944f555d4d9c68eb8dad (patch)
treeec485e5c1464e84b9c94da4b876538f9810196a3
parent9324c5f828db278d48a0bef9e6cc685da41c2a4b (diff)
downloadcompcert-kvx-fc36b9c17b8bfd020258944f555d4d9c68eb8dad.tar.gz
compcert-kvx-fc36b9c17b8bfd020258944f555d4d9c68eb8dad.zip
add has_type info
-rw-r--r--backend/Selectionproof.v4
1 files changed, 3 insertions, 1 deletions
diff --git a/backend/Selectionproof.v b/backend/Selectionproof.v
index 4d075f4a..8f3f5f00 100644
--- a/backend/Selectionproof.v
+++ b/backend/Selectionproof.v
@@ -783,6 +783,8 @@ Lemma sel_select_opt_correct:
Cminor.eval_expr ge sp e m cond vcond ->
Cminor.eval_expr ge sp e m a1 v1 ->
Cminor.eval_expr ge sp e m a2 v2 ->
+ Val.has_type v1 ty ->
+ Val.has_type v2 ty ->
Val.bool_of_val vcond b ->
env_lessdef e e' -> Mem.extends m m' ->
exists v', eval_expr tge sp e' m' le a v' /\ Val.lessdef (Val.select (Some b) v1 v2 ty) v'.
@@ -792,7 +794,7 @@ Proof.
exploit sel_expr_correct. eexact H0. eauto. eauto. intros (vcond' & EVC & LDC).
exploit sel_expr_correct. eexact H1. eauto. eauto. intros (v1' & EV1 & LD1).
exploit sel_expr_correct. eexact H2. eauto. eauto. intros (v2' & EV2 & LD2).
- assert (Val.bool_of_val vcond' b) by (inv H3; inv LDC; constructor).
+ assert (Val.bool_of_val vcond' b) by (inv H5; inv LDC; constructor).
exploit eval_condition_of_expr. eexact EVC. eauto. rewrite C. intros (vargs' & EVARGS & EVCOND).
exploit eval_select; eauto. intros (v' & X & Y).
exists v'; split; eauto.