xsxsigdp

VSX Scalar Extract Significand Double-Precision

xsxsigdp XT, XB

Extracts the significand of a double-precision floating-point value from a VSX register and places it into a general-purpose register.

Details

The xsxsigdp instruction extracts the significand of a double-precision floating-point value in VSR[XB] and places it into GPR[RT]. The significand is placed in unsigned integer format, with the implicit leading bit set to 1 if the source is a normal value.

Pseudocode Operation

if MSR.VSX=0 then VSX_Unavailable()

exponent ←VSR[32×BX+B].bit[1:11]
fraction ←EXTZ64(VSR[32×BX+B].bit[12:63])

if (exponent != 0) & (exponent != 2047) then
    significand ←fraction | (0x001 || 520)
else
    significand ←fraction

GPR[RT] ←significand

Programming Note

This instruction can be used to operate on a single-precision source operand.

Example

xsxsigdp vs1, vs3

Encoding

Binary Layout
60
0
XT
6
/
11
XB
16
347
21
BX
30
TX
31
 
Format XX2-form
Opcode 0xF000000B
Extension VSX
Registers Altered MSR

Operands

  • XT
    Target
  • XB
    Source
  • RT
    Target General Purpose Register
  • VS32
    Target Vector Register
  • VS31
    Source Vector Register