Mercurial > hg > CbC > old > device
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++;