* tconc queue now uses 2-words per tconc in the transition to
non-allocating tconc_add procedure.
This commit is contained in:
parent
41e1859b2b
commit
5358680912
BIN
bin/ikarus
BIN
bin/ikarus
Binary file not shown.
|
@ -237,7 +237,7 @@ gc_tconc_push_extending(gc_t* gc, ikp tcbucket){
|
||||||
gc->pcb);
|
gc->pcb);
|
||||||
gc->segment_vector = gc->pcb->segment_vector;
|
gc->segment_vector = gc->pcb->segment_vector;
|
||||||
bzero(ap, pagesize);
|
bzero(ap, pagesize);
|
||||||
ikp nap = ap + wordsize;
|
ikp nap = ap + 2*wordsize;
|
||||||
gc->tconc_base = ap;
|
gc->tconc_base = ap;
|
||||||
gc->tconc_ap = nap;
|
gc->tconc_ap = nap;
|
||||||
gc->tconc_ep = ap + pagesize;
|
gc->tconc_ep = ap + pagesize;
|
||||||
|
@ -248,7 +248,7 @@ gc_tconc_push_extending(gc_t* gc, ikp tcbucket){
|
||||||
static inline void
|
static inline void
|
||||||
gc_tconc_push(gc_t* gc, ikp tcbucket){
|
gc_tconc_push(gc_t* gc, ikp tcbucket){
|
||||||
ikp ap = gc->tconc_ap;
|
ikp ap = gc->tconc_ap;
|
||||||
ikp nap = ap + wordsize;
|
ikp nap = ap + 2*wordsize;
|
||||||
if(nap > gc->tconc_ep){
|
if(nap > gc->tconc_ep){
|
||||||
gc_tconc_push_extending(gc, tcbucket);
|
gc_tconc_push_extending(gc, tcbucket);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1799,7 +1799,7 @@ gc_add_tconcs(gc_t* gc){
|
||||||
ikp q = gc->tconc_ap;
|
ikp q = gc->tconc_ap;
|
||||||
while(p < q){
|
while(p < q){
|
||||||
add_one_tconc(pcb, ref(p,0));
|
add_one_tconc(pcb, ref(p,0));
|
||||||
p += wordsize;
|
p += 2*wordsize;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ikpages* qu = gc->tconc_queue;
|
ikpages* qu = gc->tconc_queue;
|
||||||
|
@ -1809,7 +1809,7 @@ gc_add_tconcs(gc_t* gc){
|
||||||
while(p < q){
|
while(p < q){
|
||||||
add_one_tconc(pcb, ref(p,0));
|
add_one_tconc(pcb, ref(p,0));
|
||||||
ref(p,0) = 0;
|
ref(p,0) = 0;
|
||||||
p += wordsize;
|
p += 2*wordsize;
|
||||||
}
|
}
|
||||||
ikpages* next = qu->next;
|
ikpages* next = qu->next;
|
||||||
ik_free(qu, sizeof(ikpages));
|
ik_free(qu, sizeof(ikpages));
|
||||||
|
|
Loading…
Reference in New Issue