From 292db3a22261821b759abdca011ab93ed01f3cce Mon Sep 17 00:00:00 2001 From: Cyril SIX Date: Fri, 8 Feb 2019 11:30:51 +0100 Subject: Oshrxlimm --- mppa_k1c/Asmblockgenproof1.v | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'mppa_k1c/Asmblockgenproof1.v') diff --git a/mppa_k1c/Asmblockgenproof1.v b/mppa_k1c/Asmblockgenproof1.v index 81e02e4e..175eca73 100644 --- a/mppa_k1c/Asmblockgenproof1.v +++ b/mppa_k1c/Asmblockgenproof1.v @@ -1164,10 +1164,10 @@ Opaque Int.eq. split; intros; Simpl. + change (Int.repr 32) with Int.iwordsize. set (n' := Int.sub Int.iwordsize n). econstructor; split. - eapply exec_straight_step. simpl; reflexivity. auto. - eapply exec_straight_step. simpl; reflexivity. auto. - eapply exec_straight_step. simpl; reflexivity. auto. - apply exec_straight_one. simpl; reflexivity. auto. + eapply exec_straight_step. simpl; reflexivity. + eapply exec_straight_step. simpl; reflexivity. + eapply exec_straight_step. simpl; reflexivity. + apply exec_straight_one. simpl; reflexivity. split; intros; Simpl. (* - (* Ocast32signed *) exploit cast32signed_correct; eauto. intros (rs' & A & B & C). @@ -1183,6 +1183,19 @@ Opaque Int.eq. rewrite A; simpl. rewrite A. apply Val.lessdef_same. f_equal. rewrite cast32unsigned_from_cast32signed. apply Int64.zero_ext_shru_shl. compute; auto. + contradict n. auto. *) +- (* Oshrxlimm *) + clear H. exploit Val.shrxl_shrl_2; eauto. intros E; subst v; clear EV. + destruct (Int.eq n Int.zero). ++ econstructor; split. apply exec_straight_one. simpl; eauto. + split; intros; Simpl. ++ change (Int.repr 64) with Int64.iwordsize'. set (n' := Int.sub Int64.iwordsize' n). + econstructor; split. + eapply exec_straight_step. simpl; reflexivity. + eapply exec_straight_step. simpl; reflexivity. + eapply exec_straight_step. simpl; reflexivity. + apply exec_straight_one. simpl; reflexivity. + + split; intros; Simpl. - (* Ocmp *) exploit transl_cond_op_correct; eauto. intros (rs' & A & B & C). exists rs'; split. eexact A. eauto with asmgen. @@ -1248,18 +1261,6 @@ Opaque Int.eq. exploit (opimm64_correct Pxorl Pxoril Val.xorl); auto. instantiate (1 := x0); eauto with asmgen. intros (rs' & A & B & C). exists rs'; split; eauto. rewrite B; auto with asmgen. -- (* shrxlimm *) - clear H. exploit Val.shrxl_shrl_2; eauto. intros E; subst v; clear EV. - destruct (Int.eq n Int.zero). -+ econstructor; split. apply exec_straight_one. simpl; eauto. auto. - split; intros; Simpl. -+ change (Int.repr 64) with Int64.iwordsize'. set (n' := Int.sub Int64.iwordsize' n). - econstructor; split. - eapply exec_straight_step. simpl; reflexivity. auto. - eapply exec_straight_step. simpl; reflexivity. auto. - eapply exec_straight_step. simpl; reflexivity. auto. - apply exec_straight_one. simpl; reflexivity. auto. - split; intros; Simpl. *) Qed. -- cgit