diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-06-13 18:11:19 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2011-06-13 18:11:19 +0000 |
commit | a5ffc59246b09a389e5f8cbc2f217e323e76990f (patch) | |
tree | e1bc7cc54518aad7c20645f187cee8110de8cff9 /ia32/Asmgen.v | |
parent | 4daccd62b92b23016d3f343d5691f9c164a8a951 (diff) |
Revised handling of annotation statements, and more generally built-in functions, and more generally external functions
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1672 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'ia32/Asmgen.v')
-rw-r--r-- | ia32/Asmgen.v | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ia32/Asmgen.v b/ia32/Asmgen.v index 0e14dee..c87167b 100644 --- a/ia32/Asmgen.v +++ b/ia32/Asmgen.v @@ -441,6 +441,14 @@ Definition transl_store (chunk: memory_chunk) do r <- freg_of src; OK(Pmovsd_mf am r :: k) end. +(** Translation of arguments to annotations *) + +Definition transl_annot_param (p: Mach.annot_param) : Asm.annot_param := + match p with + | Mach.APreg r => APreg (preg_of r) + | Mach.APstack chunk ofs => APstack chunk ofs + end. + (** Translation of a Mach instruction. *) Definition transl_instr (f: Mach.function) (i: Mach.instruction) @@ -486,6 +494,8 @@ Definition transl_instr (f: Mach.function) (i: Mach.instruction) Pret :: k) | Mbuiltin ef args res => OK (Pbuiltin ef (List.map preg_of args) (preg_of res) :: k) + | Mannot ef args => + OK (Pannot ef (map transl_annot_param args) :: k) end. (** Translation of a code sequence *) |