Mercurial > hg > CbC > old > device
changeset 92:e7f8515ba882
*** empty log message ***
author | kono |
---|---|
date | Fri, 07 Mar 2003 06:10:41 +0900 |
parents | 9b1aeb62e0b9 |
children | 8f5d61239b93 |
files | Changes mc-code-ia32.c mc-code-powerpc.c mc-code.h mc-codegen.c |
diffstat | 5 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Changes Fri Mar 07 05:22:01 2003 +0900 +++ b/Changes Fri Mar 07 06:10:41 2003 +0900 @@ -2010,3 +2010,9 @@ (さすがに一日ではできないか...) なんか整数から浮動小数点への変換はじぶんでやらないとだめなのね。 +これはサブルーチンを呼んだ方がましだ。 + +get_register は絶対失敗しないようにできるんじゃないか? + +label があると、code_base cache はclearしないといけない。 +それを判断するには fwddef をhookする必要があるけど。
--- a/mc-code-ia32.c Fri Mar 07 05:22:01 2003 +0900 +++ b/mc-code-ia32.c Fri Mar 07 06:10:41 2003 +0900 @@ -425,6 +425,11 @@ return xreg; } +void +code_label(int labelno) +{ + printf("_%d:\n",labelno); +} void code_gvar(int e1) {
--- a/mc-code-powerpc.c Fri Mar 07 05:22:01 2003 +0900 +++ b/mc-code-powerpc.c Fri Mar 07 06:10:41 2003 +0900 @@ -386,6 +386,13 @@ } void +code_label(int labelno) +{ + clear_ptr_cache(); + printf("_%d:\n",labelno); +} + +void code_gvar(int e1) { int r; r = get_ptr_cache((char*)caddr(e1));
--- a/mc-code.h Fri Mar 07 05:22:01 2003 +0900 +++ b/mc-code.h Fri Mar 07 06:10:41 2003 +0900 @@ -76,6 +76,8 @@ extern void text_mode(void); extern void global_table(void); extern int lvar(int l); +extern void code_label(int labelno); + /* floating point part */
--- a/mc-codegen.c Fri Mar 07 05:22:01 2003 +0900 +++ b/mc-codegen.c Fri Mar 07 06:10:41 2003 +0900 @@ -909,7 +909,7 @@ { control=1; if (!chk) - printf("_%d:\n",l); + code_label(l); } int @@ -917,7 +917,7 @@ { control=1; if (!chk) - printf("_%d:\n",labelno); + code_label(labelno); return labelno++; }