Mercurial > hg > CbC > old > device
changeset 451:656ec59cd79f
ia32 fix
author | kono |
---|---|
date | Sun, 28 Nov 2004 04:16:27 +0900 |
parents | eaf9e2746c83 |
children | 8e3284b0a8c9 |
files | Changes mc-code-ia32.c mc-codegen.c mc.h |
diffstat | 4 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/Changes Sun Nov 28 03:28:38 2004 +0900 +++ b/Changes Sun Nov 28 04:16:27 2004 +0900 @@ -6903,3 +6903,9 @@ を区別する必要があるみたいね。これは parse.c で追加する必要がある。 もっとも、.long 0 が余計に出力されるだけだが。 + +Sun Nov 28 03:42:04 JST 2004 + +float/double/longlong のcode segement argument のテストをしてない。 + +ia32 の ({}) がおかしい。
--- a/mc-code-ia32.c Sun Nov 28 03:28:38 2004 +0900 +++ b/mc-code-ia32.c Sun Nov 28 04:16:27 2004 +0900 @@ -1879,14 +1879,15 @@ printf("\tpushl %%ebx\n"); printf("\tpushl %%esi\n"); printf("\tpushl %%edi\n"); + func_disp_label=fwdlabel(); + printf("\tlea _%d(%%ebp),%%esp\n",func_disp_label); + control=1; } void enter1() { text_mode(); - func_disp_label=fwdlabel(); - printf("\tlea _%d(%%ebp),%%esp\n",func_disp_label); /* if(disp) printf("\tsubl $%d,%%esp\n",-disp); */ }
--- a/mc-codegen.c Sun Nov 28 03:28:38 2004 +0900 +++ b/mc-codegen.c Sun Nov 28 04:16:27 2004 +0900 @@ -854,7 +854,7 @@ /* source (after) list2(tag,disp) */ /* source list list3(e,cdr,sz) */ -#define DEBUG_PARALLEL_ASSIGN 7 +#define DEBUG_PARALLEL_ASSIGN 0 static int is_memory(int e1); @@ -953,7 +953,7 @@ static int circular_dependency(int t,int clist,int target,int history) { - int t1,h,sz,ty,s,clist1,t2; + int t1,h,sz,s,clist1,t2; for(;clist;clist=cadr(clist)) { /* conflict list */ loop: @@ -961,7 +961,7 @@ for(h=history;h;h=cadr(h)) { if (t1==car(h)) { #if DEBUG_PARALLEL_ASSIGN -printf("# circular dependency %d ty %d+%d\n",car(t1),ty,cadr(t1)); +printf("# circular dependency %d ty %d\n",car(t1),cadr(t1)); #endif return t1; }