changeset 620:0e7281ec9007

*** empty log message ***
author kono
date Thu, 07 Sep 2006 11:26:28 +0900
parents 509d637a58b2
children 9397b34d6588
files Changes Makefile.linuxzaurus Makefile.mips mc-code-mips.c mc-tree.c test/tmp8.c
diffstat 6 files changed, 45 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/Changes	Thu Sep 07 01:21:38 2006 +0900
+++ b/Changes	Thu Sep 07 11:26:28 2006 +0900
@@ -8807,3 +8807,25 @@
 __asm になっているからだめなので、__asm も 処理すると「無視する」モードに
 なっていることがわかりました。
 
+
+Thu Sep  7 10:41:54 JST 2006
+
+attribute だと、毎回チェックがうざい。nptr->nm を直接変える方が望ましいが...
+key と表示のポインタを分ければ簡単に実現できるんだけど。
+
+Intel Mac は、relocatable code なので、ptr_cache を実装する必要が
+あるらしい。register 変数を破棄すれば可能かも。
+
+offset pointer は、使う直前で取得するのでもOk。ループの中だと嫌だが...
+そうすれば大域変数を使用しないルーチンでは、取得ルーチンを省ける。
+SSE2 を含めて、PowerPC スタイルに変更した方が合理的なんだろうな。
+
+でも、時間的にはけっこうかかってしまうみたい。
+
+もう一つの、goto hoge(a,...); だけど、結局、stack を実装することに
+なるんじゃないの? 大域的なsyntax sugar だと考えることも可能では
+あるが、コードが共有されるところが異なる。.... の部分がメモリ
+に乗るというのを保証して、それ以外を別なところにあるというのが
+確定しないとまずい?
+
+もう少し考えてみないと実現できるかどうかわからない。
--- a/Makefile.linuxzaurus	Thu Sep 07 01:21:38 2006 +0900
+++ b/Makefile.linuxzaurus	Thu Sep 07 11:26:28 2006 +0900
@@ -4,8 +4,8 @@
 # CFLAGS = -g -Wall -I. -pg -fprofile-arcs -ftest-coverage
 # LDFLAGS = -pg
 # for Linux Zaurus
-CFLAGS = -fsigned-char -pipe -g -I. -I/home/zaurus/develop/include
-CFLAGS1 = -g  -I. -fsigned-char
+CFLAGS = -fsigned-char -pipe -g -I. -I/home/zaurus/develop/include -DUSE_CODE_KEYWORD
+CFLAGS1 = -g  -I. -fsigned-char -DUSE_CODE_KEYWORD
 BASE=0
 STAGE=1
 MFLAGS=$(MFALGS) BASE=$(BASE) STAGE=$(STAGE)
@@ -20,9 +20,9 @@
 #
 TARGET=test/simp
 
-all: mc mc-ia32 mc-powerpc mc-mips mc-arm
+all: mc 
 
-mc:  mc-$(ARCH)
+mc:  mc-include.c mc-$(ARCH)
 	cp mc-$(ARCH) mc
 
 TAGS:
@@ -52,6 +52,9 @@
 conv/null.c: conv_func.tbl tools/conv_func.pl
 	perl tools/conv_func.pl
 
+mc-include.c:
+	perl tools/find-gcc-include-path -l $(CC) > mc-include.c
+
 mc.h-new:
 	perl tools/mc-h-renum.pl mc.h > mc.h.1
 	mv mc.h.1 mc.h
@@ -174,7 +177,7 @@
 	make clean
 	tar cBf - . | gzip > ../comp.tgz 
 
-depend :
+depend : mc-include.c
 	makedepend mc-code-ia32.c mc-code.h mc-codegen.c mc-codegen.h \
 		mc-parse.c mc-tree.c mc-switch.c mc-switch.h mc.h \
 		mc-inline.c mc-macro.c mc-macro.h mc-parse.h \
--- a/Makefile.mips	Thu Sep 07 01:21:38 2006 +0900
+++ b/Makefile.mips	Thu Sep 07 11:26:28 2006 +0900
@@ -1,11 +1,11 @@
 # CC = gcc -std=c99
 # -O3
-CFLAGS = -g -Wall -I.
+CFLAGS = -g -Wall -I. -DUSE_CODE_KEYWORD
 # CFLAGS = -g -Wall -I. -pg -fprofile-arcs -ftest-coverage
 # LDFLAGS = -pg
 # for Linux Zaurus
 # CFLAGS = -fsigned-char -pipe -g -I. -I/home/zaurus/develop/include
-CFLAGS1 = -g  -I.
+CFLAGS1 = -g  -I. -DUSE_CODE_KEYWORD
 BASE=0
 STAGE=1
 MFLAGS=$(MFALGS) BASE=$(BASE) STAGE=$(STAGE)
@@ -20,9 +20,9 @@
 #
 TARGET=test/simp
 
-all: mc mc-ia32 mc-powerpc mc-mips mc-arm
+all: mc 
 
-mc:  mc-$(ARCH)
+mc:  mc-include.c mc-$(ARCH)
 	cp mc-$(ARCH) mc
 
 TAGS:
@@ -52,6 +52,9 @@
 conv/null.c: conv_func.tbl tools/conv_func.pl
 	perl tools/conv_func.pl
 
+mc-include.c:
+	perl tools/find-gcc-include-path -l $(CC) > mc-include.c
+
 mc.h-new:
 	perl tools/mc-h-renum.pl mc.h > mc.h.1
 	mv mc.h.1 mc.h
@@ -172,7 +175,7 @@
 	make clean
 	tar cBf - . | gzip > ../comp.tgz 
 
-depend :
+depend : mc-include.c
 	makedepend mc-code-ia32.c mc-code.h mc-codegen.c mc-codegen.h \
 		mc-parse.c mc-tree.c mc-switch.c mc-switch.h mc.h \
 		mc-inline.c mc-macro.c mc-macro.h mc-parse.h \
--- a/mc-code-mips.c	Thu Sep 07 01:21:38 2006 +0900
+++ b/mc-code-mips.c	Thu Sep 07 11:26:28 2006 +0900
@@ -29,11 +29,15 @@
 #include "mc-code.h"
 #include "mc-codegen.h"
 
+#if 0
 char *l_include_path[] = {
     "/usr/include/",
     "/usr/lib/gcc-lib/mipsEEel-linux/2.95.2/include/",
     0
 };
+#else
+#include "mc-include.c"
+#endif
 
 // va_start, va_arg is wrong, use va_mips.h
 
--- a/mc-tree.c	Thu Sep 07 01:21:38 2006 +0900
+++ b/mc-tree.c	Thu Sep 07 11:26:28 2006 +0900
@@ -537,8 +537,8 @@
 	}
     case STRING:
         { 
-            nptr = (NMTBL*)cadr(e);
-            int c; char *s = nptr->nm; int i=nptr->dsp;
+            int c; char *s; int i;
+            nptr = (NMTBL*)cadr(e); s = nptr->nm;i=nptr->dsp;
             fprintf(vout,"\"");
             while(--i>0) {
                 c=*s++;
--- a/test/tmp8.c	Thu Sep 07 01:21:38 2006 +0900
+++ b/test/tmp8.c	Thu Sep 07 11:26:28 2006 +0900
@@ -13,7 +13,7 @@
 int
 main()
 {
-    int a[0] ;
+    int a[1] ;
    for(asize=4;asize<64000;asize=asize*2+12) {
        f2(1);
        f2(0);