+ gentopcode stmt@(CModuleInitBlock lbl absC)
+ = gencode absC `thenUs` \ code ->
+ getUniqLabelNCG `thenUs` \ tmp_lbl ->
+ getUniqLabelNCG `thenUs` \ flag_lbl ->
+ returnUs ( StSegment DataSegment
+ : StLabel flag_lbl
+ : StData IntRep [StInt 0]
+ : StSegment TextSegment
+ : StLabel lbl
+ : StCondJump tmp_lbl (StPrim IntNeOp
+ [StInd IntRep (StCLbl flag_lbl),
+ StInt 0])
+ : StAssign IntRep (StInd IntRep (StCLbl flag_lbl)) (StInt 1)
+ : code
+ [ StLabel tmp_lbl
+ , StAssign PtrRep stgSp
+ (StIndex PtrRep stgSp (StInt (-1)))
+ , StJump NoDestInfo (StInd WordRep stgSp)
+ ])
+