diff options
author | Xavier Leroy <xavierleroy@users.noreply.github.com> | 2017-08-18 11:23:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-18 11:23:05 +0200 |
commit | f66711dc06c73adf3dd715c564cb6d27b51c5199 (patch) | |
tree | e68a132caa6df4bc3215b638dfe83ddf9db7a506 /backend | |
parent | ab6d5e98b4d967cc7834ad457b36bbf4c141f2ee (diff) | |
parent | fc1b2bfea598354a3e939de35d270376c880e1b0 (diff) | |
download | compcert-f66711dc06c73adf3dd715c564cb6d27b51c5199.tar.gz compcert-f66711dc06c73adf3dd715c564cb6d27b51c5199.zip |
Merge pull request #22 from AbsIntPrivate/arm_large_offsets
Issue #P18: handle large offsets when accessing return address and back link in the stack frame
Diffstat (limited to 'backend')
-rw-r--r-- | backend/Asmgenproof0.v | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/backend/Asmgenproof0.v b/backend/Asmgenproof0.v index 53ecf73a..0250628b 100644 --- a/backend/Asmgenproof0.v +++ b/backend/Asmgenproof0.v @@ -285,6 +285,23 @@ Proof. exploit preg_of_injective; eauto. congruence. Qed. +Lemma agree_undef_regs2: + forall ms sp rl rs rs', + agree (Mach.undef_regs rl ms) sp rs -> + (forall r', data_preg r' = true -> preg_notin r' rl -> rs'#r' = rs#r') -> + agree (Mach.undef_regs rl ms) sp rs'. +Proof. + intros. destruct H. split; auto. + rewrite <- agree_sp0. apply H0; auto. + rewrite preg_notin_charact. intros. apply not_eq_sym. apply preg_of_not_SP. + intros. destruct (In_dec mreg_eq r rl). + rewrite Mach.undef_regs_same; auto. + rewrite H0; auto. + apply preg_of_data. + rewrite preg_notin_charact. intros; red; intros. elim n. + exploit preg_of_injective; eauto. congruence. +Qed. + Lemma agree_set_undef_mreg: forall ms sp rs r v rl rs', agree ms sp rs -> @@ -738,6 +755,18 @@ Ltac TailNoLabel := | _ => idtac end. +Remark tail_nolabel_find_label: + forall lbl k c, tail_nolabel k c -> find_label lbl c = find_label lbl k. +Proof. + intros. destruct H. auto. +Qed. + +Remark tail_nolabel_is_tail: + forall k c, tail_nolabel k c -> is_tail k c. +Proof. + intros. destruct H. auto. +Qed. + (** * Execution of straight-line code *) Section STRAIGHTLINE. |