aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-10-14 11:49:06 +0200
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2020-10-14 11:49:06 +0200
commit969bb53c92f797be3dcb8663b88c7de51491fbf3 (patch)
tree847864fb9ec2309dd111b98f2ae052eb1cfc0870 /aarch64
parentec47f7b92635952b7ae0f1901772ad4203b41f9b (diff)
downloadcompcert-kvx-969bb53c92f797be3dcb8663b88c7de51491fbf3.tar.gz
compcert-kvx-969bb53c92f797be3dcb8663b88c7de51491fbf3.zip
Other subcases for PArith are done.
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/Asmgenproof.v37
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