Mercurial > hg > CbC > CbC_gcc
diff CbC-examples/quicksort/quicksort_cbc.cbc @ 23:775dfe898662
add quicksort version 2.
author | kent <kent@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Oct 2009 12:12:51 +0900 |
parents | 0eb6cac880f0 |
children | f37d7058d1ce |
line wrap: on
line diff
--- a/CbC-examples/quicksort/quicksort_cbc.cbc Tue Oct 13 17:15:58 2009 +0900 +++ b/CbC-examples/quicksort/quicksort_cbc.cbc Wed Oct 14 12:12:51 2009 +0900 @@ -23,7 +23,7 @@ { framep fp = (framep)sp; sp += fp->size; - fp->code(fp->interface, sp); + goto fp->code(fp->interface, sp); } __code quicksort_start(void *arg, stack sp) @@ -118,6 +118,7 @@ } /* recursive call routine end. */ +#define STACK_SIZE 10240 int v[100]; struct qs_if *outif; @@ -130,14 +131,14 @@ quicksort(int *v, int s, int e, RET ret, void *arg ) { framep fp; - stack sp = malloc(10240)+10240; + stack sp = malloc(STACK_SIZE)+STACK_SIZE; struct qs *finish_if; /* interface for quicksort_finish. */ finish_if = (sp -= sizeof(*finish_if)); finish_if->ret = ret; finish_if->ret_arg = arg; - finish_if->sp = sp -10240 + sizeof(*finish_if); + finish_if->sp = sp -STACK_SIZE + sizeof(*finish_if); /* interface for quicksort_start. */ outif = (sp -= sizeof(*outif));