# HG changeset patch # User kono # Date 1101582987 -32400 # Node ID 656ec59cd79f8310f2d3b5fabc1194ca464fb374 # Parent eaf9e2746c83d3aba0227bc079223f88e71e6acd ia32 fix diff -r eaf9e2746c83 -r 656ec59cd79f Changes --- 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 の ({}) がおかしい。 diff -r eaf9e2746c83 -r 656ec59cd79f mc-code-ia32.c --- 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); */ } diff -r eaf9e2746c83 -r 656ec59cd79f mc-codegen.c --- 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; } diff -r eaf9e2746c83 -r 656ec59cd79f mc.h --- a/mc.h Sun Nov 28 03:28:38 2004 +0900 +++ b/mc.h Sun Nov 28 04:16:27 2004 +0900 @@ -456,7 +456,7 @@ extern void free_nptr(NMTBL *n); extern NMTBL *get_nptr(); -#if 1 +#if 0 extern int heapsize; #define CHECK_HEAP(b) ({int _k=(int)(b);if(_k>heapsize)error(-1);_k;}) #else