Intel x86 Floating-Point Registers
TotalView displays the x86 floating point registers in the Stack Frame Pane of the Process Window. The next table describes how TotalView treats each floating-point register, and the actions you can take with each register.
Register
Description
Data Type
Edit
Dive
Specify in Expression
ST0
ST(0)
$extended
yes
yes
$st0
ST1
ST(1)
$extended
yes
yes
$st1
ST2
ST(2)
$extended
yes
yes
$st2
ST3
ST(3)
$extended
yes
yes
$st3
ST4
ST(4)
$extended
yes
yes
$st4
ST5
ST(5)
$extended
yes
yes
$st5
ST6
ST(6)
$extended
yes
yes
$st6
ST7
ST(7)
$extended
yes
yes
$st7
FPCR
Floating-point control register
$int
yes
no
$fpcr
FPSR
Floating-point status register
$int
no
no
$fpsr
FPTAG
Tag word
$int
no
no
$fptag
FPIOFF
Instruction offset
$int
no
no
$fpioff
FPISEL
Instruction selector
$int
no
no
$fpisel
FPDOFF
Data offset
$int
no
no
$fpdoff
FPDSEL
Data selector
$int
no
no
$fpdsel
MXCSR
SSE status and control
$int
yes
no
$mxcsv
MXCSR_MASK
MXCSR mask
$int
no
no
$mxcsr_ mask
XMM0_L  ... XMM7_L
Streaming SIMD -Extension: left half
$long long
yes
yes
$xmm0_l  ... $xmm7_l
XMM0_H  ... XMM7_H
Streaming SIMD -Extension: right half
$long long
yes
yes
$xmm0_h  ... $xmm7_h
NOTE: The Pentium III and 4 have 8 128-bit registers that are used by SSE and SSE2 instructions. TotalView displays these as 16 64-bit registers. These registers can be used in the following ways: 16 bytes, 8 words, 2 long longs, 4 floating point, 2 double, or a single 128-bit value. TotalView shows each of these hardware registers as two $long long registers. To change the type, dive and then edit the type in the data window to be an array of the type you wish. For example, cast it to “$char[16]”, “$float[4], and so on.