diff Changes @ 108:69e2e763cce5 powerpc-asm-first-try

object assemble first try.
author kono
date Tue, 18 Mar 2003 20:50:37 +0900
parents 3618c0efe9d3
children fb502a0071f8
line wrap: on
line diff
--- a/Changes	Tue Mar 18 12:41:32 2003 +0900
+++ b/Changes	Tue Mar 18 20:50:37 2003 +0900
@@ -2281,3 +2281,39 @@
 
 やっぱり、関数全体を構文木に落してからgexprするべきだよね。
 それ自体は、そんなに難しくないが。
+
+Tue Mar 18 12:41:42 JST 2003
+
+COND(三項演算子)で使うレジスタが関数の引数を破壊してしまう。
+input register にならない値を使えば良いんだけど。r15
+を使っているんだけど、それでいいの?
+
+virtual を使っていたときは、use_register で何も破壊されなかった
+んだけど、使わないとすると、結構破壊されてしまう。なので、
+ちょっと奥の深い問題かもね。三項演算子の型はチェックしてなかったし。
+
+まぁ、それは、一時レジスタを使えば良いとして...
+
+時々呼び出す、u2d とか bcopy とかで破壊されるinput レジスタ
+はどうする? これは、予測は困難だよね。使う分だけsaveするって
+言う手もあるけど。うー、どうしよう... 検出できるようにするっ
+ていう手もある。(と、思ったら、get_register_var が間違ってい
+るみたいね) 検出はちょっと重いか。二乗のアルゴリズムは、あま
+り使いたくない。といっても、定数乗になるだけか。呼出側でsave
+する? bcopy がどれくらい使うか割りと曖昧。
+
+もっと積極的にget_register_var するっていう手もあるよね。そ
+うすれば、あまり気にすること無く library call できる。(ちょ
+っと、書き換えが多いが...) その方が筋かな。使うレジスタを減
+らそうと思うと、それは検出するのと、それほど差はないわけか。
+
+このあたりも構文木を全部持っていれば解決できるんだよな。
+
+うーん、まだまだ、だな。
+
+関数が関数呼び出しで決まる場合の input register の破壊を考えて
+ませんでした。これも、どうすればいいんだ... まぁ、get_register_var
+するのが簡単だよね。
+
+
+save register が狂っているようだね。max_register_var あたり?