aboutsummaryrefslogtreecommitdiffstats
path: root/backend/CSE3proof.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-14 08:04:52 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-14 08:04:52 +0100
commit74fef42251167061e7fd863ac2bb06bb6e58d3d4 (patch)
tree78c6255324358e4c8c13047cb67208a2c4942e4a /backend/CSE3proof.v
parent71a3e11b500713b53f13fe64b87ebeb1c9c6e312 (diff)
downloadcompcert-kvx-74fef42251167061e7fd863ac2bb06bb6e58d3d4.tar.gz
compcert-kvx-74fef42251167061e7fd863ac2bb06bb6e58d3d4.zip
Ireturn
Diffstat (limited to 'backend/CSE3proof.v')
-rw-r--r--backend/CSE3proof.v14
1 files changed, 7 insertions, 7 deletions
diff --git a/backend/CSE3proof.v b/backend/CSE3proof.v
index cd129cb2..2a33fa1c 100644
--- a/backend/CSE3proof.v
+++ b/backend/CSE3proof.v
@@ -661,16 +661,16 @@ Proof.
IND_STEP.
- (* Ireturn *)
- destruct or.
+ destruct or as [arg | ].
-- econstructor. split.
- + eapply exec_Ireturn; try eassumption.
- * erewrite transf_function_at by eauto. simpl.
- admit.
+ + eapply exec_Ireturn with (or := Some (subst_arg (ctx:=(context_from_hints (snd (preanalysis tenv f)))) (fst (preanalysis tenv f)) pc arg)).
+ * TR_AT. reflexivity.
* rewrite stacksize_preserved with (f:=f); eauto.
- + econstructor; eauto.
- simpl.
+ + simpl.
+ rewrite subst_arg_ok with (sp:=(Vptr stk Ptrofs.zero)) (m:=m) by trivial.
+ econstructor; eauto.
apply type_function_correct in WTF.
- apply wt_instrs with (pc:=pc) (instr:=(Ireturn (Some r))) in WTF.
+ apply wt_instrs with (pc:=pc) (instr:=(Ireturn (Some arg))) in WTF.
2: assumption.
inv WTF.
rewrite sig_preserved2 with (f:=f) by assumption.