Browse Source

MIPS: uasm: Add s3s1s2 instruction builder

It will be used later on by the SLT instruction.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7119/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Markos Chandras 11 years ago
parent
commit
9d9873697e
2 changed files with 10 additions and 0 deletions
  1. 3 0
      arch/mips/include/asm/uasm.h
  2. 7 0
      arch/mips/mm/uasm.c

+ 3 - 0
arch/mips/include/asm/uasm.h

@@ -67,6 +67,9 @@ void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, signed int c)
 #define Ip_u2s3u1(op)							\
 #define Ip_u2s3u1(op)							\
 void ISAOPC(op)(u32 **buf, unsigned int a, signed int b, unsigned int c)
 void ISAOPC(op)(u32 **buf, unsigned int a, signed int b, unsigned int c)
 
 
+#define Ip_s3s1s2(op)							\
+void ISAOPC(op)(u32 **buf, int a, int b, int c)
+
 #define Ip_u2u1s3(op)							\
 #define Ip_u2u1s3(op)							\
 void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, signed int c)
 void ISAOPC(op)(u32 **buf, unsigned int a, unsigned int b, signed int c)
 
 

+ 7 - 0
arch/mips/mm/uasm.c

@@ -139,6 +139,13 @@ Ip_u1u2u3(op)						\
 }							\
 }							\
 UASM_EXPORT_SYMBOL(uasm_i##op);
 UASM_EXPORT_SYMBOL(uasm_i##op);
 
 
+#define I_s3s1s2(op)					\
+Ip_s3s1s2(op)						\
+{							\
+	build_insn(buf, insn##op, b, c, a);		\
+}							\
+UASM_EXPORT_SYMBOL(uasm_i##op);
+
 #define I_u2u1u3(op)					\
 #define I_u2u1u3(op)					\
 Ip_u2u1u3(op)						\
 Ip_u2u1u3(op)						\
 {							\
 {							\