[osask 6938] go_0023p.

  こんばんは、川合です。

---

  go_0023pをMLリリースします。改変点は次のとおりです。

・gas2naskにxchgを追加
・gas2naskに新オプション-eを追加
・naskの JMP $+2 をアセンブルするとおかしくなるバグを修正
・w32clibcでコマンドラインで "abc def" のようなパラメータを与え
  たときに、argv、argcがうまく設定できていなかったのを修正

  gas2nask.exeとnask.exeはosa_dir/z_tools/の中に入れてください。
  w32clibc.libはosa_dir/z_tools/win32/の中に入れてください。

    http://k.hideyosi.com/go_0023p.lzh  (83.6KB)

---

  test063をMLリリースします。内容は次のとおりです。

・最新版guigui00.hとgg00libc.lib
    test062のlib_getsig等の追加に加え、lib_execcmd2の追加。
    lib_execcmd2は、上記のgas2naskの-eオプションと関係していて、
    バイナリを小さくするのに貢献します。gg00libcはtek0圧縮がかか
    っています。
    osa_dir/z_tools/guigui00/の中に入れてください。
・最新版obj2bim.exe
    lib_getsig系の追加でgg00libcが大きくなったので、ライブラリや
    オブジェクトファイルがtek0圧縮されていてもそのまま扱えるよう
    にしました。
    osa_dir/z_tools/の中に入れてください。
・osa_dir用com_make.txtの最新版
    gas2naskに-eオプションをつけてあったり、make arcのサポートな
    どがあります。
    osa_dir/z_tools/の中に入れてください。
・osa_dir用のz_new_oの最新版
    make arc用にMakefileを書き換えました。
    osa_dir/の中に入れてください。

    http://k.hideyosi.com/test063.lzh  (38.8KB)

---

  test064もMLリリースします。内容は次のとおりです。

・helloc4,  helloc7,  helloc9
・bballc0,  bballc1,  bballc2
・invader2, invader4, invader5

  先日確認したところlcc-win32時代のバイナリサイズが中心だったの
で、これをgo_0023+test063ベースにしました。ついでにソースが読み
やすくなりそうな改善もしました。内容的にはほとんど変わっていませ
んが、gccの最適化能力とgas2naskの-eオプションのおかげで、結構小
さくなっています(註:一般的な傾向として、-eオプションは非圧縮時
のサイズを数パーセント拡大させるが、圧縮しやすいコードになるため
結果的には小さくなる)。

  括弧内は非圧縮時のサイズで、左がlcc-win32時代の数字の抜粋、右
が今回の数字です。ツール群の進歩を感じてください(まあ手動最適化
の差(たとえばhelloc4とhelloc7の差)に匹敵するほどの効果ではない
ですが。やっぱり人間は最強ってことで)。

    helloc4  [工夫のない記述]    507  (619)  →   497  (651)
    helloc7  [少しだけ工夫]      232  (343)  →   231  (383)
    helloc9  [常識的な最適化]    187  (191)  →   176  (177)

    bballc0  [工夫のない記述]    650  (760)  →   628  (796)
    bballc1  [少しだけ工夫]      409  (507)  →   389  (545)
    bballc2  [常識的な最適化]    314  (333)  →   295  (318)

    invader2 [工夫のない記述]   1770 (2375)  →  1699 (2654)
    invader4 [常識的な最適化]   1426 (1806)  →  1371 (1652)
    invader5 [本気で最適化]     1293 (1519)  →  1258 (1488)

  5/12も近づいていることですし、これくらい最適化するとこれくらい
変わるのかという参考程度に、test064を活用してください(helloc4と
helloc7を比べて、266バイトの差(=497-231)に見合うと思うかどうか
など)。

  そのうちこの内容でページも書き直します。

    http://k.hideyosi.com/test064.lzh  (24.5KB)

---

  以上です。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp
Homepage http://osask.jp/

ML番号でジャンプ
ML単語検索