2014年8月28日 (木曜日)

06:13:13 # Life テストコードを書こうかなと思ったけど mips abi がよくわからないのでお勉強。 $at というアセンブラ用のテンポラリレジスタというのが存在するのかな? MIPS ABI Historyを読んでちょっとうっときた。 o32, n32, n64 とかの経緯がすごい。 disassemble 結果のレジスタ名がr0-r31 ではないので何かと思ったら名前がついているらしい。 ABI documentからレジスタ情報メモ。nptl tls とかはどうなってるのかな。 レジスタの数はまったく32 ではないというのとPCが32とは別であるあたりがARMとは違う漢字がする。

$0 zero
$at AT
$2..$3 v0-v1 戻り値用
$4..$7 a0-a3 パラメータ渡し用
$8..$15 t0-t7 テンポラリレジスタ、関数呼び出しで破壊される。
$16..$23 s0-s7 関数呼び出しで保存されるレジスタ
$24..$25 t8-t9 テンポラリレジスタ、関数呼び出しで破壊される。
$26..$27 kt0-kt1 OS用
$28 gp global pointer / context pointer (PIC関数呼び出しで破壊される)
$29 sp stack pointer
$30 s8 関数呼び出しで保存されるレジスタ
$31 ra return address 関数から戻るべきアドレス

pc プログラム・カウンタ
hi
lo
	
Junichi Uekawa

$Id: dancer-diary.el,v 1.94 2009/10/21 14:02:48 dancer Exp $