1*3d8817e4Smiod /* Instruction opcode header for m32r. 2*3d8817e4Smiod 3*3d8817e4Smiod THIS FILE IS MACHINE GENERATED WITH CGEN. 4*3d8817e4Smiod 5*3d8817e4Smiod Copyright 1996-2005 Free Software Foundation, Inc. 6*3d8817e4Smiod 7*3d8817e4Smiod This file is part of the GNU Binutils and/or GDB, the GNU debugger. 8*3d8817e4Smiod 9*3d8817e4Smiod This program is free software; you can redistribute it and/or modify 10*3d8817e4Smiod it under the terms of the GNU General Public License as published by 11*3d8817e4Smiod the Free Software Foundation; either version 2, or (at your option) 12*3d8817e4Smiod any later version. 13*3d8817e4Smiod 14*3d8817e4Smiod This program is distributed in the hope that it will be useful, 15*3d8817e4Smiod but WITHOUT ANY WARRANTY; without even the implied warranty of 16*3d8817e4Smiod MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17*3d8817e4Smiod GNU General Public License for more details. 18*3d8817e4Smiod 19*3d8817e4Smiod You should have received a copy of the GNU General Public License along 20*3d8817e4Smiod with this program; if not, write to the Free Software Foundation, Inc., 21*3d8817e4Smiod 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 22*3d8817e4Smiod 23*3d8817e4Smiod */ 24*3d8817e4Smiod 25*3d8817e4Smiod #ifndef M32R_OPC_H 26*3d8817e4Smiod #define M32R_OPC_H 27*3d8817e4Smiod 28*3d8817e4Smiod /* -- opc.h */ 29*3d8817e4Smiod 30*3d8817e4Smiod #undef CGEN_DIS_HASH_SIZE 31*3d8817e4Smiod #define CGEN_DIS_HASH_SIZE 256 32*3d8817e4Smiod #undef CGEN_DIS_HASH 33*3d8817e4Smiod #if 0 34*3d8817e4Smiod #define X(b) (((unsigned char *) (b))[0] & 0xf0) 35*3d8817e4Smiod #define CGEN_DIS_HASH(buffer, value) \ 36*3d8817e4Smiod (X (buffer) | \ 37*3d8817e4Smiod (X (buffer) == 0x40 || X (buffer) == 0xe0 || X (buffer) == 0x60 || X (buffer) == 0x50 ? 0 \ 38*3d8817e4Smiod : X (buffer) == 0x70 || X (buffer) == 0xf0 ? (((unsigned char *) (buffer))[0] & 0xf) \ 39*3d8817e4Smiod : X (buffer) == 0x30 ? ((((unsigned char *) (buffer))[1] & 0x70) >> 4) \ 40*3d8817e4Smiod : ((((unsigned char *) (buffer))[1] & 0xf0) >> 4))) 41*3d8817e4Smiod #else 42*3d8817e4Smiod #define CGEN_DIS_HASH(buffer, value) m32r_cgen_dis_hash (buffer, value) 43*3d8817e4Smiod extern unsigned int m32r_cgen_dis_hash (const char *, CGEN_INSN_INT); 44*3d8817e4Smiod #endif 45*3d8817e4Smiod 46*3d8817e4Smiod /* -- */ 47*3d8817e4Smiod /* Enum declaration for m32r instruction types. */ 48*3d8817e4Smiod typedef enum cgen_insn_type { 49*3d8817e4Smiod M32R_INSN_INVALID, M32R_INSN_ADD, M32R_INSN_ADD3, M32R_INSN_AND 50*3d8817e4Smiod , M32R_INSN_AND3, M32R_INSN_OR, M32R_INSN_OR3, M32R_INSN_XOR 51*3d8817e4Smiod , M32R_INSN_XOR3, M32R_INSN_ADDI, M32R_INSN_ADDV, M32R_INSN_ADDV3 52*3d8817e4Smiod , M32R_INSN_ADDX, M32R_INSN_BC8, M32R_INSN_BC24, M32R_INSN_BEQ 53*3d8817e4Smiod , M32R_INSN_BEQZ, M32R_INSN_BGEZ, M32R_INSN_BGTZ, M32R_INSN_BLEZ 54*3d8817e4Smiod , M32R_INSN_BLTZ, M32R_INSN_BNEZ, M32R_INSN_BL8, M32R_INSN_BL24 55*3d8817e4Smiod , M32R_INSN_BCL8, M32R_INSN_BCL24, M32R_INSN_BNC8, M32R_INSN_BNC24 56*3d8817e4Smiod , M32R_INSN_BNE, M32R_INSN_BRA8, M32R_INSN_BRA24, M32R_INSN_BNCL8 57*3d8817e4Smiod , M32R_INSN_BNCL24, M32R_INSN_CMP, M32R_INSN_CMPI, M32R_INSN_CMPU 58*3d8817e4Smiod , M32R_INSN_CMPUI, M32R_INSN_CMPEQ, M32R_INSN_CMPZ, M32R_INSN_DIV 59*3d8817e4Smiod , M32R_INSN_DIVU, M32R_INSN_REM, M32R_INSN_REMU, M32R_INSN_REMH 60*3d8817e4Smiod , M32R_INSN_REMUH, M32R_INSN_REMB, M32R_INSN_REMUB, M32R_INSN_DIVUH 61*3d8817e4Smiod , M32R_INSN_DIVB, M32R_INSN_DIVUB, M32R_INSN_DIVH, M32R_INSN_JC 62*3d8817e4Smiod , M32R_INSN_JNC, M32R_INSN_JL, M32R_INSN_JMP, M32R_INSN_LD 63*3d8817e4Smiod , M32R_INSN_LD_D, M32R_INSN_LDB, M32R_INSN_LDB_D, M32R_INSN_LDH 64*3d8817e4Smiod , M32R_INSN_LDH_D, M32R_INSN_LDUB, M32R_INSN_LDUB_D, M32R_INSN_LDUH 65*3d8817e4Smiod , M32R_INSN_LDUH_D, M32R_INSN_LD_PLUS, M32R_INSN_LD24, M32R_INSN_LDI8 66*3d8817e4Smiod , M32R_INSN_LDI16, M32R_INSN_LOCK, M32R_INSN_MACHI, M32R_INSN_MACHI_A 67*3d8817e4Smiod , M32R_INSN_MACLO, M32R_INSN_MACLO_A, M32R_INSN_MACWHI, M32R_INSN_MACWHI_A 68*3d8817e4Smiod , M32R_INSN_MACWLO, M32R_INSN_MACWLO_A, M32R_INSN_MUL, M32R_INSN_MULHI 69*3d8817e4Smiod , M32R_INSN_MULHI_A, M32R_INSN_MULLO, M32R_INSN_MULLO_A, M32R_INSN_MULWHI 70*3d8817e4Smiod , M32R_INSN_MULWHI_A, M32R_INSN_MULWLO, M32R_INSN_MULWLO_A, M32R_INSN_MV 71*3d8817e4Smiod , M32R_INSN_MVFACHI, M32R_INSN_MVFACHI_A, M32R_INSN_MVFACLO, M32R_INSN_MVFACLO_A 72*3d8817e4Smiod , M32R_INSN_MVFACMI, M32R_INSN_MVFACMI_A, M32R_INSN_MVFC, M32R_INSN_MVTACHI 73*3d8817e4Smiod , M32R_INSN_MVTACHI_A, M32R_INSN_MVTACLO, M32R_INSN_MVTACLO_A, M32R_INSN_MVTC 74*3d8817e4Smiod , M32R_INSN_NEG, M32R_INSN_NOP, M32R_INSN_NOT, M32R_INSN_RAC 75*3d8817e4Smiod , M32R_INSN_RAC_DSI, M32R_INSN_RACH, M32R_INSN_RACH_DSI, M32R_INSN_RTE 76*3d8817e4Smiod , M32R_INSN_SETH, M32R_INSN_SLL, M32R_INSN_SLL3, M32R_INSN_SLLI 77*3d8817e4Smiod , M32R_INSN_SRA, M32R_INSN_SRA3, M32R_INSN_SRAI, M32R_INSN_SRL 78*3d8817e4Smiod , M32R_INSN_SRL3, M32R_INSN_SRLI, M32R_INSN_ST, M32R_INSN_ST_D 79*3d8817e4Smiod , M32R_INSN_STB, M32R_INSN_STB_D, M32R_INSN_STH, M32R_INSN_STH_D 80*3d8817e4Smiod , M32R_INSN_ST_PLUS, M32R_INSN_STH_PLUS, M32R_INSN_STB_PLUS, M32R_INSN_ST_MINUS 81*3d8817e4Smiod , M32R_INSN_SUB, M32R_INSN_SUBV, M32R_INSN_SUBX, M32R_INSN_TRAP 82*3d8817e4Smiod , M32R_INSN_UNLOCK, M32R_INSN_SATB, M32R_INSN_SATH, M32R_INSN_SAT 83*3d8817e4Smiod , M32R_INSN_PCMPBZ, M32R_INSN_SADD, M32R_INSN_MACWU1, M32R_INSN_MSBLO 84*3d8817e4Smiod , M32R_INSN_MULWU1, M32R_INSN_MACLH1, M32R_INSN_SC, M32R_INSN_SNC 85*3d8817e4Smiod , M32R_INSN_CLRPSW, M32R_INSN_SETPSW, M32R_INSN_BSET, M32R_INSN_BCLR 86*3d8817e4Smiod , M32R_INSN_BTST 87*3d8817e4Smiod } CGEN_INSN_TYPE; 88*3d8817e4Smiod 89*3d8817e4Smiod /* Index of `invalid' insn place holder. */ 90*3d8817e4Smiod #define CGEN_INSN_INVALID M32R_INSN_INVALID 91*3d8817e4Smiod 92*3d8817e4Smiod /* Total number of insns in table. */ 93*3d8817e4Smiod #define MAX_INSNS ((int) M32R_INSN_BTST + 1) 94*3d8817e4Smiod 95*3d8817e4Smiod /* This struct records data prior to insertion or after extraction. */ 96*3d8817e4Smiod struct cgen_fields 97*3d8817e4Smiod { 98*3d8817e4Smiod int length; 99*3d8817e4Smiod long f_nil; 100*3d8817e4Smiod long f_anyof; 101*3d8817e4Smiod long f_op1; 102*3d8817e4Smiod long f_op2; 103*3d8817e4Smiod long f_cond; 104*3d8817e4Smiod long f_r1; 105*3d8817e4Smiod long f_r2; 106*3d8817e4Smiod long f_simm8; 107*3d8817e4Smiod long f_simm16; 108*3d8817e4Smiod long f_shift_op2; 109*3d8817e4Smiod long f_uimm3; 110*3d8817e4Smiod long f_uimm4; 111*3d8817e4Smiod long f_uimm5; 112*3d8817e4Smiod long f_uimm8; 113*3d8817e4Smiod long f_uimm16; 114*3d8817e4Smiod long f_uimm24; 115*3d8817e4Smiod long f_hi16; 116*3d8817e4Smiod long f_disp8; 117*3d8817e4Smiod long f_disp16; 118*3d8817e4Smiod long f_disp24; 119*3d8817e4Smiod long f_op23; 120*3d8817e4Smiod long f_op3; 121*3d8817e4Smiod long f_acc; 122*3d8817e4Smiod long f_accs; 123*3d8817e4Smiod long f_accd; 124*3d8817e4Smiod long f_bits67; 125*3d8817e4Smiod long f_bit4; 126*3d8817e4Smiod long f_bit14; 127*3d8817e4Smiod long f_imm1; 128*3d8817e4Smiod }; 129*3d8817e4Smiod 130*3d8817e4Smiod #define CGEN_INIT_PARSE(od) \ 131*3d8817e4Smiod {\ 132*3d8817e4Smiod } 133*3d8817e4Smiod #define CGEN_INIT_INSERT(od) \ 134*3d8817e4Smiod {\ 135*3d8817e4Smiod } 136*3d8817e4Smiod #define CGEN_INIT_EXTRACT(od) \ 137*3d8817e4Smiod {\ 138*3d8817e4Smiod } 139*3d8817e4Smiod #define CGEN_INIT_PRINT(od) \ 140*3d8817e4Smiod {\ 141*3d8817e4Smiod } 142*3d8817e4Smiod 143*3d8817e4Smiod 144*3d8817e4Smiod #endif /* M32R_OPC_H */ 145