[project @ 1997-09-03 23:39:12 by sof]
[ghc-hetmet.git] / ghc / runtime / main / StgUpdate.lhc
index 7d89844..e5c6690 100644 (file)
@@ -293,6 +293,45 @@ vtbl_StdUpdFrame[] = {
 
 %************************************************************************
 %*                                                                     *
+\subsection[seq-update-code]{Update code for seq}
+%*                                                                     *
+%************************************************************************
+
+
+\begin{code}
+
+IFN_(seqDirectReturn) {
+    void *cont;
+
+    FB_
+    RetReg = (StgRetAddr) SpB[BREL(0)];
+    cont = (void *) SpB[BREL(1)];
+    /* SpB += BREL(2); */
+    JMP_(cont);
+    FE_
+}
+
+/*
+   NB: For direct returns to work properly, the name of the routine must be
+   the same as the name of the vector table with vtbl_ removed and DirectReturn
+   appended.  This is all the mangler understands.
+ */
+
+const W_
+vtbl_seq[] = {
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn,
+    (W_) seqDirectReturn
+};
+\end{code}
+
+%************************************************************************
+%*                                                                     *
 \subsection[existing-con-update-code]{Update code for existing constructors}
 %*                                                                     *
 %************************************************************************