diff options
author | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-03-16 13:51:33 +0100 |
---|---|---|
committer | Bernhard Schommer <bernhardschommer@gmail.com> | 2016-03-16 13:51:33 +0100 |
commit | 1e08d4adb241e076a96f9525fdb8359cf8845527 (patch) | |
tree | 0ef2e4239e970c9904a94a5675ce0f73dc0f1fb4 /powerpc/Asmexpand.ml | |
parent | 9d95c2ce76bffe4be06697ac99936c7703c18a07 (diff) | |
download | compcert-1e08d4adb241e076a96f9525fdb8359cf8845527.tar.gz compcert-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.ml | 8 |
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 |