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 /cfrontend | |
parent | 56bac3dc3d45c219db5d9c7b6a97794c00f8115e (diff) | |
download | compcert-kvx-a6b6bf31121d975c915c01f501618d97df7879fb.tar.gz compcert-kvx-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 'cfrontend')
-rw-r--r-- | cfrontend/C2C.ml | 2 | ||||
-rw-r--r-- | cfrontend/PrintCsyntax.ml | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/cfrontend/C2C.ml b/cfrontend/C2C.ml index 94f13aa1..6ecdb14e 100644 --- a/cfrontend/C2C.ml +++ b/cfrontend/C2C.ml @@ -847,7 +847,7 @@ let convertAsm loc env txt outputs inputs clobber = let (txt', output', inputs') = ExtendedAsm.transf_asm loc env txt outputs inputs clobber in let clobber' = - List.map intern_string clobber in + List.map (fun s -> coqstring_of_camlstring (String.uppercase s)) clobber in let ty_res = match output' with None -> TVoid [] | Some e -> e.etyp in (* Build the Ebuiltin expression *) diff --git a/cfrontend/PrintCsyntax.ml b/cfrontend/PrintCsyntax.ml index 39de282b..bde61cc7 100644 --- a/cfrontend/PrintCsyntax.ml +++ b/cfrontend/PrintCsyntax.ml @@ -299,9 +299,9 @@ and extended_asm p txt res args clob = begin match clob with | [] -> () | c1 :: cl -> - fprintf p "@ : @[<hov 0>%S" (extern_atom c1); + fprintf p "@ : @[<hov 0>%S" (camlstring_of_coqstring c1); List.iter - (fun c -> fprintf p ",@ %S" (extern_atom c)) + (fun c -> fprintf p ",@ %S" (camlstring_of_coqstring c)) cl; fprintf p "@]" end; |