2006-07-27から1日間の記事一覧
操作するように変更してみた。なかなかいい感じ。
懸案のpush_args_uは、レコード型のパターンマッチをするときに使われるらしい。 以下、テストコード。
非ボックス化した基本型を持つレコード型の場合は、push_args_uではなく、push_r_args_uの方が使われる。 push_r_args_u 2 2 1対応するCodeGeneratorの関数は、 void code_push_r_args_u (int a_offset,int a_size,int b_size)
eqD_bという命令がある。Genericのテストをやっている最中に見つけた。 CleanNodeで、 public static boolean eq_desc(CleanDescriptor d, int n, Object o) throws CleanException { return d == getDesc(o) && d.eq_arity(n,getData(o)); }というメソッド…
この2つはよく似た命令で、レコード型から要素を1つ取り出すというもの。 push_r_args_aが通常のオブジェクトで、push_r_args_bが非ボックス化基本値を対象としている。 CodeGeneratorの対応する関数は、 void code_push_r_args_a (int a_offset,int a_siz…
.record k121 daa 2 0 "Pair"これまで、.record命令は、 a : オブジェクト i : 非ボックス化整数 r : 非ボックス化実数 c : 非ボックス化文字 b : 非ボックス化真偽値 lR : レコード型非ボックス化正格リスト(頭のみ) を把握していたが、これに d が加わる…