diff Changes @ 646:0d7baf338fc2

array argument continue...
author kono
date Mon, 06 Nov 2006 20:15:54 +0900
parents ac1285a0f69f
children fe23fe842b82
line wrap: on
line diff
--- a/Changes	Sat Nov 04 22:38:18 2006 +0900
+++ b/Changes	Mon Nov 06 20:15:54 2006 +0900
@@ -9057,3 +9057,48 @@
 
 なんか、i3 のエラーを直してないね。見送りにしたわけ?
 
+Sat Nov  4 22:47:13 JST 2006
+
+      | frame pointer                     | stack pointer
+      v----> argument      local <--------v
+
+なんだけど、これだと、local variable のoffsetが、その場で
+定数にならないという問題があるんじゃないの?
+
+いや逆か。sp からなら、必ず定数になるわけね。
+
+subroutineから、code を呼び出す時に、parallel assignment
+が使えないが、この場合は、sp の値は決まっているはず。
+というか後で合わせれば良い。caller_arg を sp からの
+オフセットで書き込む必要がある。
+
+      | frame pointer                     | stack pointer
+      v----> argument      local <--|-----v
+                                    caller_arg
+
+というわけかな。
+
+caller_arg は、関数の最後でないと決まらないので、large offset
+では、やっぱり、困る。(だから、local var を fp からにしたの
+だったが...)
+
+      | frame pointer               | stack pointer
+      v----> argument      local <--|-----v
+                                    caller_arg
+
+にすればいいんだろうけど... 許されるのか? いくつかのアーキテクチャ
+では、そうなっているらしいが。
+
+まぁ、MAX caller arg を決めるっていう手もあるけどね。その方が
+楽か....
+
+Sun Nov  5 14:21:19 JST 2006
+
+expr16 で statement expression をparseしようと思うと、
+IVARが生成されてしまうので気まずい。pexpr するのは、
+少しおかしい。
+
+やっぱり parse してからcompileするモード作る?   そうすると、
+いろいろ出来るようになる。inmode=PARSE とかいうのを作るか。
+
+細かい問題があるみたいだね。