aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/Asmgenproof1.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-02-03 12:29:11 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-02-03 12:29:11 +0100
commit7f8ccba038ce9bf7665341c05b89bb5d9b9b536b (patch)
treea939b46a94b7c8aaee8e26c08026905f6c38f3ca /riscV/Asmgenproof1.v
parent4df03aaf5204d2f15885b49fe3f5c9cb61b4596d (diff)
downloadcompcert-kvx-7f8ccba038ce9bf7665341c05b89bb5d9b9b536b.tar.gz
compcert-kvx-7f8ccba038ce9bf7665341c05b89bb5d9b9b536b.zip
Ccomp for long
Diffstat (limited to 'riscV/Asmgenproof1.v')
-rw-r--r--riscV/Asmgenproof1.v14
1 files changed, 8 insertions, 6 deletions
diff --git a/riscV/Asmgenproof1.v b/riscV/Asmgenproof1.v
index 6c722798..ee203da4 100644
--- a/riscV/Asmgenproof1.v
+++ b/riscV/Asmgenproof1.v
@@ -844,7 +844,7 @@ Proof.
{ destruct ob as [[]|]; reflexivity. }
intros until m; intros TR.
destruct cond; simpl in TR; ArgsInv.
-+ (* cmp *)
+(* TODO + (* cmp *)
exploit transl_cond_int32s_correct; eauto. intros (rs' & A & B & C). exists rs'; eauto.
+ (* cmpu *)
exploit transl_cond_int32u_correct; eauto. intros (rs' & A & B & C).
@@ -858,7 +858,7 @@ Proof.
exists rs'; repeat split; eauto. rewrite MKTOT; eauto.
+ (* cmplu *)
exploit transl_cond_int64u_correct; eauto. intros (rs' & A & B & C).
- exists rs'; repeat split; eauto. rewrite B, MKTOT; eauto.
+ exists rs'; repeat split; eauto. rewrite B, MKTOT; eauto.
+ (* cmplimm *)
exploit transl_condimm_int64s_correct; eauto. instantiate (1 := x); eauto with asmgen.
intros (rs' & A & B & C).
@@ -866,7 +866,7 @@ Proof.
+ (* cmpluimm *)
exploit transl_condimm_int64u_correct; eauto. instantiate (1 := x); eauto with asmgen.
intros (rs' & A & B & C).
- exists rs'; repeat split; eauto. rewrite MKTOT; eauto.
+ exists rs'; repeat split; eauto. rewrite MKTOT; eauto.*)
+ (* cmpf *)
destruct (transl_cond_float c0 rd x x0) as [insn normal] eqn:TR.
fold (Val.cmpf c0 (rs x) (rs x0)).
@@ -1137,11 +1137,13 @@ Opaque Int.eq.
{ exploit transl_cond_op_correct; eauto. intros (rs' & A & B & C).
exists rs'; split. eexact A. eauto with asmgen. }
(* Expanded instructions from RTL *)
- 1-4: destruct optR0 as [[]|]; unfold apply_bin_r0_r0r0, apply_bin_r0;
+ 5: econstructor; split; try apply exec_straight_one; simpl; eauto;
+ split; intros; Simpl; rewrite Int.add_commut; auto.
+ 9: econstructor; split; try apply exec_straight_one; simpl; eauto;
+ split; intros; Simpl; rewrite Int64.add_commut; auto.
+ all: destruct optR0 as [[]|]; unfold apply_bin_r0_r0r0, apply_bin_r0;
econstructor; split; try apply exec_straight_one; simpl; eauto;
split; intros; Simpl.
- econstructor; split; try apply exec_straight_one; simpl; eauto;
- split; intros; Simpl. rewrite Int.add_commut. auto.
Qed.
(** Memory accesses *)