diff options
author | Bernhard Schommer <bschommer@users.noreply.github.com> | 2017-10-19 13:08:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-19 13:08:13 +0200 |
commit | 6a010b47b216c5a6b6e85abcfbba5339bab15dd6 (patch) | |
tree | 4c7f8bacd081f023cfd3220b0aac0e186567d051 /backend/RTLtyping.v | |
parent | a0f238a3d270edd7042d9852d43e3ec5b9602af2 (diff) | |
download | compcert-6a010b47b216c5a6b6e85abcfbba5339bab15dd6.tar.gz compcert-6a010b47b216c5a6b6e85abcfbba5339bab15dd6.zip |
New support for inserting ais-annotations.
The ais annotations can be inserted via the new ais variants of
the builtin annotation. They mainly differe in that they have an
address format specifier '%addr' which will be replaced by the
adress in the binary.
The implementation simply prints a label for the builtin call
alongside a the text of the annotation as comment and inserts the
annotation together as acii string in a separate section
'ais_annotations' and replaces the usages of the address format
specifiers by the address of the label of the builtin call.
Diffstat (limited to 'backend/RTLtyping.v')
-rw-r--r-- | backend/RTLtyping.v | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/backend/RTLtyping.v b/backend/RTLtyping.v index fef74706..8336d1bf 100644 --- a/backend/RTLtyping.v +++ b/backend/RTLtyping.v @@ -132,7 +132,7 @@ Inductive wt_instr : instruction -> Prop := | wt_Ibuiltin: forall ef args res s, match ef with - | EF_annot _ _ | EF_debug _ _ _ => True + | EF_annot _ _ _ | EF_debug _ _ _ => True | _ => map type_of_builtin_arg args = (ef_sig ef).(sig_args) end -> type_of_builtin_res res = proj_sig_res (ef_sig ef) -> @@ -308,7 +308,7 @@ Definition type_instr (e: S.typenv) (i: instruction) : res S.typenv := do x <- check_successor s; do e1 <- match ef with - | EF_annot _ _ | EF_debug _ _ _ => OK e + | EF_annot _ _ _ | EF_debug _ _ _ => OK e | _ => type_builtin_args e args sig.(sig_args) end; type_builtin_res e1 res (proj_sig_res sig) @@ -702,7 +702,7 @@ Proof. exploit type_builtin_res_complete; eauto. instantiate (1 := res). intros [e2 [C D]]. exploit type_builtin_res_complete. eexact H. instantiate (1 := res). intros [e3 [E F]]. rewrite check_successor_complete by auto. simpl. - exists (match ef with EF_annot _ _ | EF_debug _ _ _ => e3 | _ => e2 end); split. + exists (match ef with EF_annot _ _ _ | EF_debug _ _ _ => e3 | _ => e2 end); split. rewrite H1 in C, E. destruct ef; try (rewrite <- H0; rewrite A); simpl; auto. destruct ef; auto. |