[ARC] Fix support for double assist instructions.
[binutils-gdb.git] / opcodes / arc-opc.c
index 82aaf1e9428c3c3622abc601ef9f174660ff89bb..cecf60c39ab981cb413e7642e02877d949a93f5f 100644 (file)
@@ -1054,11 +1054,11 @@ const struct arc_operand arc_operands[] =
 #define R3             (R2 + 1)
 #define R3_S           (R2 + 1)
   { 2, 0, 0, ARC_OPERAND_IR, insert_r3, extract_r3 },
-#define SP             (R3 + 1)
+#define RSP            (R3 + 1)
 #define SP_S           (R3 + 1)
   { 5, 0, 0, ARC_OPERAND_IR, insert_sp, extract_sp },
-#define SPdup          (SP + 1)
-#define SP_Sdup                (SP + 1)
+#define SPdup          (RSP + 1)
+#define SP_Sdup                (RSP + 1)
   { 5, 0, 0, ARC_OPERAND_IR | ARC_OPERAND_DUPLICATE, insert_sp, extract_sp },
 #define GP             (SPdup + 1)
 #define GP_S           (SPdup + 1)
@@ -1311,10 +1311,10 @@ const struct arc_operand arc_operands[] =
   { 3, 21, 0, ARC_OPERAND_IR | ARC_OPERAND_NCHK, insert_nps_3bit_src2, extract_nps_3bit_src2 },
 
 #define NPS_R_DST      (NPS_R_SRC2_3B + 1)
-  { 6, 21, 0, ARC_OPERAND_IR | ARC_OPERAND_NCHK, NULL, NULL },
+  { 6, 21, 0, ARC_OPERAND_IR, NULL, NULL },
 
 #define NPS_R_SRC1     (NPS_R_DST + 1)
-  { 6, 21, 0, ARC_OPERAND_IR | ARC_OPERAND_DUPLICATE | ARC_OPERAND_NCHK, NULL, NULL },
+  { 6, 21, 0, ARC_OPERAND_IR | ARC_OPERAND_DUPLICATE, NULL, NULL },
 
 #define NPS_BITOP_DST_POS      (NPS_R_SRC1 + 1)
   { 5, 5, 0, ARC_OPERAND_UNSIGNED, 0, 0 },
@@ -1343,6 +1343,7 @@ const struct arc_opcode arc_opcodes[] =
 {
 #include "arc-tbl.h"
 #include "arc-nps400-tbl.h"
+#include "arc-ext-tbl.h"
 };
 
 const unsigned arc_num_opcodes = ARRAY_SIZE (arc_opcodes);
@@ -1495,8 +1496,8 @@ const unsigned arc_num_pseudo_insn =
 const struct arc_aux_reg arc_aux_regs[] =
 {
 #undef DEF
-#define DEF(ADDR, NAME)                                \
-  { ADDR, #NAME, sizeof (#NAME)-1 },
+#define DEF(ADDR, SUBCLASS, NAME)              \
+  { ADDR, SUBCLASS, #NAME, sizeof (#NAME)-1 },
 
 #include "arc-regs.h"