diff options
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 9297a694..22399112 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 |