diff options
-rw-r--r-- | arch/mips/include/asm/asmmacro.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h index 6156ac8c4cfb..76317a70200d 100644 --- a/arch/mips/include/asm/asmmacro.h +++ b/arch/mips/include/asm/asmmacro.h | |||
@@ -211,9 +211,13 @@ | |||
211 | .endm | 211 | .endm |
212 | 212 | ||
213 | #ifdef TOOLCHAIN_SUPPORTS_MSA | 213 | #ifdef TOOLCHAIN_SUPPORTS_MSA |
214 | /* preprocessor replaces the fp in ".set fp=64" with $30 otherwise */ | ||
215 | #undef fp | ||
216 | |||
214 | .macro _cfcmsa rd, cs | 217 | .macro _cfcmsa rd, cs |
215 | .set push | 218 | .set push |
216 | .set mips32r2 | 219 | .set mips32r2 |
220 | .set fp=64 | ||
217 | .set msa | 221 | .set msa |
218 | cfcmsa \rd, $\cs | 222 | cfcmsa \rd, $\cs |
219 | .set pop | 223 | .set pop |
@@ -222,6 +226,7 @@ | |||
222 | .macro _ctcmsa cd, rs | 226 | .macro _ctcmsa cd, rs |
223 | .set push | 227 | .set push |
224 | .set mips32r2 | 228 | .set mips32r2 |
229 | .set fp=64 | ||
225 | .set msa | 230 | .set msa |
226 | ctcmsa $\cd, \rs | 231 | ctcmsa $\cd, \rs |
227 | .set pop | 232 | .set pop |
@@ -230,6 +235,7 @@ | |||
230 | .macro ld_d wd, off, base | 235 | .macro ld_d wd, off, base |
231 | .set push | 236 | .set push |
232 | .set mips32r2 | 237 | .set mips32r2 |
238 | .set fp=64 | ||
233 | .set msa | 239 | .set msa |
234 | ld.d $w\wd, \off(\base) | 240 | ld.d $w\wd, \off(\base) |
235 | .set pop | 241 | .set pop |
@@ -238,6 +244,7 @@ | |||
238 | .macro st_d wd, off, base | 244 | .macro st_d wd, off, base |
239 | .set push | 245 | .set push |
240 | .set mips32r2 | 246 | .set mips32r2 |
247 | .set fp=64 | ||
241 | .set msa | 248 | .set msa |
242 | st.d $w\wd, \off(\base) | 249 | st.d $w\wd, \off(\base) |
243 | .set pop | 250 | .set pop |
@@ -246,6 +253,7 @@ | |||
246 | .macro copy_u_w ws, n | 253 | .macro copy_u_w ws, n |
247 | .set push | 254 | .set push |
248 | .set mips32r2 | 255 | .set mips32r2 |
256 | .set fp=64 | ||
249 | .set msa | 257 | .set msa |
250 | copy_u.w $1, $w\ws[\n] | 258 | copy_u.w $1, $w\ws[\n] |
251 | .set pop | 259 | .set pop |
@@ -254,6 +262,7 @@ | |||
254 | .macro copy_u_d ws, n | 262 | .macro copy_u_d ws, n |
255 | .set push | 263 | .set push |
256 | .set mips64r2 | 264 | .set mips64r2 |
265 | .set fp=64 | ||
257 | .set msa | 266 | .set msa |
258 | copy_u.d $1, $w\ws[\n] | 267 | copy_u.d $1, $w\ws[\n] |
259 | .set pop | 268 | .set pop |
@@ -262,6 +271,7 @@ | |||
262 | .macro insert_w wd, n | 271 | .macro insert_w wd, n |
263 | .set push | 272 | .set push |
264 | .set mips32r2 | 273 | .set mips32r2 |
274 | .set fp=64 | ||
265 | .set msa | 275 | .set msa |
266 | insert.w $w\wd[\n], $1 | 276 | insert.w $w\wd[\n], $1 |
267 | .set pop | 277 | .set pop |
@@ -270,6 +280,7 @@ | |||
270 | .macro insert_d wd, n | 280 | .macro insert_d wd, n |
271 | .set push | 281 | .set push |
272 | .set mips64r2 | 282 | .set mips64r2 |
283 | .set fp=64 | ||
273 | .set msa | 284 | .set msa |
274 | insert.d $w\wd[\n], $1 | 285 | insert.d $w\wd[\n], $1 |
275 | .set pop | 286 | .set pop |