aboutsummaryrefslogtreecommitdiffstats
path: root/arm/Asmexpand.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2016-03-16 13:51:33 +0100
committerBernhard Schommer <bernhardschommer@gmail.com>2016-03-16 13:51:33 +0100
commit1e08d4adb241e076a96f9525fdb8359cf8845527 (patch)
tree0ef2e4239e970c9904a94a5675ce0f73dc0f1fb4 /arm/Asmexpand.ml
parent9d95c2ce76bffe4be06697ac99936c7703c18a07 (diff)
downloadcompcert-kvx-1e08d4adb241e076a96f9525fdb8359cf8845527.tar.gz
compcert-kvx-1e08d4adb241e076a96f9525fdb8359cf8845527.zip
Added interface for the Asmexpansion.
Hide the reference used internally behind the interface and added some functions to access the needed values. Bug 18394
Diffstat (limited to 'arm/Asmexpand.ml')
-rw-r--r--arm/Asmexpand.ml8
1 files changed, 4 insertions, 4 deletions
diff --git a/arm/Asmexpand.ml b/arm/Asmexpand.ml
index 3283bb09..e114ab28 100644
--- a/arm/Asmexpand.ml
+++ b/arm/Asmexpand.ml
@@ -267,11 +267,11 @@ let rec next_arg_location ir ofs = function
else next_arg_location 4 (align ofs 8 + 8) l
let expand_builtin_va_start r =
- if not !current_function.fn_sig.sig_cc.cc_vararg then
+ if not (is_current_function_variadic ()) then
invalid_arg "Fatal error: va_start used in non-vararg function";
let ofs =
Int32.add
- (next_arg_location 0 0 !current_function.fn_sig.sig_args)
+ (next_arg_location 0 0 (get_current_function_args ()))
!PrintAsmaux.current_function_stacksize in
expand_addimm IR14 IR13 (coqint_of_camlint ofs);
emit (Pstr (IR14,r,SOimm _0))
@@ -363,7 +363,7 @@ let expand_instruction instr =
match instr with
| Pallocframe (sz, ofs) ->
emit (Pmov (IR12,SOreg IR13));
- if (!current_function).fn_sig.sig_cc.cc_vararg then begin
+ if (is_current_function_variadic ()) then begin
emit (Ppush [IR0;IR1;IR2;IR3]);
emit (Pcfi_adjust _16);
end;
@@ -373,7 +373,7 @@ let expand_instruction instr =
PrintAsmaux.current_function_stacksize := camlint_of_coqint sz
| Pfreeframe (sz, ofs) ->
let sz =
- if (!current_function).fn_sig.sig_cc.cc_vararg
+ if (is_current_function_variadic ())
then coqint_of_camlint (Int32.add 16l (camlint_of_coqint sz))
else sz in
if Asmgen.is_immed_arith sz