diff options
Diffstat (limited to 'aarch64/Asmgenproof.v')
-rw-r--r-- | aarch64/Asmgenproof.v | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/aarch64/Asmgenproof.v b/aarch64/Asmgenproof.v index a33f90b3..d27b3f8c 100644 --- a/aarch64/Asmgenproof.v +++ b/aarch64/Asmgenproof.v @@ -1100,7 +1100,7 @@ Proof. destruct (Mem.loadv chk2 m2 (eval_addressing lk (get_offset_addr a match chk1 with - | Mint32 | Many32 => 4 + | Mint32 | Mfloat32| Many32 => 4 | _ => 8 end) rs1)); inversion HLOAD; auto. @@ -1150,7 +1150,7 @@ Proof. (eval_addressing lk (get_offset_addr a match chk1 with - | Mint32 | Many32 => 4 + | Mint32 | Mfloat32 | Many32 => 4 | _ => 8 end) rs1) v2); inversion HSTORE; auto. @@ -1331,12 +1331,14 @@ Proof. destruct ld. - destruct ld; monadInv TRANSBI; try destruct_ireg_inv; exploit load_rd_a_preserved; eauto; intros; simpl in *; destruct sz; eauto. - - destruct ld; monadInv TRANSBI; exploit load_double_preserved; eauto. } + - destruct ld; monadInv TRANSBI; destruct rd1 as [[rd1'|]|]; destruct rd2 as [[rd2'|]|]; + inv EQ; inv EQ1; exploit load_double_preserved; eauto. } { (* PStore *) destruct st. - destruct st; monadInv TRANSBI; try destruct_ireg_inv; exploit store_rs_a_preserved; eauto; simpl in *; inv_matchi; find_rwrt_ag. - - destruct st; monadInv TRANSBI; exploit store_double_preserved; eauto; + - destruct st; monadInv TRANSBI; destruct rs0 as [[rs0'|]|]; destruct rs3 as [[rs3'|]|]; + inv EQ; inv EQ1; exploit store_double_preserved; eauto; simpl in *; inv_matchi; find_rwrt_ag. } { (* Pallocframe *) monadInv TRANSBI; @@ -2224,8 +2226,7 @@ Proof. - apply senv_preserved. - eexact transf_initial_states. - eexact transf_final_states. - - (* TODO step_simulation *) - unfold match_states. + - unfold match_states. simpl; intros; subst; eexists; split; eauto. eapply step_simulation; eauto. Qed. |