mips

attribute packedに関するコード生成

各 OSの IPヘッダ構造体を見ていると, attribute packedを使っているのと 使っていないのがあってなんでだ、って思って生成するコードを調べてみた。 attribute packedをつけているのは NetBSD, FreeBSD. つけてないのが Linux, OpenBSDです. 各 OSの定義 Fr…

MIPSクロスコンパイラで実行ファイルの作成

MIPSのクロスコンパイラで実行ファイルの作成ってどうやるか 学生時代からわからなかったんですけど、ようやくわかったのでそのメモ。結論からいうとリンカスクリプトを指定するだけで良いようです。 以下のようなプログラムをコンパイルしてみます。 準備 G…

GCC 4.6 MIPS クロスコンパイラを作る

4.6でMIPSクロスコンパイラを作ってみたので、そのメモです。 環境 Ubuntu 10.10 x64 GCC 4.4.5 バージョン Binutils - 2.21 GCC - 4.6.0 RC newlib - 1.18.0 GDB - 7.2 Binutils (追記) export PATHを追加 % cd binutils-2.21 % mkdir build_mips && cd bui…

Linux MIPSの TLBミスハンドラを見る

Linux MIPSの TLBミス時に実行されるハンドラは 'arch/mips/mm/tlbex.c'で動的に生成されています。 なんでバイナリを逆アセンブルしてもわかりません。それが理解出来れば 何やってるかわかるんだろうけど、実際どんな命令列なんだって ことでそれを調べる…