Platform-Specific Registers
The tables in this section list platform-specific register names for SPARC
architecture, x86 architecture, and AMD64 architecture that can be used in
expressions.
SPARC Register Information
The following table lists
register information for SPARC architecture.
|
|
$g0 through $g7
|
Global registers
|
$o0 through $o7
|
“out” registers
|
$l0 through $l7
|
“local” registers
|
$i0 through $i7
|
“in” registers
|
$fp
|
Frame pointer, equivalent to register $i6
|
$sp
|
Stack pointer, equivalent to register $o6
|
$y
|
Y register
|
$psr
|
Processor state register
|
$wim
|
Window invalid mask register
|
$tbr
|
Trap base register
|
$pc
|
Program counter
|
$npc
|
Next program counter
|
$f0 through $f31
|
FPU “f” registers
|
$fsr
|
FPU status register
|
$fq
|
FPU queue
|
|
The $f0f1
$f2f3 ... $f30f31 pairs of floating-point
registers are treated as having C double type (normally $fN
registers are treated as C float type). These pairs can also be referred to as
$d0 ... $d30.
The following quad floating-point registers are treated as having C long double
type, They are available on SPARC V9 hardware:
$q0 $q4 through $q60
The following pairs of registers, which combine the least significant 32 bits of
two registers, are available on SPARC V8+ hardware:
$g0g1 through $g6g7
$o0o1 through $o6o7
The following additional registers are available on SPARC V9 and V8+
hardware:
$xg0 through $xg7
$xo0 through $xo7
$xfsr $tstate $gsr
$f32f33 $f34f35 through $f62f63 ($d32 ... $$d62)
See SPARC Architecture Reference Manual and the
SPARC Assembly Language Reference Manual for more information on SPARC
registers and addressing.
x86 Register Information
The following table lists
register information for x86 architecture.
|
|
$gs
|
Alternate data segment register
|
$fs
|
Alternate data segment register
|
$es
|
Alternate data segment register
|
$ds
|
Data segment register
|
$edi
|
Destination index register
|
$esi
|
Source index register
|
$ebp
|
Frame pointer
|
$esp
|
Stack pointer
|
$ebx
|
General register
|
$edx
|
General register
|
$ecx
|
General register
|
$eax
|
General register
|
$trapno
|
Exception vector number
|
$err
|
Error code for exception
|
$eip
|
Instruction pointer
|
$cs
|
Code segment register
|
$eflags
|
Flags
|
$uesp
|
User stack pointer
|
$ss
|
Stack segment register
|
|
Commonly used registers are also aliased to their machine independent
names.
|
|
$sp
|
Stack pointer; equivalent of $uesp
|
$pc
|
Program counter; equivalent of $eip
|
$fp
|
Frame pointer; equivalent of $ebp
|
$ps
|
|
|
The following table lists registers for the 80386 lower halves (16 bits).
|
|
$ax
|
General register
|
$cx
|
General register
|
$dx
|
General register
|
$bx
|
General register
|
$si
|
Source index register
|
$di
|
Destination index register
|
$ip
|
Instruction pointer, lower 16 bits
|
$flags
|
Flags, lower 16 bits
|
|
The first four 80386 16-bit registers can be split into 8-bit parts, as shown in
the following table:
|
|
$al
|
Lower (right) half of register $ax
|
$ah
|
Higher (left) half of register $ax
|
$cl
|
Lower (right) half of register $cx
|
$ch
|
Higher (left) half of register $cx
|
$dl
|
Lower (right) half of register $dx
|
$dh
|
Higher (left) half of register $dx
|
$bl
|
Lower (right) half of register $bx
|
$bh
|
Higher (left) half of register $bx
|
|
The following table lists registers for 80387 halves:.
|
|
$fctrl
|
Control register
|
$fstat
|
Status register
|
$ftag
|
Tag register
|
$fip
|
Instruction pointer offset
|
$fcs
|
Code segment selector
|
$fopoff
|
Operand pointer offset
|
$fopsel
|
Operand pointer selector
|
$st0 through $st7
|
Data registers
|
|
AMD64 Register Information
The following table lists r
egister information for AMD64 architecture:
|
|
rax
|
General purpose register - argument passing for function
calls
|
rbp
|
General purpose register - stack management/frame pointer
|
rbx
|
General purpose register - callee-saved
|
rcx
|
General purpose register - argument passing for function
calls
|
rdx
|
General purpose register - argument passing for function
calls
|
rsi
|
General purpose register - argument passing for function
calls
|
rdi
|
General purpose register - argument passing for function
calls
|
rsp
|
General purpose register - stack management/stack pointer
|
r8
|
General purpose register - argument passing for function
calls
|
r9
|
General purpose register - argument passing for function
calls
|
r10
|
General purpose register - temporary
|
r11
|
General purpose register - temporary
|
r12
|
General purpose register - callee-saved
|
r13
|
General purpose register - callee-saved
|
r14
|
General purpose register - callee-saved
|
r15
|
General purpose register - callee-saved
|
rflags
|
Flags register
|
rip
|
Instruction pointer
|
mmx0/st0
|
64-bit media and floating-point register
|
mmx1/st1
|
64-bit media and floating-point register
|
mmx2/st2
|
64-bit media and floating-point register
|
mmx3/st3
|
64-bit media and floating-point register
|
mmx4/st4
|
64-bit media and floating-point register
|
mmx5/st5
|
64-bit media and floating-point register
|
mmx6/st6
|
64-bit media and floating-point register
|
mmx7/st7
|
64-bit media and floating-point register
|
xmm0
|
128-bit media register
|
xmm1
|
128-bit media register
|
xmm2
|
128-bit media register
|
xmm3
|
128-bit media register
|
xmm4
|
128-bit media register
|
xmm5
|
128-bit media register
|
xmm6
|
128-bit media register
|
xmm7
|
128-bit media register
|
xmm8
|
128-bit media register
|
xmm9
|
128-bit media register
|
xmm10
|
128-bit media register
|
xmm11
|
128-bit media register
|
xmm12
|
128-bit media register
|
xmm13
|
128-bit media register
|
xmm14
|
128-bit media register
|
xmm15
|
128-bit media register
|
cs
|
Segment register
|
es
|
Segment register
|
fs
|
Segment register
|
gs
|
Segment register
|
os
|
Segment register
|
ss
|
Segment register
|
fcw
|
fxsave and fxstor memory
image control word
|
fsw
|
fxsave and fxstor memory
image status word
|
ftw
|
fxsave and fxstor memory
image tag word
|
fop
|
fxsave and fxstor memory
image last x87 op code
|
frdp
|
fxsave and fxstor memory
image 64-bit offset into the date segment
|
frip
|
fxsave and fxstor memory
image 64-bit offset into the code segment
|
mxcsr
|
fxsave and fxstor memory
image 128 media instruction control and status register
|
mxcsr_mask
|
set bits in mxcsr_mask indicate supported
feature bits in mxcsr
|
ymmo
|
256–bit advanced vector register
|
ymm1
|
256–bit advanced vector register
|
ymm2
|
256–bit advanced vector register
|
ymm3
|
256–bit advanced vector register
|
ymm4
|
256–bit advanced vector register
|
ymm5
|
256–bit advanced vector register
|
ymm6
|
256–bit advanced vector register
|
ymm7
|
256–bit advanced vector register
|
ymm8
|
256–bit advanced vector register
|
ymm9
|
256–bit advanced vector register
|
ymm10
|
256–bit advanced vector register
|
ymm11
|
256–bit advanced vector register
|
ymm12
|
256–bit advanced vector register
|
ymm13
|
256–bit advanced vector register
|
ymm14
|
256–bit advanced vector register
|
ymm15
|
256–bit advanced vector register
|
|
The fields of an advanced vector (AVX) register (ymm0 through
ymm15) can be treated as having C int,
float, or double types.