Tuesday, 30 May 2017

Store VSX Scalar as Integer Halfword Indexed (stxsihx/STXSIHX)


X-form
stxsihx XS,RA,RB
Let XS be the value 32×SX + S.
Let the effective address (EA) be sum of the contents of
GPR[RA], or 0 if RA is equal to 0, and the contents of
GPR[RB].
The contents of halfword element 3 of VSR[XS] are
placed into the halfword in storage addressed by EA.
Special Registers Altered:
None
31 S RA RB 909 SX
0 6 11 16 21 31
if SX=0 & MSR.VSX=0 then VSX_Unavailable()
if SX=1 & MSR.VEC=0 then Vector_Unavailable()
EA <= ((RA=0) ? 0 : GPR[RA]) + GPR[RB]
MEM(EA,1) <= VSR[32×SX+S].byte[7]
VSR Data Layout for stxsibx
src = VSR[XS]
unused .byte unused
0 56 64 127
31 S RA RB 941 SX
0 6 11 16 21 31
if SX=0 & MSR.VSX=0 then VSX_Unavailable()
if SX=1 & MSR.VEC=0 then Vector_Unavailable()
EA <= ((RA=0) ? 0 : GPR[RA]) + GPR[RB]
MEM(EA,2) <= VSR[32×SX+S].hword[3]
VSR Data Layout for stxsihx
src = VSR[XS]
unused .hword[3] unused
0 48 64 127

Similarly STXSIBX, just store byte 7 into EA address in memory.

No comments:

Post a Comment