diff options
author | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2020-10-14 11:49:06 +0200 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2020-10-14 11:49:06 +0200 |
commit | 969bb53c92f797be3dcb8663b88c7de51491fbf3 (patch) | |
tree | 847864fb9ec2309dd111b98f2ae052eb1cfc0870 /aarch64 | |
parent | ec47f7b92635952b7ae0f1901772ad4203b41f9b (diff) | |
download | compcert-kvx-969bb53c92f797be3dcb8663b88c7de51491fbf3.tar.gz compcert-kvx-969bb53c92f797be3dcb8663b88c7de51491fbf3.zip |
Other subcases for PArith are done.
Diffstat (limited to 'aarch64')
-rw-r--r-- | aarch64/Asmgenproof.v | 37 |
1 files changed, 29 insertions, 8 deletions
diff --git a/aarch64/Asmgenproof.v b/aarch64/Asmgenproof.v index 155114ef..f1bc5441 100644 --- a/aarch64/Asmgenproof.v +++ b/aarch64/Asmgenproof.v @@ -1165,16 +1165,37 @@ Proof. + (* PArithComparisonP *) all:admit. + (* Pcset *) - simpl in *. - all:admit. - - all:admit. - - (* + try (monadInv TRANSBI); + try (inv_matchi); + try (exploit next_inst_preserved; eauto); + simpl in *; intros; + unfold if_opt_bool_val in *; unfold eval_testcond in *; + rewrite <- !AG; try congruence; eauto. + + (* Pfmovi *) + try (monadInv TRANSBI); + try (inv_matchi); + try (destruct_reg_size); + try (destruct_ir0_reg); + try (exploit next_inst_preserved; eauto). + + (* Pcsel *) + try (destruct_reg_inv); + try (monadInv TRANSBI); + try (destruct_reg_inv); + try (inv_matchi); + try (exploit next_inst_preserved; eauto); + simpl in *; intros; + unfold if_opt_bool_val in *; unfold eval_testcond in *; + rewrite <- !AG; try congruence; eauto. + + (* Pfnmul *) + try (monadInv TRANSBI); + try (inv_matchi); + try (destruct_reg_size); + try (exploit next_inst_preserved; eauto); + try (find_rwrt_ag). - (* PLoad *) - simpl in*. destruct ld; monadInv TRANSBI; destruct rd as [[r|]|]; try congruence; inversion EQ; subst; exploit load_preserved; eauto; + destruct ld; monadInv TRANSBI; destruct rd as [[r|]|]; try congruence; inversion EQ; subst; exploit load_preserved; eauto; intros; simpl in *; destruct sz; eauto. - *) + all:admit. Admitted. Lemma exec_body_simulation_star': forall |