X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fincludes%2FCmm.h;h=783b0e41bb0e7087e17aca46f7e1b0d8faed8c2d;hb=e6218fe7eff4e34e1a3c823cd4b7aebe09d2d4fb;hp=5a380594beb37692b9fdb1a69d008aa592e3a403;hpb=bdf1f1fe94fc5c55ce46d836a383cf2bd7907c88;p=ghc-hetmet.git diff --git a/ghc/includes/Cmm.h b/ghc/includes/Cmm.h index 5a38059..783b0e4 100644 --- a/ghc/includes/Cmm.h +++ b/ghc/includes/Cmm.h @@ -232,9 +232,11 @@ #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, \ @@ -244,7 +246,7 @@ R1 = StgInd_indirectee(R1); \ goto again; \ } \ - case \ + case \ BCO, \ FUN, \ FUN_1_0, \ @@ -259,7 +261,7 @@ } \ default: \ { \ - jump %GET_ENTRY(R1); \ + jump %ENTRY_CODE(info); \ } \ } @@ -340,11 +342,7 @@ * 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__)]