Amsterdam Compiler Kit を6800向けに改造する (5) デモが動作するようになった
Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの5回目。ackに含まれているexampleのいくつかが 動くようになりました。 標準入力からの入力が必要なので、emu6800にパッチを当てて使っ ...
Amsterdam Compiler Kit を6800向けに改造する (4) 関数引数がcharのとき
Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの4回目。今回は関数引数がcharのときの処理 davidgiven/ack: The Amsterdam Compiler Kit EM code ...
MC6800のプログラミングテクニック(19) AccABと0の比較
Amsterdam Compiler Kit の生成する中間言語(EM code)では、Top of Stack と0を比較し、ToSに0,1を入れる命令がある。 tlt,tle,teq,tne,tge,tgt がそれだ。6800では To ...
Amsterdam Compiler Kit を6800向けに改造する (3) 関数呼び出し
Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの3回目。今回は関数呼び出しについて。 davidgiven/ack: The Amsterdam Compiler Kit 引数の受け渡し スタッ ...
Amsterdam Compiler Kit を6800向けに改造する (2) cg (code generator)
Amsterdam Compiler Kit を改造してMC6800用のコードを出力する試みの2回目。 davidgiven/ack: The Amsterdam Compiler Kit cg (code generator) ソースプロ ...
Amsterdam Compiler Kit を6800向けに改造する (1) スタック構造
Amsterdam Compiler Kit というポータブルで多言語のコンパイラがある。 私は30年以上前に MINIX 2.0 で使っていた。PC/AT互換機(80286)で草の根BBSのホストプログラムの構築に使っていた。懐かしいなあ ...
MC6800のプログラミングテクニック(18) BYTE SAVING PROGRAMMING TRICKS FOR THE 8080
Dr. Dobb's Journal という、書名だけでは内容がわからないマイコン雑誌があった。一時期は日本語版も発売されていた。プログラミングテクニックが掲載されていて、私も参考にしたものだ。 さて、その DDJ誌に “BYTE SAVI ...
MC6800のプログラミングテクニック(17) AccBを符号拡張・Excess128,127
昨今のC言語で普通にcharと書くとsigned charである。イマドキのCPUでは符号拡張のコストはほぼ0なので問題ないのだが、MC6800では大騒ぎである。 chibicc-6800で使っているのは下記のコード。ASR/ROLでbit ...
chibicc compiler を6800向けに改造する (12) savage benchmark
savage benchmark というベンチマークテストがある。初出は Dr. Dobb’s Journal, Number 83, September 1983, p. 120。 下記の演算をを2500回繰り返す。 2乗とsqrtは逆演 ...
chibicc compiler を6800向けに改造する (11) whetstone
簡易プロファイラができたので、ベンチマークテストを見ながら性能改善を行なっている。今回は Whetstone。 DhrystoneとWhetstoneは、1980-90年代によく使われていたベンチマークテストという印象があります。 作られた ...
chibicc compiler を6800向けに改造する (10) プロファイラ
Dhrystone や Whetstone が動くようになったのだけど、Z80のコンパイラと比べると遅いのである。 Z80は1命令数あたりの実行ステート数は多いが、4MHzで動く。今ならもっと高速で動作するチップもあるが、1980年ごろは4 ...
chibicc compiler を6800向けに改造する (9) IEEE754 float の比較(3)
chibicc 6800のfloatの比較では、TOS (top of stack)に左辺を積んで、右辺を@longに置いて、jsr __cmpf32tos する。 cmpf32tos は AccB とフラグで比較の結果を返す。 両辺のどち ...