allow build settings to be overriden by adding mk/validate.mk
[ghc-hetmet.git] / includes / Cmm.h
index e494b60..b23a37b 100644 (file)
 #include "DerivedConstants.h"
 #include "ClosureTypes.h"
 #include "StgFun.h"
+#include "OSThreads.h"
+#include "SMP.h"
 
 /*
  * Need MachRegs, because some of the RTS code is conditionally
   if (bdescr_link(CurrentNursery) == NULL || CInt[alloc_blocks] >= CInt[alloc_blocks_lim]) {           \
        R9  = liveness;                                 \
         R10 = reentry;                                 \
+        HpAlloc = 0;                                   \
         jump stg_gc_gen_hp;                            \
    }
 
 #define TICK_SLOW_CALL_ppppp()         TICK_BUMP(SLOW_CALL_ppppp_ctr)
 #define TICK_SLOW_CALL_pppppp()        TICK_BUMP(SLOW_CALL_pppppp_ctr)
 
-#ifdef TICKY_TICKY
-#define TICK_HISTO_BY(histo,n,i)                       \
-        W_ __idx;                                      \
-        __idx = (n);                                   \
-        if (__idx > 8) {                               \
-           __idx = 8;                                  \
-         }                                             \
-        CLong[histo##_hst + _idx*SIZEOF_LONG]          \
-          = histo##_hst + __idx*SIZEOF_LONG] + i;
-#else
+/* NOTE: TICK_HISTO_BY and TICK_HISTO 
+   currently have no effect.
+   The old code for it didn't typecheck and I 
+   just commented it out to get ticky to work.
+   - krc 1/2007 */
+
 #define TICK_HISTO_BY(histo,n,i) /* nothing */
-#endif
 
 #define TICK_HISTO(histo,n) TICK_HISTO_BY(histo,n,1)
 
    Misc junk
    -------------------------------------------------------------------------- */
 
-#define TICK_MILLISECS   (1000/TICK_FREQUENCY)   /* ms per tick */
-
-#define NO_TREC        stg_NO_TREC_closure
-#define END_TSO_QUEUE  stg_END_TSO_QUEUE_closure
+#define NO_TREC                   stg_NO_TREC_closure
+#define END_TSO_QUEUE             stg_END_TSO_QUEUE_closure
+#define END_INVARIANT_CHECK_QUEUE stg_END_INVARIANT_CHECK_QUEUE_closure
 
 #define dirtyTSO(tso) \
     StgTSO_flags(tso) = StgTSO_flags(tso) | TSO_DIRTY::I32;
  __bd = W_[mut_list];                                                  \
   if (bdescr_free(__bd) >= bdescr_start(__bd) + BLOCK_SIZE) {          \
       W_ __new_bd;                                                     \
-      "ptr" __new_bd = foreign "C" allocBlock_lock() [regs];           \
+      ("ptr" __new_bd) = foreign "C" allocBlock_lock() [regs];         \
       bdescr_link(__new_bd) = __bd;                                    \
       __bd = __new_bd;                                                 \
       W_[mut_list] = __bd;                                             \