1 <!-- X Instructions here described in PowerISA Version 3.0 B Book 1 -->
3 <!-- Section 4.6.5 Floating-point Move instructions. P 150 -->
5 # Floating Move Register
16 Special Registers Altered:
20 # Floating Absolute Value Register
25 * fabs. FRT,FRB (Rc=1)
29 FRT <- 0b0 || FRB[1:63]
31 Special Registers Altered:
35 # Floating Negative Absolute Value Register
39 * fnabs FRT,FRB (Rc=0)
40 * fnabs. FRT,FRB (Rc=1)
44 FRT <- 0b1 || FRB[1:63]
46 Special Registers Altered:
50 # Floating Negate Register
55 * fneg. FRT,FRB (Rc=1)
59 FRT <- ¬FRB[0] || FRB[1:63]
61 Special Registers Altered:
65 # Floating Copy Sign Register
69 * fcpsgn FRT,FRA,FRB (Rc=0)
70 * fcpsgn. FRT,FRA,FRB (Rc=1)
74 FRT <- FRA[0] || FRB[1:63]
76 Special Registers Altered:
80 # [DRAFT] Floating Move To GPR
85 * fmvtg. RT,FRB (Rc=1)
91 Special Registers Altered:
95 # [DRAFT] Floating Move To GPR Single
99 * fmvtgs RT,FRB (Rc=0)
100 * fmvtgs. RT,FRB (Rc=1)
104 RT <- [0] * (XLEN/2) || SINGLE((FRB)) # SINGLE since that's what stfs uses
106 Special Registers Altered:
110 # [DRAFT] Floating Move From GPR
120 Special Registers Altered:
124 # [DRAFT] Floating Move From GPR Single
132 FRT <- DOUBLE((RB)[XLEN/2:XLEN-1]) # DOUBLE since that's what lfs uses
134 Special Registers Altered: