mkCall :: CmmExpr -> (Convention, Convention) -> [CmmFormal] -> [CmmActual]
       -> UpdFrameOffset -> [CmmActual] -> FCode CmmAGraph
mkCall f (callConv, retConv) results actuals updfr_off extra_stack = do
  dflags <- getDynFlags
  k      <- newLabelC
  tscp   <- getTickScope
  let area = Young k
      (off, _, copyin) = copyInOflow dflags retConv area results []
      copyout = mkCallReturnsTo dflags f callConv actuals k off updfr_off extra_stack
  return $ catAGraphs [copyout, mkLabel k tscp, copyin]
mkCall :: CmmExpr -> (Convention, Convention) -> [CmmFormal] -> [CmmActual]
       -> UpdFrameOffset -> [CmmActual] -> FCode CmmAGraph
mkCall f (callConv, retConv) results actuals updfr_off extra_stack = do
  dflags <- getDynFlags
  k      <- newLabelC
  tscp   <- getTickScope
  let area = Young k
      (off, _, copyin) = copyInOflow dflags retConv area results []
      copyout = mkCallReturnsTo dflags f callConv actuals k off updfr_off extra_stack
  return $ catAGraphs [copyout, mkLabel k tscp, copyin]
mkCall f (callConv, retConv) results actuals updfr_off extra_stack = do
  dflags <- getDynFlags
  k      <- newLabelC
  tscp   <- getTickScope
  let area = Young k
      (off, _, copyin) = copyInOflow dflags retConv area results []
      copyout = mkCallReturnsTo dflags f callConv actuals k off updfr_off extra_stack
  return $ catAGraphs [copyout, mkLabel k tscp, copyin]