
This file records register use conventions and info for the 4
supported platforms (since it is ABI dependent).  This is so as to
avoid having to endlessly re-look up this info in ABI documents.

                      -----------------------

x86-linux
~~~~~~~~~

Reg        Callee      Arg   
Name       Saves?      Reg?     Comment              Vex-uses?
--------------------------------------------------------------
eax        n           n        int[31:0] retreg     y
ebx        y           n                             y
ecx        n           n                             y
edx        n           n        int[63:32] retreg    y
esi        y           n                             y
edi        y           n                             y
ebp        y           n                             & guest state
esp        reserved    n/a                           n/a
eflags     n           n/a                           y
st0        n ?         n        fp retreg            y
st1-7      n ?         n                             y
xmm0-7     n ?         n                             y
gs                              Thread ptr

In the case where arguments are passed in registers, the arg1,2,3
registers are EAX, EDX, and ECX respectively.

amd64-linux
~~~~~~~~~~~

Reg        Callee      Arg    
Name       Saves?      Reg?     Comment              Vex-uses?
-------------------------------------------------------------------
rax        n           n        int[63:0] retreg
rbx        y           n                             y
rcx        n           int#4
rdx        n           int#3    int[127:64] retreg
rsi        n           int#2                         y
rdi        n           int#1                         y
rbp        y           n                             & guest state
rsp        reserved    n/a                           n/a
r8         n           int#5                         y
r9         n           int#6                         y
r10        n ?
r11        n                                         jmp temporary
r12-15     y                                         y
eflags     n           n/a                           y
st0-7      n           n        long double retreg   y
xmm0       n           fp#1     fp retreg
xmm1       n           fp#2     fp-high retreg
xmm2-7     n           fp#3-8                        y (3-7)
xmm8-15    n                                         y (8-12)
fs                              thread ptr

ppc32-linux
~~~~~~~~~~~

Reg        Callee      Arg    
Name       Saves?      Reg?     Comment              Vex-uses?
-------------------------------------------------------------------
r0         n           n        sometimes RAZ
r1         y           n        stack pointer
r2         n           n        thread ptr
r3         n           int#1    int[31:0] retreg     y
r4         n           int#2    also int retreg      y
r5         n           int#3                         y
r6         n           int#4                         y
r7         n           int#5                         y
r8         n           int#6                         y
r9         n           int#7                         y
r10        n           int#8                         y
r11        n                                         y
r12        n                                         y
r13        ?
r14-28     y                                         y
r29        y                                reserved for dispatcher
r30        y                                altivec spill temporary
r31        y                                         & guest state
f0         n
f1         n           fp#1     fp retreg
f2-8       n           fp#2-8
f9-13      n
f14-31     y                                         y (14-21)
v0-v19     ?
v20-31     y                                         y (20-27,29)
cr0-7
lr         y                    return address
ctr        n
xer        n
fpscr


ppc64-linux
~~~~~~~~~~~
Reg        Callee      Arg    
Name       Saves?      Reg?     Comment              Vex-uses?
-------------------------------------------------------------------
r13        n           n        thread ptr
TBD


arm-linux
~~~~~~~~~

Reg        Callee      Arg
Name       Saves?      Reg?     Comment              Vex-uses?
--------------------------------------------------------------
r0                     int#1    int[31:0] retreg?    avail
r1                     int#2    int[63:32] retreg?   avail
r2                     int#3                         avail
r3                     int#4                         avail
r4         y                                         avail
r5         y                                         avail
r6         y                                         avail
r7         y                                         avail
r8         y                                         GSP
r9         y (but only on Linux; not in general)     avail
r10        y                                         avail
r11        y                                         avail
r12                         possibly used by linker? unavail
r13(sp)                                              unavail
r14(lr)                                              unavail
r15(pc)                                              unavail
cp15/c3/r2                  thread ptr (see libvex_guest_arm.h, guest_TPIDRURO)

VFP: d8-d15 are callee-saved
r12 (IP) is probably available for use as a caller-saved
register; but instead we use it as an intermediate for
holding the address for F32/F64 spills, since the VFP load/store
insns have reg+offset forms for offsets only up to 1020, which
often isn't enough.


arm64-linux
~~~~~~~~~~~

Reg        Callee     Arg
Name       Saves?     Reg?       Comment              Vex-uses?
---------------------------------------------------------------
r0                    int#0      ret#0 (??)
r1                    int#1      ret#1 (??)
r2-7                  int#2..7 
r8                              "Indirect res loc reg" ProfInc scratch
r9                              "Temporary regs"      chaining scratch
r10-15                          "Temporary regs"      avail
r16(IP0)
r17(IP1)
r18                             "Platform reg"
r19-20                          "Temporary regs"
r21        y                    "Callee saved"        GSP
r22-28     y                    "Callee saved"
r29(FP)    y
r30(LR)    y

NZCV                            "Status register"

Is there a TLS register?

x21 is the GSP.  x9 is a scratch chaining/spill temp.  Neither
are available to the register allocator.

Q registers:
It's a little awkward. Basically, D registers are the same as ARM,
so d0-d7 and d16-d31 are caller-saved, but d8-d15 are callee-saved.

Q registers are the same, except that the upper 64 bits of q8-q15
are caller-saved.

The idea is that you only need to preserve D registers, not Q
registers.



s390x-linux
~~~~~~~~~~~

Reg        Callee      Arg
Name       Saves?      Reg?     Comment              Vex-uses?
--------------------------------------------------------------
r0         n                    see below            unavail
r1         n                                         avail
r2         n           int#1    return value         avail
r3         n           int#2                         avail
r4         n           int#3                         avail
r5         n           int#4                         avail
r6         y           int#5                         avail
r7         y                                         avail
r8         y                                         avail
r9         y                                         avail
r10        y                    see below            avail
r11        y                    see below            avail
r12        y                                         unavail VG_(dispatch_ctr)
r13        y                                         unavail gsp
r14(lr)    n                                         unavail lr
r15(sp)    y                                         unavail sp

f0         n                    return value         avail
f1-f7      n                                         avail
f8-f11     y                                         avail
f12-f15    y                    see below            avail
a0         n                    thread ptr high word
a1         n                    thread ptr low word

When r0 is used as a base or index register its contents is
ignored and the value 0 is used instead. This is the reason
why VEX cannot use it.

r10, r11 as well as f12-f15 are used as real regs during insn
selection when register pairs are required.

ppc32-aix5
~~~~~~~~~~

Reg        Callee      Arg    
Name       Saves?      Reg?     Comment              Vex-uses?
-------------------------------------------------------------------
r0         n           n        sometimes RAZ
r1         y           n        stack pointer
r2         n           n        TOC pointer
r3         n           int#1    int[31:0] retreg     y
r4         n           int#2    also int retreg      y
r5         n           int#3                         y
r6         n           int#4                         y
r7         n           int#5                         y
r8         n           int#6                         y
r9         n           int#7                         y
r10        n           int#8                         y
r11        n                    "env pointer?!"      y
r12        n                    "exn handling"       y
r13        ?                    "reserved in 64-bit env"
r14-28     y                                         y
r29        y                                reserved for dispatcher
r30        y                                altivec spill temporary
r31        y                                         & guest state
f0         n
f1         n           fp#1     fp retreg
f2-13      n           fp#2-13  
f14-31     y                                         y (14-21)
v0-v19     ?
v20-31     y                                         y (20-27,29)
cr0-7
lr         y                    return address
ctr        n
xer        n
fpscr
