CmmLayoutStack: Add unwind information on stack fixups
[ghc.git] / rts / ClosureFlags.c
index cd2c7e1..9bf3015 100644 (file)
@@ -18,73 +18,73 @@ StgWord16 closure_flags[] = {
  *  to thunks.)
  */
 
-/*                              0    1    2    3    4   5   6   7     8 */
-/*                            HNF  BTM   NS  STA  THU MUT UPT SRT   IND */
+/*                            0    1    2    4   5    6   7     8 */
+/*                          HNF  BTM   NS  THU MUT  UPT SRT   IND */
 
- [INVALID_OBJECT]       =  ( 0                                           ),
- [CONSTR]               =  (_HNF|     _NS                                ),
- [CONSTR_1_0]           =  (_HNF|     _NS                                ),
- [CONSTR_0_1]           =  (_HNF|     _NS                                ),
- [CONSTR_2_0]           =  (_HNF|     _NS                                ),
- [CONSTR_1_1]           =  (_HNF|     _NS                                ),
- [CONSTR_0_2]           =  (_HNF|     _NS                                ),
- [CONSTR_STATIC]        =  (_HNF|     _NS|_STA                           ),
- [CONSTR_NOCAF_STATIC]  =  (_HNF|     _NS|_STA                           ),
- [FUN]                  =  (_HNF|     _NS|                  _SRT         ),
- [FUN_1_0]              =  (_HNF|     _NS|                  _SRT         ),
- [FUN_0_1]              =  (_HNF|     _NS|                  _SRT         ),
- [FUN_2_0]              =  (_HNF|     _NS|                  _SRT         ),
- [FUN_1_1]              =  (_HNF|     _NS|                  _SRT         ),
- [FUN_0_2]              =  (_HNF|     _NS|                  _SRT         ),
- [FUN_STATIC]           =  (_HNF|     _NS|_STA|             _SRT         ),
- [THUNK]                =  (                   _THU|        _SRT         ),
- [THUNK_1_0]            =  (                   _THU|        _SRT         ),
- [THUNK_0_1]            =  (                   _THU|        _SRT         ),
- [THUNK_2_0]            =  (                   _THU|        _SRT         ),
- [THUNK_1_1]            =  (                   _THU|        _SRT         ),
- [THUNK_0_2]            =  (                   _THU|        _SRT         ),
- [THUNK_STATIC]         =  (              _STA|_THU|        _SRT         ),
- [THUNK_SELECTOR]       =  (                   _THU|        _SRT         ),
- [BCO]                  =  (_HNF|     _NS                                ),
- [AP]                   =  (                   _THU                      ),
- [PAP]                  =  (_HNF|     _NS                                ),
- [AP_STACK]             =  (                   _THU                      ),
- [IND]                  =  (          _NS|                        _IND ),
- [IND_STATIC]           =  (          _NS|_STA|                   _IND ),
- [RET_BCO]              =  ( 0                                         ),
- [RET_SMALL]            =  (     _BTM|                       _SRT      ),
- [RET_BIG]              =  (                                 _SRT      ),
- [RET_FUN]              =  ( 0                                         ),
- [UPDATE_FRAME]         =  (     _BTM                                  ),
- [CATCH_FRAME]          =  (     _BTM                                  ),
- [UNDERFLOW_FRAME]      =  (     _BTM                                  ),
- [STOP_FRAME]           =  (     _BTM                                  ),
- [BLACKHOLE]            =  (          _NS|              _UPT           ),
- [BLOCKING_QUEUE]       =  (          _NS|         _MUT|_UPT           ),
- [MVAR_CLEAN]           =  (_HNF|     _NS|         _MUT|_UPT           ),
- [MVAR_DIRTY]           =  (_HNF|     _NS|         _MUT|_UPT           ),
- [TVAR]                 =  (_HNF|     _NS|         _MUT|_UPT           ),
- [ARR_WORDS]            =  (_HNF|     _NS|              _UPT           ),
- [MUT_ARR_PTRS_CLEAN]   =  (_HNF|     _NS|         _MUT|_UPT           ),
- [MUT_ARR_PTRS_DIRTY]   =  (_HNF|     _NS|         _MUT|_UPT           ),
- [MUT_ARR_PTRS_FROZEN0] =  (_HNF|     _NS|         _MUT|_UPT           ),
- [MUT_ARR_PTRS_FROZEN]  =  (_HNF|     _NS|              _UPT           ),
- [MUT_VAR_CLEAN]        =  (_HNF|     _NS|         _MUT|_UPT           ),
- [MUT_VAR_DIRTY]        =  (_HNF|     _NS|         _MUT|_UPT           ),
- [WEAK]                 =  (_HNF|     _NS|              _UPT           ),
- [PRIM]                 =  (_HNF|     _NS|              _UPT           ),
- [MUT_PRIM]             =  (_HNF|     _NS|         _MUT|_UPT           ),
- [TSO]                  =  (_HNF|     _NS|         _MUT|_UPT           ),
- [STACK]                =  (_HNF|     _NS|         _MUT|_UPT           ),
- [TREC_CHUNK]           =  (          _NS|         _MUT|_UPT           ),
- [ATOMICALLY_FRAME]     =  (     _BTM                                  ),
- [CATCH_RETRY_FRAME]    =  (     _BTM                                  ),
- [CATCH_STM_FRAME]      =  (     _BTM                                  ),
- [WHITEHOLE]            =  ( 0                                         ),
- [SMALL_MUT_ARR_PTRS_CLEAN]   =  (_HNF|     _NS|         _MUT|_UPT           ),
- [SMALL_MUT_ARR_PTRS_DIRTY]   =  (_HNF|     _NS|         _MUT|_UPT           ),
- [SMALL_MUT_ARR_PTRS_FROZEN0] =  (_HNF|     _NS|         _MUT|_UPT           ),
- [SMALL_MUT_ARR_PTRS_FROZEN]  =  (_HNF|     _NS|              _UPT           )
+ [INVALID_OBJECT]       =  ( 0                                    ),
+ [CONSTR]               =  (_HNF|     _NS                         ),
+ [CONSTR_1_0]           =  (_HNF|     _NS                         ),
+ [CONSTR_0_1]           =  (_HNF|     _NS                         ),
+ [CONSTR_2_0]           =  (_HNF|     _NS                         ),
+ [CONSTR_1_1]           =  (_HNF|     _NS                         ),
+ [CONSTR_0_2]           =  (_HNF|     _NS                         ),
+ [CONSTR_NOCAF]         =  (_HNF|     _NS                         ),
+ [FUN]                  =  (_HNF|     _NS|             _SRT       ),
+ [FUN_1_0]              =  (_HNF|     _NS|             _SRT       ),
+ [FUN_0_1]              =  (_HNF|     _NS|             _SRT       ),
+ [FUN_2_0]              =  (_HNF|     _NS|             _SRT       ),
+ [FUN_1_1]              =  (_HNF|     _NS|             _SRT       ),
+ [FUN_0_2]              =  (_HNF|     _NS|             _SRT       ),
+ [FUN_STATIC]           =  (_HNF|     _NS|             _SRT       ),
+ [THUNK]                =  (              _THU|        _SRT       ),
+ [THUNK_1_0]            =  (              _THU|        _SRT       ),
+ [THUNK_0_1]            =  (              _THU|        _SRT       ),
+ [THUNK_2_0]            =  (              _THU|        _SRT       ),
+ [THUNK_1_1]            =  (              _THU|        _SRT       ),
+ [THUNK_0_2]            =  (              _THU|        _SRT       ),
+ [THUNK_STATIC]         =  (              _THU|        _SRT       ),
+ [THUNK_SELECTOR]       =  (              _THU|        _SRT       ),
+ [BCO]                  =  (_HNF|     _NS                         ),
+ [AP]                   =  (              _THU                    ),
+ [PAP]                  =  (_HNF|     _NS                         ),
+ [AP_STACK]             =  (              _THU                    ),
+ [IND]                  =  (          _NS|                   _IND ),
+ [IND_STATIC]           =  (          _NS|                   _IND ),
+ [RET_BCO]              =  ( 0                                    ),
+ [RET_SMALL]            =  (     _BTM|                  _SRT      ),
+ [RET_BIG]              =  (                            _SRT      ),
+ [RET_FUN]              =  ( 0                                    ),
+ [UPDATE_FRAME]         =  (     _BTM                             ),
+ [CATCH_FRAME]          =  (     _BTM                             ),
+ [UNDERFLOW_FRAME]      =  (     _BTM                             ),
+ [STOP_FRAME]           =  (     _BTM                             ),
+ [BLACKHOLE]            =  (          _NS|         _UPT           ),
+ [BLOCKING_QUEUE]       =  (          _NS|    _MUT|_UPT           ),
+ [MVAR_CLEAN]           =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [MVAR_DIRTY]           =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [TVAR]                 =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [ARR_WORDS]            =  (_HNF|     _NS|         _UPT           ),
+ [MUT_ARR_PTRS_CLEAN]   =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [MUT_ARR_PTRS_DIRTY]   =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [MUT_ARR_PTRS_FROZEN0] =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [MUT_ARR_PTRS_FROZEN]  =  (_HNF|     _NS|         _UPT           ),
+ [MUT_VAR_CLEAN]        =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [MUT_VAR_DIRTY]        =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [WEAK]                 =  (_HNF|     _NS|         _UPT           ),
+ [PRIM]                 =  (_HNF|     _NS|         _UPT           ),
+ [MUT_PRIM]             =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [TSO]                  =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [STACK]                =  (_HNF|     _NS|    _MUT|_UPT           ),
+ [TREC_CHUNK]           =  (          _NS|    _MUT|_UPT           ),
+ [ATOMICALLY_FRAME]     =  (     _BTM                             ),
+ [CATCH_RETRY_FRAME]    =  (     _BTM                             ),
+ [CATCH_STM_FRAME]      =  (     _BTM                             ),
+ [WHITEHOLE]            =  ( 0                                    ),
+ [SMALL_MUT_ARR_PTRS_CLEAN]   =  (_HNF|     _NS|     _MUT|_UPT           ),
+ [SMALL_MUT_ARR_PTRS_DIRTY]   =  (_HNF|     _NS|     _MUT|_UPT           ),
+ [SMALL_MUT_ARR_PTRS_FROZEN0] =  (_HNF|     _NS|     _MUT|_UPT           ),
+ [SMALL_MUT_ARR_PTRS_FROZEN]  =  (_HNF|     _NS|          _UPT           ),
+ [COMPACT_NFDATA]       =  (_HNF|     _NS                              ),
 };
 
 #if N_CLOSURE_TYPES != 64