chibicc

BASICMASTER

chibicc compiler を6800向けに改造する (14) アドレッシングと最適化(2)

chibicc compiler を6800向けに改造する (5) アドレッシングと最適化 の続き。MC6800で良いコードを生成するには、Acc A,B と IX,SP の使い分けが必要だと書いたが、もっと場合分けが必要なことに気がついた...
BASICMASTER

chibicc compiler を6800向けに改造する (13) strcpy その2

chibicc compiler を6800向けに改造する (4) strcpy | ず@沖縄 の続きです。前回も書いたように、MC6800の泣きどころはインデックスレジスタが1つしかないことと、スタック操作が苦手なこと。例としてstrcp...
BASICMASTER

Amsterdam Compiler Kit を6800向けに改造する (4) 関数引数がcharのとき

Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの4回目。今回は関数引数がcharのときの処理 davidgiven/ack: The Amsterdam Compiler KitEM codeは...
BASICMASTER

Amsterdam Compiler Kit を6800向けに改造する (3) 関数呼び出し

Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの3回目。今回は関数呼び出しについて。 davidgiven/ack: The Amsterdam Compiler Kit引数の受け渡しスタックフ...
BASICMASTER

chibicc compiler を6800向けに改造する (12) savage benchmark

savage benchmark というベンチマークテストがある。初出は Dr. Dobb’s Journal, Number 83, September 1983, p. 120。下記の演算をを2500回繰り返す。2乗とsqrtは逆演算、...
BASICMASTER

chibicc compiler を6800向けに改造する (11) whetstone

簡易プロファイラができたので、ベンチマークテストを見ながら性能改善を行なっている。今回は Whetstone。DhrystoneとWhetstoneは、1980-90年代によく使われていたベンチマークテスト。作られたのはWhetstoneが...
BASICMASTER

chibicc compiler を6800向けに改造する (10) プロファイラ

Dhrystone や Whetstone が動くようになったのだけど、Z80のコンパイラと比べると遅いのである。Z80は1命令数あたりの実行ステート数は多いが、4MHzで動く。今ならもっと高速で動作するチップもあるが、1980年ごろは4M...
BASICMASTER

chibicc compiler を6800向けに改造する (9) IEEE754 float の比較(3)

chibicc 6800のfloatの比較では、TOS (top of stack)に左辺を積んで、右辺を@longに置いて、jsr __cmpf32tos する。cmpf32tos は AccB とフラグで比較の結果を返す。両辺のどちらか...
BASICMASTER

chibicc compiler を6800向けに改造する (8) IEEE754 float (2)

「chibicc 6800 には、IEEE754形式の32bit floatを実装している。オールアセンブラなので、割と速い」などと書いたのだけど、それでも遅いのである。 chibicc compiler を6800向けに改造する (6) ...
BASICMASTER

chibicc compiler を6800向けに改造する (7) dhrystone

コンパイラが一通り動くようになったのでベンチマークしてみた。古典的な dhrystone。 z88dkで動くバージョンがあったので、それで試してみる。案の定、いくつかbugが出たが、なんとか動くようになった。z88dk/libsrc/_DE...
BASICMASTER

chibicc compiler を6800向けに改造する (6) IEEE754 float (1)

chibicc 6800 には、IEEE754形式の32bit floatを実装している。オールアセンブラなので、割と速い。 chibicc-6800-v1/libc/__float.s at main · zu2/chibicc-6800...
BASICMASTER

chibicc compiler を6800向けに改造する (5) アドレッシングと最適化

MC6800向けにコンパイラを書いていて困るのは、Acc A,B と IX,SP が別世界の住人であることだ。Acc A,B で演算した結果をIXやSPに移動するには、ゼロページを経由するしかない。12cycles, 6bytes必要だ。遅...
スポンサーリンク