#define ENTER() \
again: \
+ W_ info; \
+ info = %INFO_PTR(R1); \
switch [INVALID_OBJECT .. N_CLOSURE_TYPES] \
- (TO_W_( %INFO_TYPE(%GET_STD_INFO(R1)) )) { \
- case \
+ (TO_W_( %INFO_TYPE(%STD_INFO(info)) )) { \
+ case \
IND, \
IND_OLDGEN, \
IND_PERM, \
R1 = StgInd_indirectee(R1); \
goto again; \
} \
- case \
+ case \
BCO, \
FUN, \
FUN_1_0, \
} \
default: \
{ \
- jump %GET_ENTRY(R1); \
+ jump %ENTRY_CODE(info); \
} \
}
* the value from GHC, but it seems like too much trouble to do that
* for StgThunkHeader.
*/
-#ifdef SMP
#define SIZEOF_StgThunkHeader SIZEOF_StgHeader+SIZEOF_StgSMPThunkHeader
-#else
-#define SIZEOF_StgThunkHeader SIZEOF_StgHeader
-#endif
#define StgThunk_payload(__ptr__,__ix__) \
W_[__ptr__+SIZEOF_StgThunkHeader+ WDS(__ix__)]