The following tables list platform-specific register names for SPARC architecture, x86 architecture, and AMD64 architecture that can be used in expressions.
The following register information is for [Please define the SPARCsans text entity] architecture.
Register |
Description |
---|---|
$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 additional registers are available on SPARC V9 and V8+ hardware:
$g0g1 through $g6g7 $o0o1 through $o6o7 $xfsr $tstate $gsr $f32f33 $f34f35 through $f62f63 ($d32 ... $$d62) |
See the SPARC Architecture Reference Manual and the SPARC Assembly Language Reference Manual for more information on SPARC registers and addressing.
The following register information is for x86 architecture.
Register |
Description |
---|---|
$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.
Register |
Description |
---|---|
$sp |
Stack pointer; equivalent of $uesp |
$pc |
Program counter; equivalent of $eip |
$fp |
Frame pointer; equivalent of $ebp |
Registers for the 80386 lower halves (16 bits) are:
Register |
Description |
---|---|
$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:
Register |
Description |
---|---|
$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 |
Registers for the 80387 are:
Register |
Description |
---|---|
$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 |
The following register information is for AMD64 architecture:
Register |
Description |
---|---|
rax |
General purpose register - argument passing for function calls |
rbx |
General purpose register - callee-saved |
rcx |
General purpose register - argument passing for function calls |
rdx |
General purpose register - argument passing for function calls |
rbp |
General purpose register - stack management/frame pointer |
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 |
os |
Segment register |
es |
Segment register |
fs |
Segment register |
gs |
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 |
frip |
fxsave and fxstor memory image 64-bit offset into the code segment |
frdp |
fxsave and fxstor memory image 64-bit offset into the date 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 |