diff options
-rw-r--r-- | backend/Lineartyping.v | 6 | ||||
-rw-r--r-- | backend/Stackingproof.v | 13 | ||||
-rw-r--r-- | driver/Compiler.v | 2 | ||||
-rw-r--r-- | mppa_k1c/Asmgenproof.v | 8 |
4 files changed, 19 insertions, 10 deletions
diff --git a/backend/Lineartyping.v b/backend/Lineartyping.v index fc163719..bc9fb3ca 100644 --- a/backend/Lineartyping.v +++ b/backend/Lineartyping.v @@ -321,11 +321,11 @@ Local Opaque mreg_type. + (* other ops *) destruct (type_of_operation op) as [ty_args ty_res] eqn:TYOP. InvBooleans. econstructor; eauto. - apply wt_setreg; auto. eapply Val.has_subtype; eauto. + apply wt_setreg; auto; try (apply wt_undef_regs; auto). + eapply Val.has_subtype; eauto. change ty_res with (snd (ty_args, ty_res)). rewrite <- TYOP. eapply type_of_operation_sound; eauto. red; intros; subst op. simpl in ISMOVE. - destruct args; try discriminate. destruct args; discriminate. - apply wt_undef_regs; auto. + destruct args; try discriminate. destruct args; discriminate. - (* load *) simpl in *; InvBooleans. econstructor; eauto. 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' diff --git a/driver/Compiler.v b/driver/Compiler.v index 75247f71..6d398327 100644 --- a/driver/Compiler.v +++ b/driver/Compiler.v @@ -69,7 +69,7 @@ Require Linearizeproof. Require CleanupLabelsproof. Require Debugvarproof. Require Stackingproof. -Require Asmgenproof. +Require Import Asmgenproof. (** Command-line flags. *) Require Import Compopts. diff --git a/mppa_k1c/Asmgenproof.v b/mppa_k1c/Asmgenproof.v index 74be571d..8eb0b693 100644 --- a/mppa_k1c/Asmgenproof.v +++ b/mppa_k1c/Asmgenproof.v @@ -160,3 +160,11 @@ End PRESERVATION. Instance TransfAsm: TransfLink match_prog := pass_match_link (compose_passes block_passes). +(*******************************************) +(* Stub actually needed by driver/Compiler *) + +Module Asmgenproof0. + +Definition return_address_offset := return_address_offset. + +End Asmgenproof0.
\ No newline at end of file |