[project @ 2005-01-18 16:28:43 by simonmar]
[ghc-hetmet.git] / ghc / rts / StgStdThunks.cmm
index f1e4f08..386036a 100644 (file)
       UPD_BH_UPDATABLE();                                              \
       LDV_ENTER(R1);                                                   \
       PUSH_UPD_FRAME(Sp - SIZEOF_StgUpdateFrame, R1);                  \
-      ENTER_CCS_THUNK(R1);                                                     \
+      ENTER_CCS_THUNK(R1);                                             \
       SAVE_CCCS(WITHUPD_FRAME_SIZE);                                   \
       W_[Sp-WITHUPD_FRAME_SIZE] = stg_sel_ret_##offset##_upd_info;     \
-      R1 = StgClosure_payload(R1,0);                                           \
+      R1 = StgClosure_payload(R1,0);                                   \
       Sp = Sp - WITHUPD_FRAME_SIZE;                                    \
-      ENTER();                                                         \
+      jump %GET_ENTRY(R1);                                             \
   }
+  /* NOTE: no need to ENTER() here, we know the closure cannot evaluate to a function,
+     because we're going to do a field selection on the result. */
 
 SELECTOR_CODE_UPD(0)
 SELECTOR_CODE_UPD(1)