From c0c31e91adc6aabe7c96f02dd51a0f6200a982da Mon Sep 17 00:00:00 2001 From: Rinat Zelig Date: Mon, 27 Mar 2017 11:14:30 +0100 Subject: Implement ARC NPS-400 Ultra Ip and Miscellaneous instructions. opcodes * arc-nps400-tbl.h: Add Ultra Ip and Miscellaneous instructions format. * arc-opc.c: Add defines. e.g. F_NJ, F_NM , F_NO_T, F_NPS_SR, F_NPS_M, F_NPS_CORE, F_NPS_ALL. (insert_nps_misc_imm_offset): New function. (extract_nps_misc imm_offset): New function. (arc_num_flag_operands): Add F_NJ, F_NM, F_NO_T. (arc_flag_special_cases): Add F_NJ, F_NM, F_NO_T. include * opcode/arc.h (insn_class_t): Add ULTRAIP and MISC class. gas * testsuite/gas/arc/nps400-12.s: New file. * testsuite/gas/arc/nps400-12.d: New file. --- include/ChangeLog | 4 ++++ include/opcode/arc.h | 14 ++++++++------ 2 files changed, 12 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/ChangeLog b/include/ChangeLog index 0937552..48f2afc 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2017-03-27 Rinat Zelig + + * opcode/arc.h (insn_class_t): Add ULTRAIP and MISC class. + 2017-03-21 Andreas Krebbel * opcode/s390.h (S390_INSTR_FLAG_VX2): Remove. diff --git a/include/opcode/arc.h b/include/opcode/arc.h index 3914dc0..97db92c 100644 --- a/include/opcode/arc.h +++ b/include/opcode/arc.h @@ -68,6 +68,7 @@ typedef enum LOGICAL, LOOP, MEMORY, + MISC, MOVE, MPY, NET, @@ -77,6 +78,7 @@ typedef enum PUSH, STORE, SUB, + ULTRAIP, XY } insn_class_t; @@ -141,7 +143,7 @@ typedef enum struct arc_opcode { /* The opcode name. */ - const char *name; + const char * name; /* The opcode itself. Those bits which will be filled in with operands are zeroes. */ @@ -371,7 +373,7 @@ extern const unsigned arc_NToperand; struct arc_flag_operand { /* The flag name. */ - const char *name; + const char * name; /* The flag code. */ unsigned code; @@ -453,13 +455,13 @@ struct arc_operand_operation struct arc_pseudo_insn { /* Mnemonic for pseudo/alias insn. */ - const char *mnemonic_p; + const char * mnemonic_p; /* Mnemonic for real instruction. */ - const char *mnemonic_r; + const char * mnemonic_r; /* Flag that will have to be added (if any). */ - const char *flag_r; + const char * flag_r; /* Amount of operands. */ unsigned operand_cnt; @@ -486,7 +488,7 @@ struct arc_aux_reg insn_subclass_t subclass; /* Register name. */ - const char *name; + const char * name; /* Size of the string. */ size_t length; -- cgit v1.1