Commit ea453574 authored by simonmar's avatar simonmar
Browse files

[project @ 2004-12-10 13:34:38 by simonmar]

stg_sel_##offset##_upd_entry: the ENTER() here is unnecessary, because
we know the closure in R1 will evaluate to a constructor, so we can
save some time by just entering it directly.
parent 0e6454e6
...@@ -57,13 +57,15 @@ ...@@ -57,13 +57,15 @@
UPD_BH_UPDATABLE(); \ UPD_BH_UPDATABLE(); \
LDV_ENTER(R1); \ LDV_ENTER(R1); \
PUSH_UPD_FRAME(Sp - SIZEOF_StgUpdateFrame, R1); \ PUSH_UPD_FRAME(Sp - SIZEOF_StgUpdateFrame, R1); \
ENTER_CCS_THUNK(R1); \ ENTER_CCS_THUNK(R1); \
SAVE_CCCS(WITHUPD_FRAME_SIZE); \ SAVE_CCCS(WITHUPD_FRAME_SIZE); \
W_[Sp-WITHUPD_FRAME_SIZE] = stg_sel_ret_##offset##_upd_info; \ 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; \ 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(0)
SELECTOR_CODE_UPD(1) SELECTOR_CODE_UPD(1)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment