diff options
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 |