diff options
author | 2009-11-19 13:31:08 +0000 | |
---|---|---|
committer | 2009-11-19 13:31:08 +0000 | |
commit | cdf83055d96e2af784a97c783c94b83ba2032ae1 (patch) | |
tree | 908255b3dc26d69a27f55ae430fb6529934dde32 /arm/PrintAsm.ml | |
parent | d0ed98b8fd61a88cf8e9514015a8f2419fd59575 (diff) |
Added support for jump tables.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@1181 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'arm/PrintAsm.ml')
-rw-r--r-- | arm/PrintAsm.ml | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arm/PrintAsm.ml b/arm/PrintAsm.ml index 9297a69..2239911 100644 --- a/arm/PrintAsm.ml +++ b/arm/PrintAsm.ml @@ -356,6 +356,12 @@ let print_instruction oc labels = function let lbl = label_symbol id ofs in fprintf oc " ldr %a, .L%d @ %a\n" ireg r1 lbl print_symb_ofs (id, ofs); 1 + | Pbtbl(r, tbl) -> + fprintf oc " ldr pc, [pc, %a]\n" ireg r; + fprintf oc " mov r0, r0\n"; (* no-op *) + List.iter + (fun l -> fprintf oc " .word %a\n" label (transl_label l)); + 2 + List.length tbl let no_fallthrough = function | Pb _ -> true |