aboutsummaryrefslogtreecommitdiffstats
path: root/arm
diff options
context:
space:
mode:
Diffstat (limited to 'arm')
-rw-r--r--arm/CBuiltins.ml4
-rw-r--r--arm/TargetPrinter.ml4
2 files changed, 6 insertions, 2 deletions
diff --git a/arm/CBuiltins.ml b/arm/CBuiltins.ml
index 17aa5115..00de4df7 100644
--- a/arm/CBuiltins.ml
+++ b/arm/CBuiltins.ml
@@ -55,3 +55,7 @@ let builtins = {
let size_va_list = 4
let va_list_scalar = true
+
+(* Expand memory references inside extended asm statements. Used in C2C. *)
+
+let asm_mem_argument arg = Printf.sprintf "[%s, #0]" arg
diff --git a/arm/TargetPrinter.ml b/arm/TargetPrinter.ml
index df17e595..913bff9e 100644
--- a/arm/TargetPrinter.ml
+++ b/arm/TargetPrinter.ml
@@ -1003,9 +1003,9 @@ module Target (Opt: PRINTER_OPTIONS) : TARGET =
(Int32.to_int (camlint_of_coqint al)) args
| EF_annot_val(txt, targ) ->
print_annot_val oc (extern_atom txt) args res
- | EF_inline_asm txt ->
+ | EF_inline_asm(txt, sg) ->
fprintf oc "%s begin inline assembly\n" comment;
- fprintf oc " %s\n" (extern_atom txt);
+ PrintAnnot.print_inline_asm preg oc (extern_atom txt) sg args res;
fprintf oc "%s end inline assembly\n" comment;
5 (* hoping this is an upper bound... *)
| _ ->