From d1e36a2fabea3c71a0b6729013a71432a7353a8e Mon Sep 17 00:00:00 2001
From: sewardj <unknown>
Date: Mon, 17 Jan 2000 10:10:17 +0000
Subject: [PATCH] [project @ 2000-01-17 10:10:17 by sewardj] macroCode:
 implement PUSH_SEQ_FRAME

---
 ghc/compiler/nativeGen/StixMacro.lhs | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/ghc/compiler/nativeGen/StixMacro.lhs b/ghc/compiler/nativeGen/StixMacro.lhs
index 02fef7fc2b31..44aead000ee8 100644
--- a/ghc/compiler/nativeGen/StixMacro.lhs
+++ b/ghc/compiler/nativeGen/StixMacro.lhs
@@ -13,7 +13,7 @@ import MachMisc
 import MachRegs
 import AbsCSyn		( CStmtMacro(..), MagicId(..), CAddrMode, tagreg,
 			  CCheckMacro(..) )
-import Constants	( uF_RET, uF_SU, uF_UPDATEE, uF_SIZE )
+import Constants	( uF_RET, uF_SU, uF_UPDATEE, uF_SIZE, sEQ_FRAME_SIZE )
 import CallConv		( cCallConv )
 import OrdList		( OrdList )
 import PrimOp		( PrimOp(..) )
@@ -131,6 +131,17 @@ macroCode PUSH_UPD_FRAME args
 		(StIndex PtrRep stgSp (StInt (toInteger (-uF_SIZE))))
     in
     returnUs (\xs -> a1 : a3 : a4 : updSu : xs)
+
+
+macroCode PUSH_SEQ_FRAME args
+   = let [arg_frame] = map amodeToStix args
+         frame n = StInd PtrRep
+            (StIndex PtrRep arg_frame (StInt (toInteger n)))
+         a1 = StAssign PtrRep (frame 0) seq_frame_info
+         a2 = StAssign PtrRep (frame 1) stgSu
+         updSu = StAssign PtrRep stgSu arg_frame 
+     in
+     returnUs (\xs -> a1 : a2 : updSu : xs)
 \end{code}
 
 -----------------------------------------------------------------------------
@@ -145,8 +156,10 @@ macroCode SET_TAG [tag]
     case stgReg tagreg of
       Always _ -> returnUs id
       Save   _ -> returnUs (\ xs -> set_tag : xs)
+
 \end{code}
 
+
 Do the business for a @HEAP_CHK@, having converted the args to Trees
 of StixOp.
 
@@ -161,7 +174,8 @@ bh_info, ind_static_info, ind_info :: StixTree
 bh_info   	= sStLitLbl SLIT("BLACKHOLE_info")
 ind_static_info	= sStLitLbl SLIT("IND_STATIC_info")
 ind_info  	= sStLitLbl SLIT("IND_info")
-upd_frame_info	= sStLitLbl SLIT("Upd_frame_entry")
+upd_frame_info	= sStLitLbl SLIT("Upd_frame_info")
+seq_frame_info	= sStLitLbl SLIT("seq_frame_info")
 
 -- Some common call trees
 
-- 
GitLab