%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CgTailCall.lhs,v 1.41 2004/11/26 16:20:12 simonmar Exp $
+% $Id: CgTailCall.lhs,v 1.43 2005/06/21 10:44:41 simonmar Exp $
%
%********************************************************
%* *
:: CgIdInfo -- The function
-> [(CgRep,CmmExpr)] -- Args
-> CmmStmts -- Pending simultaneous assignments
- -- *** GUARANTEED to contain only stack assignments.
+ -- *** GUARANTEED to contain only stack assignments.
-> Code
performTailCall fun_info arg_amodes pending_assts
opt_node_asst | nodeMustPointToIt lf_info = node_asst
| otherwise = noStmts
; EndOfBlockInfo sp _ <- getEndOfBlockInfo
- ; dflags <- getDynFlags
+ ; hmods <- getHomeModules
- ; case (getCallMethod dflags fun_name lf_info (length arg_amodes)) of
+ ; case (getCallMethod hmods fun_name lf_info (length arg_amodes)) of
-- Node must always point to things we enter
EnterIt -> do
-- -----------------------------------------------------------------------------
-- Return Addresses
--- | We always push the return address just before performing a tail call
+-- We always push the return address just before performing a tail call
-- or return. The reason we leave it until then is because the stack
-- slot that the return address is to go into might contain something
-- useful.