MIPS ABI 再びまとめ
Support Home Page
重要な所だけ一部抜粋。
----------------------------------------------------------------- Category O32 n64 n32 ----------------------------------------------------------------- Command Line Switch -32 -64 -n32 Supported ISA mips1,2 mips 3,4 mips 3,4 Default ISA mips2 mips4 mips3 Object file format ELF32 ELF64 ELF32 Debug info format mdebug DWARF DWARF Symbol table format ELF32 ELF64 ELF32 Number of double 16 32 32 precision floating point registers bits in int 32 32 32 bits in long 32 64 32 bits in char * 32 64 32 -----------------------------------------------------------------
加えて書くとすれば、O64はO32を64bitセーフにしたようなもので、Command Line Switchは-o64になる。
整数・浮動小数点のビット幅は同じでコーリングコンベンションも同じだが、long longの操作は32bit op * 2ではなく64bit op * 1にコンパイルされる。
スタックへレジスタを退避する時、或いは引数を積むときも64bit幅で積む。
その辺りはn32とほぼ同じ訳だが、n32はコーリングコンベンションがn64と同じになってる。
あとは、O32/N32/O64 = ILP32, N64 = LP64という辺りも重要かな。