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;
 	    }
--- 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