x86-64 Floating-Point Registers
TotalView displays the x86-64 floating point registers in the Registers view. 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.