[get rid of special handling of the what_t in data and the needed bookeeping.
John Meacham <john@repetae.net>**20100408005039
 Ignore-this: f7f7a584892fb8e064d51d0b057a102c
] hunk ./src/C/FromGrin2.hs 795
-        let wmalloc = jhc_malloc (reference (toExpression $ nodeCacheName t)) (not sf && t `Map.notMember` cpr) nptrs
+        let wmalloc = jhc_malloc (reference (toExpression $ nodeCacheName t)) nptrs'
hunk ./src/C/FromGrin2.hs 797
+            nptrs' = if nptrs > 0 && not sf && t `Map.notMember` cpr then nptrs + 1 else nptrs
hunk ./src/C/FromGrin2.hs 914
-jhc_malloc ntn has_tag nptrs sz | fopts FO.Jgc = functionCall (name "gc_alloc_tag") [v_gc,ntn, tbsize sz, toExpression nptrs, toExpression has_tag]
+jhc_malloc ntn nptrs sz | fopts FO.Jgc = functionCall (name "gc_alloc") [v_gc,ntn, tbsize sz, toExpression nptrs]
hunk ./src/C/FromGrin2.hs 916
-jhc_malloc _ _ 0 sz = functionCall (name "jhc_malloc_atomic") [sz]
-jhc_malloc _ _ _ sz = functionCall (name "jhc_malloc") [sz]
+jhc_malloc _ 0 sz = functionCall (name "jhc_malloc_atomic") [sz]
+jhc_malloc _ _ sz = functionCall (name "jhc_malloc") [sz]
hunk ./src/C/FromGrin2.hs 919
-jhc_malloc_ptrs sz | fopts FO.Jgc =  functionCall (name "gc_alloc_tag") [v_gc,nullPtr,tbsize sz, tbsize sz, toExpression False]
+jhc_malloc_ptrs sz | fopts FO.Jgc =  functionCall (name "gc_alloc") [v_gc,nullPtr,tbsize sz, tbsize sz]
hunk ./src/data/rts/jhc_jgc.c 164
-                int offset = pg->pi.tag ? 1 : 0;
hunk ./src/data/rts/jhc_jgc.c 165
-                for(int i = offset; i < pg->pi.num_ptrs + offset; i++) {
+                for(int i = 0; i < pg->pi.num_ptrs; i++) {
hunk ./src/data/rts/jhc_jgc.c 206
-gc_alloc_tag(gc_t gc,struct s_cache **sc, unsigned count, unsigned nptrs, int tag)
+gc_alloc(gc_t gc,struct s_cache **sc, unsigned count, unsigned nptrs)
hunk ./src/data/rts/jhc_jgc.c 211
-        entry_t *e = s_alloc(gc, find_cache(sc, arena, count, nptrs, tag));
-        debugf("allocated: %p %i %i %i\n",(void *)e, count, nptrs, tag);
+        entry_t *e = s_alloc(gc, find_cache(sc, arena, count, nptrs));
+        debugf("allocated: %p %i %i\n",(void *)e, count, nptrs);
hunk ./src/data/rts/jhc_jgc.c 231
-        if(0) {
+        if(JGC_STATUS) {
hunk ./src/data/rts/jhc_jgc.h 10
-#define JGC_STATUS 0
+#define JGC_STATUS 1
hunk ./src/data/rts/jhc_rts2.c 148
-#define FETCH_TAG(x)      (IS_PTR(x) ? FETCH_MEM_TAG(x) : FETCH_RAW_TAG(x))
+#define FETCH_TAG(x)      RAW_GET_U16(IS_PTR(x) ? FETCH_MEM_TAG(x) : (what_t)(x))
hunk ./src/data/rts/jhc_rts2.c 152
-#define SET_MEM_TAG(x,v)  (DNODEP(x)->what = (v))
+#define SET_MEM_TAG(x,v)  (DNODEP(x)->what = (what_t)RAW_SET_16(v))
hunk ./src/data/rts/slub.c 29
-        unsigned char tag;
hunk ./src/data/rts/slub.c 214
-new_cache(struct s_arena *arena, unsigned short size, unsigned short num_ptrs, unsigned char tag)
+new_cache(struct s_arena *arena, unsigned short size, unsigned short num_ptrs)
hunk ./src/data/rts/slub.c 219
-        sc->pi.tag = tag;
hunk ./src/data/rts/slub.c 269
-find_cache(struct s_cache **rsc, struct s_arena *arena, unsigned short size, unsigned short num_ptrs, unsigned char tag)
+find_cache(struct s_cache **rsc, struct s_arena *arena, unsigned short size, unsigned short num_ptrs)
hunk ./src/data/rts/slub.c 275
-                if(sc->pi.size == size && sc->pi.num_ptrs == num_ptrs && sc->pi.tag == tag)
+                if(sc->pi.size == size && sc->pi.num_ptrs == num_ptrs)
hunk ./src/data/rts/slub.c 278
-        sc = new_cache(arena,size,num_ptrs, tag);
+        sc = new_cache(arena,size,num_ptrs);
hunk ./src/data/rts/slub.c 307
-     //   printf("excess: %i\n", PAGESIZE - sizeof(struct s_page) - sizeof(bitarray_t));
hunk ./src/data/rts/slub.c 310
-        printf("  tag: %i words\n",(int)sc->pi.tag);
-//        printf("  color_off: %i bytes\n",(int)(sc->pi.color*sizeof(uintptr_t)));