CPU

GCCのミドルでの最適化はどんなものなのか

CPU

int main(int argc,char **argv) { int base=10,pp=5,ret ; long int long_i_type =10,long_pp=5 ; char char_type =20,char_noset; unsigned int uint_type = 100 ,uint_noset ; unsigned char uchar_type =20,uchar_noset; ret = base+pp; long_pp = base …

アセンブラで追いかける

CPU

呼び出し関係 puts->_puts_r->__sfvwrite_r->(return EOF)__swsetup_r->__sinit->std*3 原因探り中

gas

CPU

newlib内のputcのコードを実行 実行結果 ありえない所でhalt信号を出すと思ったら gasのオペコードが間違っていた。修正しても直らず。。。 とおもったらnewlibのコンパイルしなおしていなかった。とりあえず動くけどもswsetupでEOF かえしてる…。

レジスタを甘く見ていたらついにSpartan3に収まらなくなった件

CPU

今まで無理やり押し込んでいたがついにオーバー 師曰く「大きすぎないか?」とのことなので 大きい原因を探ってみたXILINXのサマリーCPU全体 Device Utilization Summary Logic Utilization Used Available Utilization Note(s) Number of Slice Flip Flops …

リンカエラー修正

CPU

結論からリンカの引数でライブラリを指定する際は1パスです。orz リンカスクリプトのGROUPSで指定する場合は再帰的に検索する。 gccのLD_SPECで渡す場合は順番をきちんとしてあげないとだめ。 それだけでリンカまわりはほぼ収束

gccからのld呼び出し

CPU

リンカを使って手動でリンクすればリンク出きるのだが GCCからだとlibglossライブラリが抜け落ちてしまうのでリンカの呼び出し部分の調査 linker_spec is %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S: %(linker) %l %{pie:-pie} %X %{o*} %{A} %{d} %{e*} %{…

TODO

CPU

binutils の改善 マルチサイクルに対応できるようにCPUの変更 NetBSDのポーティングに必要な機能の追加 FPGAに載せるシリアルインターフェースの作成 (OpenCoreから引っ張ってくるかススボックスもフリーだったきがする) メモリとIOのマッピングの確定 (…

NetBSD & binutils

CPU

前回のは勘違いだわ...orz toolsのオプションはツールチェイン作る。 なのでターゲットのCCでなく ホストのCCつかうのでOK targparam.hが無いって言って止まるので 他のアーキテクチャのを参考に dlx/targparam.h を作った。 ポインタのサイズと浮動小数まわ…

NetBSD

CPU

NetBSDの公式からCVSで落としてきて少しいじくってみた。 build.shでうまくコンパイルできないので 中身をいじくり中。 とりあえず、少し進むようになったけど クロスでやってるつもりがちゃんとクロス環境になっていない。X(

やっとこさっとこ

CPU

こんなレベル FPGAに載せるにはシリアルを載せないとダメだけど 買ってきたCPUなら言わせるのにものの30分も要らないんだけどね… さて、ちゃんとprintfで出せるようにしますか…

CPU

CPU

問題点がぞろぞろと出ています1.binutilのリロケータブルシンボル globalのシンボル宣言がmulti defineエラーになる。 というかbinutilはかなり手を入れた方が良いみたい。 ポートされているから安心していたが…。2.シングルバイトのst命令を使うと同一アラ…

gcc newlib

CPU

コンパイラの動作テストもかねて newlibのコンパイルとテストcharのポインタをmov出来ない問題を修正リンカ,ローダにバグがあるのか それともそもそもコンパイラの問題なのか分からない問題が発生ジャンプシンボルのテーブルを作成して ジャンプをしようと…