x86-64 Floating-Point Registers
TotalView displays the x86-64 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
FPOP
Floating-point operation
$int
no
no
$fpop
FPI
Instruction address
$int
no
no
$fpi
FPD
Data address
$int
no
no
$fpd
MXCSR
SSE status and control
$int
yes
no
$mxcsr
MXCSR_MASK
MXCSR mask
$int
no
no
$mxcsr_mask
XMM0_L
 ...
XMM7_L
Streaming SIMD Extension: left half
$long
yes
yes
$xmm0_l
 ...
$xmm7_l
XMM0_H
 ...
XMM7_H
Streaming SIMD Extension: right half
$long
yes
yes
$xmm0_h
 ...
$xmm7_h
XMM8_L
 ...
XMM15_L
Streaming SIMD Extension: left half
$long
yes
yes
$xmm8_l
 ...
$xmm15_l
XMM8_H
 ...
XMM15_H
Streaming SIMD Extension: right half
$long
yes
yes
$xmm8_h
 ...
$xmm15_h
 
NOTE >> The x86-64 has 16 128-bit registers that are used by SSE and SSE2 instructions. TotalView displays these as 32 64-bit registers. These registers can be used in the following ways: 16 bytes, 8 words, 2 longs, 4 floating point, 2 double, or a single 128-bit value. TotalView shows each of these hardware registers as two $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.