version 1.22, 2003/03/09 15:17:04
|
version 1.23, 2003/08/20 09:23:46
|
Line 96
|
Line 96
|
# define DEBUG_DITC 0 |
# define DEBUG_DITC 0 |
# endif |
# endif |
/* define to 1 if you want to check consistency */ |
/* define to 1 if you want to check consistency */ |
# define NEXT_P0 ({cfa=*ip;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA Label ca; |
# define DEF_CA Label ca; |
Line 154
|
Line 156
|
|
|
#if THREADING_SCHEME==1 |
#if THREADING_SCHEME==1 |
#warning direct threading scheme 1: autoinc, long latency, cfa live |
#warning direct threading scheme 1: autoinc, long latency, cfa live |
# define NEXT_P0 ({cfa=*ip++;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip++;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip-1) |
# define IP (ip-1) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip++;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA |
# define DEF_CA |
Line 168
|
Line 172
|
#if THREADING_SCHEME==2 |
#if THREADING_SCHEME==2 |
#warning direct threading scheme 2: autoinc, long latency, cfa dead |
#warning direct threading scheme 2: autoinc, long latency, cfa dead |
# define NEXT_P0 (ip++) |
# define NEXT_P0 (ip++) |
|
# define CFA cfa |
# define IP (ip-1) |
# define IP (ip-1) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*(ip-1)) |
# define NEXT_INST (*(ip-1)) |
Line 182
|
Line 187
|
#if THREADING_SCHEME==3 |
#if THREADING_SCHEME==3 |
#warning direct threading scheme 3: autoinc, low latency, cfa live |
#warning direct threading scheme 3: autoinc, low latency, cfa live |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 195
|
Line 201
|
#if THREADING_SCHEME==4 |
#if THREADING_SCHEME==4 |
#warning direct threading scheme 4: autoinc, low latency, cfa dead |
#warning direct threading scheme 4: autoinc, low latency, cfa dead |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 207
|
Line 214
|
|
|
#if THREADING_SCHEME==5 |
#if THREADING_SCHEME==5 |
#warning direct threading scheme 5: long latency, cfa live |
#warning direct threading scheme 5: long latency, cfa live |
# define NEXT_P0 ({cfa=*ip;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA |
# define DEF_CA |
Line 221
|
Line 230
|
#if THREADING_SCHEME==6 |
#if THREADING_SCHEME==6 |
#warning direct threading scheme 6: long latency, cfa dead |
#warning direct threading scheme 6: long latency, cfa dead |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 235
|
Line 245
|
#if THREADING_SCHEME==7 |
#if THREADING_SCHEME==7 |
#warning direct threading scheme 7: low latency, cfa live |
#warning direct threading scheme 7: low latency, cfa live |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 248
|
Line 259
|
#if THREADING_SCHEME==8 |
#if THREADING_SCHEME==8 |
#warning direct threading scheme 8: cfa dead, i386 hack |
#warning direct threading scheme 8: cfa dead, i386 hack |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*IP) |
# define NEXT_INST (*IP) |
Line 264
|
Line 276
|
this inst and the branch is 5 cycles on a PPC604; so we utilize this |
this inst and the branch is 5 cycles on a PPC604; so we utilize this |
to do some prefetching in between */ |
to do some prefetching in between */ |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP ip |
# define IP ip |
# define SET_IP(p) ({ip=(p); next_cfa=*ip; NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); next_cfa=*ip; NEXT_P0;}) |
# define NEXT_INST (next_cfa) |
# define NEXT_INST (next_cfa) |
Line 278
|
Line 291
|
#if THREADING_SCHEME==10 |
#if THREADING_SCHEME==10 |
#warning direct threading scheme 10: plain (no attempt at scheduling) |
#warning direct threading scheme 10: plain (no attempt at scheduling) |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 298
|
Line 312
|
|
|
#if THREADING_SCHEME==1 |
#if THREADING_SCHEME==1 |
#warning indirect threading scheme 1: autoinc, long latency, cisc |
#warning indirect threading scheme 1: autoinc, long latency, cisc |
# define NEXT_P0 ({cfa=*ip++;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip++;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip-1) |
# define IP (ip-1) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip++;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA |
# define DEF_CA |
Line 311
|
Line 327
|
|
|
#if THREADING_SCHEME==2 |
#if THREADING_SCHEME==2 |
#warning indirect threading scheme 2: autoinc, long latency |
#warning indirect threading scheme 2: autoinc, long latency |
# define NEXT_P0 ({cfa=*ip++;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip++;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip-1) |
# define IP (ip-1) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip++;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA Label ca; |
# define DEF_CA Label ca; |
Line 326
|
Line 344
|
#if THREADING_SCHEME==3 |
#if THREADING_SCHEME==3 |
#warning indirect threading scheme 3: autoinc, low latency, cisc |
#warning indirect threading scheme 3: autoinc, low latency, cisc |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |
Line 338
|
Line 357
|
|
|
#if THREADING_SCHEME==4 |
#if THREADING_SCHEME==4 |
#warning indirect threading scheme 4: autoinc, low latency |
#warning indirect threading scheme 4: autoinc, low latency |
# define NEXT_P0 ({cfa=*ip++;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip++;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip-1) |
# define IP (ip-1) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip++;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA Label ca; |
# define DEF_CA Label ca; |
Line 352
|
Line 373
|
|
|
#if THREADING_SCHEME==5 |
#if THREADING_SCHEME==5 |
#warning indirect threading scheme 5: long latency, cisc |
#warning indirect threading scheme 5: long latency, cisc |
# define NEXT_P0 ({cfa=*ip;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA |
# define DEF_CA |
Line 365
|
Line 388
|
|
|
#if THREADING_SCHEME==6 |
#if THREADING_SCHEME==6 |
#warning indirect threading scheme 6: long latency |
#warning indirect threading scheme 6: long latency |
# define NEXT_P0 ({cfa=*ip;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA Label ca; |
# define DEF_CA Label ca; |
Line 378
|
Line 403
|
|
|
#if THREADING_SCHEME==7 |
#if THREADING_SCHEME==7 |
#warning indirect threading scheme 7: low latency |
#warning indirect threading scheme 7: low latency |
# define NEXT_P0 ({cfa=*ip;}) |
# define NEXT_P0 ({cfa1=cfa; cfa=*ip;}) |
|
# define CFA cfa1 |
|
# define MORE_VARS Xt cfa1; |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); cfa=*ip;}) |
# define NEXT_INST (cfa) |
# define NEXT_INST (cfa) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define INC_IP(const_inc) ({cfa=IP[const_inc]; ip+=(const_inc);}) |
# define DEF_CA Label ca; |
# define DEF_CA Label ca; |
Line 392
|
Line 419
|
#if THREADING_SCHEME==8 |
#if THREADING_SCHEME==8 |
#warning indirect threading scheme 8: low latency,cisc |
#warning indirect threading scheme 8: low latency,cisc |
# define NEXT_P0 |
# define NEXT_P0 |
|
# define CFA cfa |
# define IP (ip) |
# define IP (ip) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define SET_IP(p) ({ip=(p); NEXT_P0;}) |
# define NEXT_INST (*ip) |
# define NEXT_INST (*ip) |