MIPS: fix read_msa_* & write_msa_* functions on non-MSA toolchains
Commit d96cc3d1ec
"MIPS: Add microMIPS MSA support." attempted to use
the value of a macro within an inline asm statement but instead emitted
a comment leading to the cfcmsa & ctcmsa instructions being omitted. Fix
that by passing CFC_MSA_INSN & CTC_MSA_INSN as arguments to the asm
statements.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7305/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Родитель
732c0c3c70
Коммит
70dff4d90a
|
@ -115,10 +115,10 @@ static inline unsigned int read_msa_##name(void) \
|
|||
" .set push\n" \
|
||||
" .set noat\n" \
|
||||
" .insn\n" \
|
||||
" .word #CFC_MSA_INSN | (" #cs " << 11)\n" \
|
||||
" .word %1 | (" #cs " << 11)\n" \
|
||||
" move %0, $1\n" \
|
||||
" .set pop\n" \
|
||||
: "=r"(reg)); \
|
||||
: "=r"(reg) : "i"(CFC_MSA_INSN)); \
|
||||
return reg; \
|
||||
} \
|
||||
\
|
||||
|
@ -129,9 +129,9 @@ static inline void write_msa_##name(unsigned int val) \
|
|||
" .set noat\n" \
|
||||
" move $1, %0\n" \
|
||||
" .insn\n" \
|
||||
" .word #CTC_MSA_INSN | (" #cs " << 6)\n" \
|
||||
" .word %1 | (" #cs " << 6)\n" \
|
||||
" .set pop\n" \
|
||||
: : "r"(val)); \
|
||||
: : "r"(val), "i"(CTC_MSA_INSN)); \
|
||||
}
|
||||
|
||||
#endif /* !TOOLCHAIN_SUPPORTS_MSA */
|
||||
|
|
Загрузка…
Ссылка в новой задаче