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