Skip to content
  • Simon Marlow's avatar
    pass arguments to unknown function calls in registers · 04db0e9f
    Simon Marlow authored
    We now have more stg_ap entry points: stg_ap_*_fast, which take
    arguments in registers according to the platform calling convention.
    This is faster if the function being called is evaluated and has the
    right arity, which is the common case (see the eval/apply paper for
    measurements).  
    
    We still need the stg_ap_*_info entry points for stack-based
    application, such as an overflows when a function is applied to too
    many argumnets.  The stg_ap_*_fast functions actually just check for
    an evaluated function, and if they don't find one, push the args on
    the stack and invoke stg_ap_*_info.  (this might be slightly slower in
    some cases, but not the common case).
    04db0e9f