summaryrefslogtreecommitdiffstats
path: root/arch/mips/mm
diff options
context:
space:
mode:
authorSteven J. Hill <Steven.Hill@imgtec.com>2013-03-25 12:03:41 -0500
committerRalf Baechle <ralf@linux-mips.org>2013-05-09 17:55:18 +0200
commitcf6d905828c2c75ebe8c818901e71e09ffe6f629 (patch)
treed2656af812415c8d0cb63d0fb1ea45c12ec9c1ed /arch/mips/mm
parent8fe4bb98e42945ddf2c0d47cec647ef76909e812 (diff)
downloadop-kernel-dev-cf6d905828c2c75ebe8c818901e71e09ffe6f629.zip
op-kernel-dev-cf6d905828c2c75ebe8c818901e71e09ffe6f629.tar.gz
MIPS: microMIPS: Fix macro naming in micro-assembler.
The macros did not properly take into account the ISA that the kernel was being compiled with. A classic MIPS kernel will have the standard 'uasm_i_##op' macro functions with 'MM_uasm_i_##op' macro functions for the microMIPS version. A pure microMIPS kernel will have the standard macros with 'CL_uasm_i_##op' macro functions for the classic version. Signed-off-by: Steven J. Hill <Steven.Hill@imgtec.com>
Diffstat (limited to 'arch/mips/mm')
-rw-r--r--arch/mips/mm/uasm-mips.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/mips/mm/uasm-mips.c b/arch/mips/mm/uasm-mips.c
index e78e74d..5fcdd8f 100644
--- a/arch/mips/mm/uasm-mips.c
+++ b/arch/mips/mm/uasm-mips.c
@@ -20,6 +20,7 @@
#include <asm/inst.h>
#include <asm/elf.h>
#include <asm/bugs.h>
+#define UASM_ISA _UASM_ISA_CLASSIC
#include <asm/uasm.h>
#define RS_MASK 0x1f
@@ -38,6 +39,14 @@
| (e) << RE_SH \
| (f) << FUNC_SH)
+/* Define these when we are not the ISA the kernel is being compiled with. */
+#ifdef CONFIG_CPU_MICROMIPS
+#define CL_uasm_i_b(buf, off) ISAOPC(_beq)(buf, 0, 0, off)
+#define CL_uasm_i_beqz(buf, rs, off) ISAOPC(_beq)(buf, rs, 0, off)
+#define CL_uasm_i_beqzl(buf, rs, off) ISAOPC(_beql)(buf, rs, 0, off)
+#define CL_uasm_i_bnez(buf, rs, off) ISAOPC(_bne)(buf, rs, 0, off)
+#endif
+
#include "uasm.c"
static struct insn insn_table[] __uasminitdata = {
OpenPOWER on IntegriCloud