import Outputable
import Name ( Name, getName, mkSysLocalName )
import Id ( Id, idType, isDataConId_maybe, mkVanillaId,
- isPrimOpId_maybe )
+ isPrimOpId_maybe, idPrimRep )
import OrdList ( OrdList, consOL, snocOL, appOL, unitOL,
nilOL, toOL, concatOL, fromOL )
import FiniteMap ( FiniteMap, addListToFM, listToFM,
pushAtom :: Bool -> Int -> BCEnv -> AnnExpr' Id VarSet -> (BCInstrList, Int)
pushAtom tagged d p (AnnVar v)
+
+ | idPrimRep v == VoidRep
+ = ASSERT(tagged)
+ (unitOL (PUSH_TAG 0), 1)
+
| Just primop <- isPrimOpId_maybe v
= case primop of
CCallOp _ -> panic "pushAtom: byte code generator can't handle CCalls"