diff options
author | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2018-11-27 15:34:34 +0100 |
---|---|---|
committer | Sylvain Boulmé <sylvain.boulme@univ-grenoble-alpes.fr> | 2018-11-27 15:34:34 +0100 |
commit | 3af2dc7aaa8c8139ddd26589258f2b289425f591 (patch) | |
tree | e9c5d9912a91f51a80ae462c499e63c2f9ccc650 /backend/Stackingproof.v | |
parent | 5631ccb7c416bb7ecbe7920cb432a78436c0a7ac (diff) | |
download | compcert-kvx-3af2dc7aaa8c8139ddd26589258f2b289425f591.tar.gz compcert-kvx-3af2dc7aaa8c8139ddd26589258f2b289425f591.zip |
Compiles for x86 and mppa_k1c (except Asmexpandaux.ml)
Diffstat (limited to 'backend/Stackingproof.v')
-rw-r--r-- | backend/Stackingproof.v | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/backend/Stackingproof.v b/backend/Stackingproof.v index ffd9b227..326fab61 100644 --- a/backend/Stackingproof.v +++ b/backend/Stackingproof.v @@ -1891,12 +1891,13 @@ Proof. apply plus_one. econstructor. instantiate (1 := v'). rewrite <- A. apply eval_operation_preserved. exact symbols_preserved. eauto. - econstructor; eauto with coqlib. - apply agree_regs_set_reg; auto. - rewrite transl_destroyed_by_op. apply agree_regs_undef_regs; auto. - apply agree_locs_set_reg; auto. apply agree_locs_undef_locs. auto. apply destroyed_by_op_caller_save. - apply frame_set_reg. apply frame_undef_regs. exact SEP. - + econstructor; eauto with coqlib; + try (apply agree_regs_set_reg; auto); + (* generic proof *) + solve [ + (rewrite transl_destroyed_by_op; apply agree_regs_undef_regs; auto) | + (apply agree_locs_set_reg; auto; apply agree_locs_undef_locs; auto; apply destroyed_by_op_caller_save) | + (apply frame_set_reg; apply frame_undef_regs; exact SEP) ]. - (* Lload *) assert (exists a', eval_addressing ge (Vptr sp' Ptrofs.zero) (transl_addr (make_env (function_bounds f)) addr) rs0##args = Some a' |