+
+-- #define isEmptyMVarzh(r,a) \
+-- r =(I_)((GET_INFO((StgMVar*)(a))) == &stg_EMPTY_MVAR_info )
+primCode [res] IsEmptyMVarOp [arg]
+ = let res' = amodeToStix res
+ arg' = amodeToStix arg
+ arg_info = StInd PtrRep arg'
+ em_info = StCLbl mkEMPTY_MVAR_infoLabel
+ same = StPrim IntEqOp [arg_info, em_info]
+ assign = StAssign IntRep res' same
+ in
+ returnUs (\xs -> assign : xs)
+
+-- #define myThreadIdzh(t) (t = CurrentTSO)
+primCode [res] MyThreadIdOp []
+ = let res' = amodeToStix res
+ in returnUs (\xs -> StAssign ThreadIdRep res' stgCurrentTSO : xs)
+