@@ -149,14 +149,15 @@ func init() {
149
149
gpstorexchg = regInfo {inputs : []regMask {gp , gpspsb , 0 }, outputs : []regMask {gp }}
150
150
cmpxchg = regInfo {inputs : []regMask {gp , ax , gp , 0 }, outputs : []regMask {gp , 0 }, clobbers : ax }
151
151
152
- fp01 = regInfo {inputs : nil , outputs : fponly }
153
- fp21 = regInfo {inputs : []regMask {fp , fp }, outputs : fponly }
154
- fp31 = regInfo {inputs : []regMask {fp , fp , fp }, outputs : fponly }
155
- fp21load = regInfo {inputs : []regMask {fp , gpspsb , 0 }, outputs : fponly }
156
- fpgp = regInfo {inputs : fponly , outputs : gponly }
157
- gpfp = regInfo {inputs : gponly , outputs : fponly }
158
- fp11 = regInfo {inputs : fponly , outputs : fponly }
159
- fp2flags = regInfo {inputs : []regMask {fp , fp }}
152
+ fp01 = regInfo {inputs : nil , outputs : fponly }
153
+ fp21 = regInfo {inputs : []regMask {fp , fp }, outputs : fponly }
154
+ fp31 = regInfo {inputs : []regMask {fp , fp , fp }, outputs : fponly }
155
+ fp21load = regInfo {inputs : []regMask {fp , gpspsb , 0 }, outputs : fponly }
156
+ fp21loadidx = regInfo {inputs : []regMask {fp , gpspsb , gpspsb , 0 }, outputs : fponly }
157
+ fpgp = regInfo {inputs : fponly , outputs : gponly }
158
+ gpfp = regInfo {inputs : gponly , outputs : fponly }
159
+ fp11 = regInfo {inputs : fponly , outputs : fponly }
160
+ fp2flags = regInfo {inputs : []regMask {fp , fp }}
160
161
161
162
fpload = regInfo {inputs : []regMask {gpspsb , 0 }, outputs : fponly }
162
163
fploadidx = regInfo {inputs : []regMask {gpspsb , gpsp , 0 }, outputs : fponly }
@@ -201,6 +202,23 @@ func init() {
201
202
{name : "DIVSSload" , argLength : 3 , reg : fp21load , asm : "DIVSS" , aux : "SymOff" , resultInArg0 : true , faultOnNilArg1 : true , symEffect : "Read" }, // fp32 arg0 / tmp, tmp loaded from arg1+auxint+aux, arg2 = mem
202
203
{name : "DIVSDload" , argLength : 3 , reg : fp21load , asm : "DIVSD" , aux : "SymOff" , resultInArg0 : true , faultOnNilArg1 : true , symEffect : "Read" }, // fp64 arg0 / tmp, tmp loaded from arg1+auxint+aux, arg2 = mem
203
204
205
+ {name : "ADDSSloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "ADDSS" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 + tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
206
+ {name : "ADDSSloadidx4" , argLength : 4 , reg : fp21loadidx , asm : "ADDSS" , scale : 4 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 + tmp, tmp loaded from arg1+4*arg2+auxint+aux, arg3 = mem
207
+ {name : "ADDSDloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "ADDSD" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 + tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
208
+ {name : "ADDSDloadidx8" , argLength : 4 , reg : fp21loadidx , asm : "ADDSD" , scale : 8 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 + tmp, tmp loaded from arg1+8*arg2+auxint+aux, arg3 = mem
209
+ {name : "SUBSSloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "SUBSS" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 - tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
210
+ {name : "SUBSSloadidx4" , argLength : 4 , reg : fp21loadidx , asm : "SUBSS" , scale : 4 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 - tmp, tmp loaded from arg1+4*arg2+auxint+aux, arg3 = mem
211
+ {name : "SUBSDloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "SUBSD" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 - tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
212
+ {name : "SUBSDloadidx8" , argLength : 4 , reg : fp21loadidx , asm : "SUBSD" , scale : 8 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 - tmp, tmp loaded from arg1+8*arg2+auxint+aux, arg3 = mem
213
+ {name : "MULSSloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "MULSS" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 * tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
214
+ {name : "MULSSloadidx4" , argLength : 4 , reg : fp21loadidx , asm : "MULSS" , scale : 4 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 * tmp, tmp loaded from arg1+4*arg2+auxint+aux, arg3 = mem
215
+ {name : "MULSDloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "MULSD" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 * tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
216
+ {name : "MULSDloadidx8" , argLength : 4 , reg : fp21loadidx , asm : "MULSD" , scale : 8 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 * tmp, tmp loaded from arg1+8*arg2+auxint+aux, arg3 = mem
217
+ {name : "DIVSSloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "DIVSS" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 / tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
218
+ {name : "DIVSSloadidx4" , argLength : 4 , reg : fp21loadidx , asm : "DIVSS" , scale : 4 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp32 arg0 / tmp, tmp loaded from arg1+4*arg2+auxint+aux, arg3 = mem
219
+ {name : "DIVSDloadidx1" , argLength : 4 , reg : fp21loadidx , asm : "DIVSD" , scale : 1 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 / tmp, tmp loaded from arg1+arg2+auxint+aux, arg3 = mem
220
+ {name : "DIVSDloadidx8" , argLength : 4 , reg : fp21loadidx , asm : "DIVSD" , scale : 8 , aux : "SymOff" , resultInArg0 : true , symEffect : "Read" }, // fp64 arg0 / tmp, tmp loaded from arg1+8*arg2+auxint+aux, arg3 = mem
221
+
204
222
// binary ops
205
223
{name : "ADDQ" , argLength : 2 , reg : gp21sp , asm : "ADDQ" , commutative : true , clobberFlags : true }, // arg0 + arg1
206
224
{name : "ADDL" , argLength : 2 , reg : gp21sp , asm : "ADDL" , commutative : true , clobberFlags : true }, // arg0 + arg1
0 commit comments