+primCall
+ :: [ExtFCode (CmmReg,MachHint)]
+ -> FastString
+ -> [ExtFCode (CmmExpr,MachHint)]
+ -> Maybe [GlobalReg] -> P ExtCode
+primCall results_code name args_code vols
+ = case lookupUFM callishMachOps name of
+ Nothing -> fail ("unknown primitive " ++ unpackFS name)
+ Just p -> return $ do
+ results <- sequence results_code
+ args <- sequence args_code
+ code (emitForeignCall' PlayRisky results (CmmPrim p) args vols)
+