mfvsrd

Move From VSR Doubleword

mfvsrd RA, XS

Moves the contents of a doubleword element from a Vector-Scalar Register (VSR) to a General Purpose Register (GPR).

Details

The contents of doubleword element 0 of VSR[XS] are placed into GPR[RA]. For SX=0, mfvsrd is treated as a Floating-Point instruction in terms of resource availability. For SX=1, mfvsrd is treated as a Vector instruction in terms of resource availability.

Pseudocode Operation

if SX=0 & MSR.FP=0 then FP_Unavailable()
if SX=1 & MSR.VEC=0 then Vector_Unavailable()
GPR[RA] ← VSR[32×SX+S].dword[0]

Programming Note

For SX=0, mfvsrd is treated as a Floating-Point instruction in terms of resource availability. For SX=1, mfvsrd is treated as a Vector instruction in terms of resource availability.

Extended Mnemonics

Extended Mnemonic Equivalent Instruction
mffprd
mfvrd

Example

mfvsrd r4, vs1

Encoding

Binary Layout
0
0
S
1
RA
6
6
11
11
16
SX
21
16
21
31
 
Format XX1-form
Opcode 0x7C000033
Extension VSX
Registers Altered MSR

Operands

  • RA
    Target GPR
  • XS
    Source VSR