do { let fun' = CmmLoad fun (cmmExprType fun)
; [ret,call] <- forkAlts [
getCode $ emitReturn [fun], -- Is tagged; no need to untag
- getCode $ do emit (mkAssign nodeReg fun)
- emitCall Native (entryCode fun') []] -- Not tagged
+ getCode $ do -- emit (mkAssign nodeReg fun)
+ emitCall (NativeNodeCall, NativeReturn)
+ (entryCode fun') [fun]] -- Not tagged
; emit (mkCmmIfThenElse (cmmIsTagged fun) ret call) }
SlowCall -> do -- A slow function call via the RTS apply routines
do emit $ mkComment $ mkFastString "directEntry"
emit (mkAssign nodeReg fun)
directCall lbl arity args
- -- directCall lbl (arity+1) (StgVarArg fun_id : args))
- -- >>= (emit . (mkComment (mkFastString "DirectEntry") <*>))
else do emit $ mkComment $ mkFastString "directEntry else"
directCall lbl arity args }