Next | Prev | Up | Top | Contents | Index

ABI Attribute Summary

Table 2-4 summarizes the important attributes for the o32 and n32/64-bit ABI implementations.

ABI Attribute Summary
Attributeo32N32/64-bit
Width of integer parameters in registers32 bits64 bits
Stack parameter slot size32 bits64 bits
Types requiring multiple registers or stack slots(long) double, long longlong double
Stack region alignment16 byte16 byte
Integer parameter registers$4..$7$4..$11
Floating point parameter registers (single/double precision)$f12, $f14$f12 .. $f19
Floating point parameters in Floating point registers

(not varags)

first two only, not after integer parametersany of first eight
Floating point parameters in Floating point registers

(varags)

first two only, not after integer parametersprototyped parameters only
Integer parameter register depends on earlier floating point parameterYesNo
Justification of parameters smaller than slotinteger: left

float: N/A

integer: left

float: Undecided

Placement of long double parametersregister: $f12/$f14

memory: aligned

register: even/odd

memory: aligned

Sizes of structure components that are passed by registers32 bits64 bits
Are structure fields of type double in floating point registers?NeverIf not unioned
Justification of structs in partial registersleftleft
Who saves area for parameter registerscallercallee, only if needed
Structure results limited to one or two FP fields in registersFORTRAN COMPLEX onlyAlways
All types of structure results in registersneverup to 128 bits
Structure results via first parameter result in $2yesno
Callee-saved FP registers$f20..$f31 pairs$f24..$f31 all (64-bit)

$f20..$f31 even (n32)

Single exit block?yes, sometimes ignoredno (option)
Return address registerABI: $31

.mask support

any
GP registercaller-savedcallee saved
Use of odd FP registersdouble halvesarbitrary
Use of 64-bit int registersnever (MIPS 1)arbitrary



Next | Prev | Up | Top | Contents | Index