| 1 |
24 |
jeremybenn |
/* Instruction opcode header for cris.
|
| 2 |
|
|
|
| 3 |
|
|
THIS FILE IS MACHINE GENERATED WITH CGEN.
|
| 4 |
|
|
|
| 5 |
|
|
Copyright 1996-2007 Free Software Foundation, Inc.
|
| 6 |
|
|
|
| 7 |
|
|
This file is part of the GNU Binutils and/or GDB, the GNU debugger.
|
| 8 |
|
|
|
| 9 |
|
|
This file is free software; you can redistribute it and/or modify
|
| 10 |
|
|
it under the terms of the GNU General Public License as published by
|
| 11 |
|
|
the Free Software Foundation; either version 3, or (at your option)
|
| 12 |
|
|
any later version.
|
| 13 |
|
|
|
| 14 |
|
|
It is distributed in the hope that it will be useful, but WITHOUT
|
| 15 |
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
| 16 |
|
|
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
| 17 |
|
|
License for more details.
|
| 18 |
|
|
|
| 19 |
|
|
You should have received a copy of the GNU General Public License along
|
| 20 |
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
| 21 |
|
|
51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
| 22 |
|
|
|
| 23 |
|
|
*/
|
| 24 |
|
|
|
| 25 |
|
|
#ifndef CRIS_OPC_H
|
| 26 |
|
|
#define CRIS_OPC_H
|
| 27 |
|
|
|
| 28 |
|
|
/* Enum declaration for cris instruction types. */
|
| 29 |
|
|
typedef enum cgen_insn_type {
|
| 30 |
|
|
CRIS_INSN_INVALID, CRIS_INSN_NOP, CRIS_INSN_MOVE_B_R, CRIS_INSN_MOVE_W_R
|
| 31 |
|
|
, CRIS_INSN_MOVE_D_R, CRIS_INSN_MOVEPCR, CRIS_INSN_MOVEQ, CRIS_INSN_MOVS_B_R
|
| 32 |
|
|
, CRIS_INSN_MOVS_W_R, CRIS_INSN_MOVU_B_R, CRIS_INSN_MOVU_W_R, CRIS_INSN_MOVECBR
|
| 33 |
|
|
, CRIS_INSN_MOVECWR, CRIS_INSN_MOVECDR, CRIS_INSN_MOVSCBR, CRIS_INSN_MOVSCWR
|
| 34 |
|
|
, CRIS_INSN_MOVUCBR, CRIS_INSN_MOVUCWR, CRIS_INSN_ADDQ, CRIS_INSN_SUBQ
|
| 35 |
|
|
, CRIS_INSN_CMP_R_B_R, CRIS_INSN_CMP_R_W_R, CRIS_INSN_CMP_R_D_R, CRIS_INSN_CMP_M_B_M
|
| 36 |
|
|
, CRIS_INSN_CMP_M_W_M, CRIS_INSN_CMP_M_D_M, CRIS_INSN_CMPCBR, CRIS_INSN_CMPCWR
|
| 37 |
|
|
, CRIS_INSN_CMPCDR, CRIS_INSN_CMPQ, CRIS_INSN_CMPS_M_B_M, CRIS_INSN_CMPS_M_W_M
|
| 38 |
|
|
, CRIS_INSN_CMPSCBR, CRIS_INSN_CMPSCWR, CRIS_INSN_CMPU_M_B_M, CRIS_INSN_CMPU_M_W_M
|
| 39 |
|
|
, CRIS_INSN_CMPUCBR, CRIS_INSN_CMPUCWR, CRIS_INSN_MOVE_M_B_M, CRIS_INSN_MOVE_M_W_M
|
| 40 |
|
|
, CRIS_INSN_MOVE_M_D_M, CRIS_INSN_MOVS_M_B_M, CRIS_INSN_MOVS_M_W_M, CRIS_INSN_MOVU_M_B_M
|
| 41 |
|
|
, CRIS_INSN_MOVU_M_W_M, CRIS_INSN_MOVE_R_SPRV0, CRIS_INSN_MOVE_R_SPRV3, CRIS_INSN_MOVE_R_SPRV8
|
| 42 |
|
|
, CRIS_INSN_MOVE_R_SPRV10, CRIS_INSN_MOVE_R_SPRV32, CRIS_INSN_MOVE_SPR_RV0, CRIS_INSN_MOVE_SPR_RV3
|
| 43 |
|
|
, CRIS_INSN_MOVE_SPR_RV8, CRIS_INSN_MOVE_SPR_RV10, CRIS_INSN_MOVE_SPR_RV32, CRIS_INSN_RET_TYPE
|
| 44 |
|
|
, CRIS_INSN_MOVE_M_SPRV0, CRIS_INSN_MOVE_M_SPRV3, CRIS_INSN_MOVE_M_SPRV8, CRIS_INSN_MOVE_M_SPRV10
|
| 45 |
|
|
, CRIS_INSN_MOVE_M_SPRV32, CRIS_INSN_MOVE_C_SPRV0_P5, CRIS_INSN_MOVE_C_SPRV0_P9, CRIS_INSN_MOVE_C_SPRV0_P10
|
| 46 |
|
|
, CRIS_INSN_MOVE_C_SPRV0_P11, CRIS_INSN_MOVE_C_SPRV0_P12, CRIS_INSN_MOVE_C_SPRV0_P13, CRIS_INSN_MOVE_C_SPRV0_P6
|
| 47 |
|
|
, CRIS_INSN_MOVE_C_SPRV0_P7, CRIS_INSN_MOVE_C_SPRV3_P5, CRIS_INSN_MOVE_C_SPRV3_P9, CRIS_INSN_MOVE_C_SPRV3_P10
|
| 48 |
|
|
, CRIS_INSN_MOVE_C_SPRV3_P11, CRIS_INSN_MOVE_C_SPRV3_P12, CRIS_INSN_MOVE_C_SPRV3_P13, CRIS_INSN_MOVE_C_SPRV3_P6
|
| 49 |
|
|
, CRIS_INSN_MOVE_C_SPRV3_P7, CRIS_INSN_MOVE_C_SPRV3_P14, CRIS_INSN_MOVE_C_SPRV8_P5, CRIS_INSN_MOVE_C_SPRV8_P9
|
| 50 |
|
|
, CRIS_INSN_MOVE_C_SPRV8_P10, CRIS_INSN_MOVE_C_SPRV8_P11, CRIS_INSN_MOVE_C_SPRV8_P12, CRIS_INSN_MOVE_C_SPRV8_P13
|
| 51 |
|
|
, CRIS_INSN_MOVE_C_SPRV8_P14, CRIS_INSN_MOVE_C_SPRV10_P5, CRIS_INSN_MOVE_C_SPRV10_P9, CRIS_INSN_MOVE_C_SPRV10_P10
|
| 52 |
|
|
, CRIS_INSN_MOVE_C_SPRV10_P11, CRIS_INSN_MOVE_C_SPRV10_P12, CRIS_INSN_MOVE_C_SPRV10_P13, CRIS_INSN_MOVE_C_SPRV10_P7
|
| 53 |
|
|
, CRIS_INSN_MOVE_C_SPRV10_P14, CRIS_INSN_MOVE_C_SPRV10_P15, CRIS_INSN_MOVE_C_SPRV32_P2, CRIS_INSN_MOVE_C_SPRV32_P3
|
| 54 |
|
|
, CRIS_INSN_MOVE_C_SPRV32_P5, CRIS_INSN_MOVE_C_SPRV32_P6, CRIS_INSN_MOVE_C_SPRV32_P7, CRIS_INSN_MOVE_C_SPRV32_P9
|
| 55 |
|
|
, CRIS_INSN_MOVE_C_SPRV32_P10, CRIS_INSN_MOVE_C_SPRV32_P11, CRIS_INSN_MOVE_C_SPRV32_P12, CRIS_INSN_MOVE_C_SPRV32_P13
|
| 56 |
|
|
, CRIS_INSN_MOVE_C_SPRV32_P14, CRIS_INSN_MOVE_C_SPRV32_P15, CRIS_INSN_MOVE_SPR_MV0, CRIS_INSN_MOVE_SPR_MV3
|
| 57 |
|
|
, CRIS_INSN_MOVE_SPR_MV8, CRIS_INSN_MOVE_SPR_MV10, CRIS_INSN_MOVE_SPR_MV32, CRIS_INSN_SBFS
|
| 58 |
|
|
, CRIS_INSN_MOVE_SS_R, CRIS_INSN_MOVE_R_SS, CRIS_INSN_MOVEM_R_M, CRIS_INSN_MOVEM_R_M_V32
|
| 59 |
|
|
, CRIS_INSN_MOVEM_M_R, CRIS_INSN_MOVEM_M_PC, CRIS_INSN_MOVEM_M_R_V32, CRIS_INSN_ADD_B_R
|
| 60 |
|
|
, CRIS_INSN_ADD_W_R, CRIS_INSN_ADD_D_R, CRIS_INSN_ADD_M_B_M, CRIS_INSN_ADD_M_W_M
|
| 61 |
|
|
, CRIS_INSN_ADD_M_D_M, CRIS_INSN_ADDCBR, CRIS_INSN_ADDCWR, CRIS_INSN_ADDCDR
|
| 62 |
|
|
, CRIS_INSN_ADDCPC, CRIS_INSN_ADDS_B_R, CRIS_INSN_ADDS_W_R, CRIS_INSN_ADDS_M_B_M
|
| 63 |
|
|
, CRIS_INSN_ADDS_M_W_M, CRIS_INSN_ADDSCBR, CRIS_INSN_ADDSCWR, CRIS_INSN_ADDSPCPC
|
| 64 |
|
|
, CRIS_INSN_ADDU_B_R, CRIS_INSN_ADDU_W_R, CRIS_INSN_ADDU_M_B_M, CRIS_INSN_ADDU_M_W_M
|
| 65 |
|
|
, CRIS_INSN_ADDUCBR, CRIS_INSN_ADDUCWR, CRIS_INSN_SUB_B_R, CRIS_INSN_SUB_W_R
|
| 66 |
|
|
, CRIS_INSN_SUB_D_R, CRIS_INSN_SUB_M_B_M, CRIS_INSN_SUB_M_W_M, CRIS_INSN_SUB_M_D_M
|
| 67 |
|
|
, CRIS_INSN_SUBCBR, CRIS_INSN_SUBCWR, CRIS_INSN_SUBCDR, CRIS_INSN_SUBS_B_R
|
| 68 |
|
|
, CRIS_INSN_SUBS_W_R, CRIS_INSN_SUBS_M_B_M, CRIS_INSN_SUBS_M_W_M, CRIS_INSN_SUBSCBR
|
| 69 |
|
|
, CRIS_INSN_SUBSCWR, CRIS_INSN_SUBU_B_R, CRIS_INSN_SUBU_W_R, CRIS_INSN_SUBU_M_B_M
|
| 70 |
|
|
, CRIS_INSN_SUBU_M_W_M, CRIS_INSN_SUBUCBR, CRIS_INSN_SUBUCWR, CRIS_INSN_ADDC_R
|
| 71 |
|
|
, CRIS_INSN_ADDC_M, CRIS_INSN_ADDC_C, CRIS_INSN_LAPC_D, CRIS_INSN_LAPCQ
|
| 72 |
|
|
, CRIS_INSN_ADDI_B_R, CRIS_INSN_ADDI_W_R, CRIS_INSN_ADDI_D_R, CRIS_INSN_NEG_B_R
|
| 73 |
|
|
, CRIS_INSN_NEG_W_R, CRIS_INSN_NEG_D_R, CRIS_INSN_TEST_M_B_M, CRIS_INSN_TEST_M_W_M
|
| 74 |
|
|
, CRIS_INSN_TEST_M_D_M, CRIS_INSN_MOVE_R_M_B_M, CRIS_INSN_MOVE_R_M_W_M, CRIS_INSN_MOVE_R_M_D_M
|
| 75 |
|
|
, CRIS_INSN_MULS_B, CRIS_INSN_MULS_W, CRIS_INSN_MULS_D, CRIS_INSN_MULU_B
|
| 76 |
|
|
, CRIS_INSN_MULU_W, CRIS_INSN_MULU_D, CRIS_INSN_MCP, CRIS_INSN_MSTEP
|
| 77 |
|
|
, CRIS_INSN_DSTEP, CRIS_INSN_ABS, CRIS_INSN_AND_B_R, CRIS_INSN_AND_W_R
|
| 78 |
|
|
, CRIS_INSN_AND_D_R, CRIS_INSN_AND_M_B_M, CRIS_INSN_AND_M_W_M, CRIS_INSN_AND_M_D_M
|
| 79 |
|
|
, CRIS_INSN_ANDCBR, CRIS_INSN_ANDCWR, CRIS_INSN_ANDCDR, CRIS_INSN_ANDQ
|
| 80 |
|
|
, CRIS_INSN_ORR_B_R, CRIS_INSN_ORR_W_R, CRIS_INSN_ORR_D_R, CRIS_INSN_OR_M_B_M
|
| 81 |
|
|
, CRIS_INSN_OR_M_W_M, CRIS_INSN_OR_M_D_M, CRIS_INSN_ORCBR, CRIS_INSN_ORCWR
|
| 82 |
|
|
, CRIS_INSN_ORCDR, CRIS_INSN_ORQ, CRIS_INSN_XOR, CRIS_INSN_NOT
|
| 83 |
|
|
, CRIS_INSN_SWAP, CRIS_INSN_ASRR_B_R, CRIS_INSN_ASRR_W_R, CRIS_INSN_ASRR_D_R
|
| 84 |
|
|
, CRIS_INSN_ASRQ, CRIS_INSN_LSRR_B_R, CRIS_INSN_LSRR_W_R, CRIS_INSN_LSRR_D_R
|
| 85 |
|
|
, CRIS_INSN_LSRQ, CRIS_INSN_LSLR_B_R, CRIS_INSN_LSLR_W_R, CRIS_INSN_LSLR_D_R
|
| 86 |
|
|
, CRIS_INSN_LSLQ, CRIS_INSN_BTST, CRIS_INSN_BTSTQ, CRIS_INSN_SETF
|
| 87 |
|
|
, CRIS_INSN_CLEARF, CRIS_INSN_RFE, CRIS_INSN_SFE, CRIS_INSN_RFG
|
| 88 |
|
|
, CRIS_INSN_RFN, CRIS_INSN_HALT, CRIS_INSN_BCC_B, CRIS_INSN_BA_B
|
| 89 |
|
|
, CRIS_INSN_BCC_W, CRIS_INSN_BA_W, CRIS_INSN_JAS_R, CRIS_INSN_JUMP_R
|
| 90 |
|
|
, CRIS_INSN_JAS_C, CRIS_INSN_JUMP_M, CRIS_INSN_JUMP_C, CRIS_INSN_JUMP_P
|
| 91 |
|
|
, CRIS_INSN_BAS_C, CRIS_INSN_JASC_R, CRIS_INSN_JASC_C, CRIS_INSN_BASC_C
|
| 92 |
|
|
, CRIS_INSN_BREAK, CRIS_INSN_BOUND_R_B_R, CRIS_INSN_BOUND_R_W_R, CRIS_INSN_BOUND_R_D_R
|
| 93 |
|
|
, CRIS_INSN_BOUND_M_B_M, CRIS_INSN_BOUND_M_W_M, CRIS_INSN_BOUND_M_D_M, CRIS_INSN_BOUND_CB
|
| 94 |
|
|
, CRIS_INSN_BOUND_CW, CRIS_INSN_BOUND_CD, CRIS_INSN_SCC, CRIS_INSN_LZ
|
| 95 |
|
|
, CRIS_INSN_ADDOQ, CRIS_INSN_BDAPQPC, CRIS_INSN_BDAP_32_PC, CRIS_INSN_MOVE_M_PCPLUS_P0
|
| 96 |
|
|
, CRIS_INSN_MOVE_M_SPPLUS_P8, CRIS_INSN_ADDO_M_B_M, CRIS_INSN_ADDO_M_W_M, CRIS_INSN_ADDO_M_D_M
|
| 97 |
|
|
, CRIS_INSN_ADDO_CB, CRIS_INSN_ADDO_CW, CRIS_INSN_ADDO_CD, CRIS_INSN_DIP_M
|
| 98 |
|
|
, CRIS_INSN_DIP_C, CRIS_INSN_ADDI_ACR_B_R, CRIS_INSN_ADDI_ACR_W_R, CRIS_INSN_ADDI_ACR_D_R
|
| 99 |
|
|
, CRIS_INSN_BIAP_PC_B_R, CRIS_INSN_BIAP_PC_W_R, CRIS_INSN_BIAP_PC_D_R, CRIS_INSN_FIDXI
|
| 100 |
|
|
, CRIS_INSN_FTAGI, CRIS_INSN_FIDXD, CRIS_INSN_FTAGD
|
| 101 |
|
|
} CGEN_INSN_TYPE;
|
| 102 |
|
|
|
| 103 |
|
|
/* Index of `invalid' insn place holder. */
|
| 104 |
|
|
#define CGEN_INSN_INVALID CRIS_INSN_INVALID
|
| 105 |
|
|
|
| 106 |
|
|
/* Total number of insns in table. */
|
| 107 |
|
|
#define MAX_INSNS ((int) CRIS_INSN_FTAGD + 1)
|
| 108 |
|
|
|
| 109 |
|
|
/* This struct records data prior to insertion or after extraction. */
|
| 110 |
|
|
struct cgen_fields
|
| 111 |
|
|
{
|
| 112 |
|
|
int length;
|
| 113 |
|
|
long f_nil;
|
| 114 |
|
|
long f_anyof;
|
| 115 |
|
|
long f_operand1;
|
| 116 |
|
|
long f_size;
|
| 117 |
|
|
long f_opcode;
|
| 118 |
|
|
long f_mode;
|
| 119 |
|
|
long f_operand2;
|
| 120 |
|
|
long f_memmode;
|
| 121 |
|
|
long f_membit;
|
| 122 |
|
|
long f_b5;
|
| 123 |
|
|
long f_opcode_hi;
|
| 124 |
|
|
long f_dstsrc;
|
| 125 |
|
|
long f_u6;
|
| 126 |
|
|
long f_s6;
|
| 127 |
|
|
long f_u5;
|
| 128 |
|
|
long f_u4;
|
| 129 |
|
|
long f_s8;
|
| 130 |
|
|
long f_disp9_hi;
|
| 131 |
|
|
long f_disp9_lo;
|
| 132 |
|
|
long f_disp9;
|
| 133 |
|
|
long f_qo;
|
| 134 |
|
|
long f_indir_pc__byte;
|
| 135 |
|
|
long f_indir_pc__word;
|
| 136 |
|
|
long f_indir_pc__word_pcrel;
|
| 137 |
|
|
long f_indir_pc__dword;
|
| 138 |
|
|
long f_indir_pc__dword_pcrel;
|
| 139 |
|
|
};
|
| 140 |
|
|
|
| 141 |
|
|
#define CGEN_INIT_PARSE(od) \
|
| 142 |
|
|
{\
|
| 143 |
|
|
}
|
| 144 |
|
|
#define CGEN_INIT_INSERT(od) \
|
| 145 |
|
|
{\
|
| 146 |
|
|
}
|
| 147 |
|
|
#define CGEN_INIT_EXTRACT(od) \
|
| 148 |
|
|
{\
|
| 149 |
|
|
}
|
| 150 |
|
|
#define CGEN_INIT_PRINT(od) \
|
| 151 |
|
|
{\
|
| 152 |
|
|
}
|
| 153 |
|
|
|
| 154 |
|
|
|
| 155 |
|
|
#endif /* CRIS_OPC_H */
|