aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arm/Selectionproof.v4
-rw-r--r--backend/Cminor.v2
-rw-r--r--backend/CminorSel.v2
-rw-r--r--powerpc/Selectionproof.v4
4 files changed, 4 insertions, 8 deletions
diff --git a/arm/Selectionproof.v b/arm/Selectionproof.v
index e487d15a..a307597a 100644
--- a/arm/Selectionproof.v
+++ b/arm/Selectionproof.v
@@ -1427,11 +1427,11 @@ Proof.
constructor; auto. destruct b; auto.
(* Sreturn None *)
econstructor; split.
- econstructor. rewrite <- H; reflexivity.
+ econstructor.
constructor; auto. apply call_cont_commut.
(* Sreturn Some *)
econstructor; split.
- econstructor. simpl. auto. eauto with evalexpr.
+ econstructor. simpl. eauto with evalexpr.
constructor; auto. apply call_cont_commut.
(* Sgoto *)
econstructor; split.
diff --git a/backend/Cminor.v b/backend/Cminor.v
index b6186f2e..16f7c3df 100644
--- a/backend/Cminor.v
+++ b/backend/Cminor.v
@@ -478,11 +478,9 @@ Inductive step: state -> trace -> state -> Prop :=
E0 (State f (Sexit (switch_target n default cases)) k sp e m)
| step_return_0: forall f k sp e m,
- f.(fn_sig).(sig_res) = None ->
step (State f (Sreturn None) k (Vptr sp Int.zero) e m)
E0 (Returnstate Vundef (call_cont k) (Mem.free m sp))
| step_return_1: forall f a k sp e m v,
- f.(fn_sig).(sig_res) <> None ->
eval_expr (Vptr sp Int.zero) e m a v ->
step (State f (Sreturn (Some a)) k (Vptr sp Int.zero) e m)
E0 (Returnstate v (call_cont k) (Mem.free m sp))
diff --git a/backend/CminorSel.v b/backend/CminorSel.v
index 60c1d57a..1d5c8c05 100644
--- a/backend/CminorSel.v
+++ b/backend/CminorSel.v
@@ -333,11 +333,9 @@ Inductive step: state -> trace -> state -> Prop :=
E0 (State f (Sexit (switch_target n default cases)) k sp e m)
| step_return_0: forall f k sp e m,
- f.(fn_sig).(sig_res) = None ->
step (State f (Sreturn None) k (Vptr sp Int.zero) e m)
E0 (Returnstate Vundef (call_cont k) (Mem.free m sp))
| step_return_1: forall f a k sp e m v,
- f.(fn_sig).(sig_res) <> None ->
eval_expr (Vptr sp Int.zero) e m nil a v ->
step (State f (Sreturn (Some a)) k (Vptr sp Int.zero) e m)
E0 (Returnstate v (call_cont k) (Mem.free m sp))
diff --git a/powerpc/Selectionproof.v b/powerpc/Selectionproof.v
index 6d629794..5e0b2b27 100644
--- a/powerpc/Selectionproof.v
+++ b/powerpc/Selectionproof.v
@@ -1350,11 +1350,11 @@ Proof.
constructor; auto. destruct b; auto.
(* Sreturn None *)
econstructor; split.
- econstructor. rewrite <- H; reflexivity.
+ econstructor.
constructor; auto. apply call_cont_commut.
(* Sreturn Some *)
econstructor; split.
- econstructor. simpl. auto. eauto with evalexpr.
+ econstructor. simpl. eauto with evalexpr.
constructor; auto. apply call_cont_commut.
(* Sgoto *)
econstructor; split.