The debug(1) command has been enhanced for MMX and the Pentium III Streaming SIMD instructions, to allow both disassembly and register manipulation.
Note that the Floating Point/MMX and Pentium III extended floating point registers are only accessible to users after a floating point, MMX, or Pentium III Streaming SIMD instruction has been executed. The debug regs command will only display these registers when they are available.
MMX registers are aliased in hardware to the x86 floating point registers and can be manipulated in the same way. The MMX registers are referred to as %mm0-%mm7, but these register names are interchangeable with %st0-%st7.
The Pentium III Streaming SIMD extended floating point registers are 128 bits in size. Each register can be considered to be made up of four 32-bit floating point values. The extended floating point registers can be accessed as %xmm0 to %xmm7, but it is recommended that the individual 32-bit float components be manipulated independently.
The 32-bit float components of the registers can be accessed by appending the letters a through d to the register names (for example, %xmm3b), where a refers to the high order 32-bit portion and d refers to the low order portion. (Note that this naming convention may change in later versions of the debugger.)
Using the 128-bit %xmm0-%xmm7 register variables for viewing and assignment is strongly discouraged because there are limitations to the compiler front-end which is used by the debugger. These limitations will be lifted in a forthcoming compiler release.
Changing the value of the extended floating point status register, %mxcsr, is also strongly discouraged, since unmasked Pentium III extended floating point exceptions are not supported.