Register usage

Table 7 shows the registers available on the PA-RISC. For floating point registers, single precision registers get additional modifier 'L' or 'R' for left or right 32 bits.


Table 7: HPPA register summary
    CALLEE
REGISTER USAGE SAVE
%r0 Always zero NO
%r1 general reg NO
%r2 (%rp) return ptr/address NO
%r3-%r18 general regs YES
%r19 shared lib link reg NO
%r20-%r22 general regs NO
%r23 (%arg3) 4th iarg NO
%r24 (%arg2) 3rd iarg NO
%r25 (%arg1) 2nd iarg NO
%r26 (%arg0) 1st iarg NO
%r27 (%dp) RESERVED: global data pointer NA
%r28 (%ret0) func ret reg NO
%r29 static link reg NO
%r30 (%sp) stack pointer YES
%r31 general reg NO
Floating Point Registers
%fr0 / always zero fp status reg NO
%fr1-%fr3 exceptions regs NO
%fr4-%fr7 fp arg regs NO
%fr8-%fr11 fp regs NO
%fr12-%fr21 fp regs YES
%fr22-%fr31 fp regs NO


Clint Whaley 2012-07-10