diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2015-03-27 15:28:20 +0100 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2015-03-27 15:28:20 +0100 |
commit | e11b3b885a6d359925b86743b89698cc6757157a (patch) | |
tree | 4729067203418873c940aa27d45085ca9881905d /arm/SelectOp.vp | |
parent | 33b742bb41725e47bd88dc12f2a4f40173023f83 (diff) | |
download | compcert-e11b3b885a6d359925b86743b89698cc6757157a.tar.gz compcert-e11b3b885a6d359925b86743b89698cc6757157a.zip |
Updating the PowerPC and ARM ports.
PowerPC: always use full register names to print annotations.
Diffstat (limited to 'arm/SelectOp.vp')
-rw-r--r-- | arm/SelectOp.vp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arm/SelectOp.vp b/arm/SelectOp.vp index 6102d82d..fea99ef5 100644 --- a/arm/SelectOp.vp +++ b/arm/SelectOp.vp @@ -489,3 +489,16 @@ Nondetfunction addressing (chunk: memory_chunk) (e: expr) := | _ => (Aindexed Int.zero, e:::Enil) end. +(** ** Arguments of annotations *) + +Nondetfunction annot_arg (e: expr) := + match e with + | Eop (Ointconst n) Enil => AA_int n + | Eop (Oaddrsymbol id ofs) Enil => AA_addrglobal id ofs + | Eop (Oaddrstack ofs) Enil => AA_addrstack ofs + | Eop Omakelong (Eop (Ointconst h) Enil ::: Eop (Ointconst l) Enil ::: Enil) => + AA_long (Int64.ofwords h l) + | Eop Omakelong (h ::: l ::: Enil) => AA_longofwords (AA_base h) (AA_base l) + | Eload chunk (Ainstack ofs) Enil => AA_loadstack chunk ofs + | _ => AA_base e + end. |