Cコンパイラ

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必要だ。遅...
BASICMASTER

chibicc compiler を6800向けに改造する (4) strcpy

MC6800の泣きどころはインデックスレジスタが1つしかないことと、スタック操作が苦手なことだ。例としてstrcpyを書いてみよう。unsigned char *strcpy(unsigned char *dst, unsigned cha...
BASICMASTER

chibicc compiler を6800向けに改造する (3) ++ と —

ポストデクリメントとプリインクリメントという概念を初めて知ったのは、古のCPUであるSC/MP(スキャンプ) IIのデータシートであった。当時のパソコン雑誌には、なぜか、SC/MP IIの記事が多数掲載されていた。しかしSC/MP IIに関...
BASICMASTER

chibicc compiler を6800向けに改造する (2) 関数呼び出しの仕組み

去年の末から、 rui314 (Rui Ueyama) さんの rui314/chibicc: A small C compiler を MC6800向けに改造しています。今回は関数呼び出しの仕組みのメモです。 zu2/chibicc-68...
BASICMASTER

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

去年の末から、 rui314 (Rui Ueyama) さんの rui314/chibicc: A small C compiler を MC6800向けに改造しています。簡単なプログラムが動作するようになったので、公開しました。 zu2/...
BASICMASTER

6800用のコンパイラを探して – CC6303 (3)(ベーシックマスター開発 その45)

6800用のコンパイラを探して – CC6303 (2)(ベーシックマスター開発 その44) | ず@沖縄の続き。今回はCC6303の生成するオブジェクトについてについてのメモです。 zu2/CC6303: A C compiler for...
BASICMASTER

6800用のコンパイラを探して – CC6303 (2)(ベーシックマスター開発 その44)

6800用のコンパイラを探して – Fuzix/CC6303(ベーシックマスター開発 その22) | ず@沖縄にて、CC6303について書いたのだけど、事実誤認があったので訂正。CC6303が、6502用のCコンパイラであるCC65を68系...
スポンサーリンク