diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-05-09 09:00:51 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-05-09 09:00:51 +0200 |
commit | a6b6bf31121d975c915c01f501618d97df7879fb (patch) | |
tree | 061cf73e547622695621fc05ce692c029991c9e0 /common/AST.v | |
parent | 56bac3dc3d45c219db5d9c7b6a97794c00f8115e (diff) | |
download | compcert-a6b6bf31121d975c915c01f501618d97df7879fb.tar.gz compcert-a6b6bf31121d975c915c01f501618d97df7879fb.zip |
Extended inline asm: revised treatment of clobbered registers.
- Treat clobbered registers as being destroyed by EF_inline_asm builtins
(which is the truth, semantically).
- To enable the above, represent clobbers as Coq strings rather than idents
and move register_by_name from Machregsaux.ml to Machregs.v.
- Side benefit: more efficient implementation of Machregsaux.name_of_register.
-# Please enter the commit message for your changes. Lines starting
Diffstat (limited to 'common/AST.v')
-rw-r--r-- | common/AST.v | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/common/AST.v b/common/AST.v index 2550844b..08a19789 100644 --- a/common/AST.v +++ b/common/AST.v @@ -584,7 +584,7 @@ Inductive external_function : Type := (** Another form of annotation that takes one argument, produces an event carrying the text and the value of this argument, and returns the value of the argument. *) - | EF_inline_asm (text: ident) (sg: signature) (clobbers: list ident). + | EF_inline_asm (text: ident) (sg: signature) (clobbers: list String.string). (** Inline [asm] statements. Semantically, treated like an annotation with no parameters ([EF_annot text nil]). To be used with caution, as it can invalidate the semantic @@ -642,7 +642,7 @@ Proof. generalize ident_eq signature_eq chunk_eq typ_eq zeq Int.eq_dec; intros. decide equality. apply list_eq_dec. auto. - apply list_eq_dec. auto. + apply list_eq_dec. apply String.string_dec. Defined. Global Opaque external_function_eq. |