aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/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 /powerpc/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 'powerpc/Asmexpand.ml')
-rw-r--r--powerpc/Asmexpand.ml8
1 files changed, 4 insertions, 4 deletions
diff --git a/powerpc/Asmexpand.ml b/powerpc/Asmexpand.ml
index 86b74ab1..870b20b3 100644
--- a/powerpc/Asmexpand.ml
+++ b/powerpc/Asmexpand.ml
@@ -308,10 +308,10 @@ let rec next_arg_locations ir fr ofs = function
else next_arg_locations ir fr (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 (ir, fr, ofs) =
- next_arg_locations 0 0 0 (!current_function).fn_sig.sig_args in
+ next_arg_locations 0 0 0 (get_current_function_args ()) in
emit_loadimm GPR0 (Z.of_uint ir);
emit (Pstb(GPR0, Cint _0, r));
emit_loadimm GPR0 (Z.of_uint fr);
@@ -642,7 +642,7 @@ let num_crbit = function
let expand_instruction instr =
match instr with
| Pallocframe(sz, ofs,retofs) ->
- let variadic = (!current_function).fn_sig.sig_cc.cc_vararg in
+ let variadic = is_current_function_variadic () in
let sz = camlint_of_coqint sz in
assert (ofs = _0);
let sz = if variadic then Int32.add sz 96l else sz in
@@ -667,7 +667,7 @@ let expand_instruction instr =
set_cr6 sg;
emit instr
| Pfreeframe(sz, ofs) ->
- let variadic = (!current_function).fn_sig.sig_cc.cc_vararg in
+ let variadic = is_current_function_variadic () in
let sz = camlint_of_coqint sz in
let sz = if variadic then Int32.add sz 96l else sz in
if sz < 0x8000l && sz >= 0l then