tcg-mips: implement nor
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
index f7ed0ba..a0c5289 100644
--- a/tcg/mips/tcg-target.c
+++ b/tcg/mips/tcg-target.c
@@ -1239,6 +1239,9 @@
tcg_out_opc_reg(s, OPC_OR, args[0], args[1], args[2]);
}
break;
+ case INDEX_op_nor_i32:
+ tcg_out_opc_reg(s, OPC_NOR, args[0], args[1], args[2]);
+ break;
case INDEX_op_not_i32:
tcg_out_opc_reg(s, OPC_NOR, args[0], args[1], args[1]);
break;
@@ -1350,6 +1353,7 @@
{ INDEX_op_sub_i32, { "r", "rZ", "rJZ" } },
{ INDEX_op_and_i32, { "r", "rZ", "rIZ" } },
+ { INDEX_op_nor_i32, { "r", "rZ", "rZ" } },
{ INDEX_op_not_i32, { "r", "rZ" } },
{ INDEX_op_or_i32, { "r", "rZ", "rIZ" } },
{ INDEX_op_xor_i32, { "r", "rZ", "rIZ" } },
diff --git a/tcg/mips/tcg-target.h b/tcg/mips/tcg-target.h
index 63d7f9a..5f8b00a 100644
--- a/tcg/mips/tcg-target.h
+++ b/tcg/mips/tcg-target.h
@@ -80,6 +80,7 @@
/* optional instructions */
#define TCG_TARGET_HAS_div_i32
#define TCG_TARGET_HAS_not_i32
+#define TCG_TARGET_HAS_nor_i32
#undef TCG_TARGET_HAS_rot_i32
#undef TCG_TARGET_HAS_ext8s_i32
#undef TCG_TARGET_HAS_ext16s_i32
@@ -89,7 +90,6 @@
#undef TCG_TARGET_HAS_orc_i32
#undef TCG_TARGET_HAS_eqv_i32
#undef TCG_TARGET_HAS_nand_i32
-#undef TCG_TARGET_HAS_nor_i32
/* optional instructions automatically implemented */
#undef TCG_TARGET_HAS_neg_i32 /* sub rd, zero, rt */