MIPS/opcodes: Reorder LSA and DLSA instructions
[deliverable/binutils-gdb.git] / opcodes / m32r-opc.h
CommitLineData
252b5132
RH
1/* Instruction opcode header for m32r.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
2571583a 5Copyright (C) 1996-2017 Free Software Foundation, Inc.
252b5132
RH
6
7This file is part of the GNU Binutils and/or GDB, the GNU debugger.
8
9b201bb5
NC
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.
252b5132 13
9b201bb5
NC
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.
252b5132 18
9b201bb5
NC
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.
252b5132
RH
22
23*/
24
25#ifndef M32R_OPC_H
26#define M32R_OPC_H
27
f47b0d4a
AM
28#ifdef __cplusplus
29extern "C" {
30#endif
31
252b5132
RH
32/* -- opc.h */
33
9a2e995d 34#undef CGEN_DIS_HASH_SIZE
252b5132 35#define CGEN_DIS_HASH_SIZE 256
9a2e995d 36#undef CGEN_DIS_HASH
88845958 37#if 0
252b5132
RH
38#define X(b) (((unsigned char *) (b))[0] & 0xf0)
39#define CGEN_DIS_HASH(buffer, value) \
40(X (buffer) | \
41 (X (buffer) == 0x40 || X (buffer) == 0xe0 || X (buffer) == 0x60 || X (buffer) == 0x50 ? 0 \
42 : X (buffer) == 0x70 || X (buffer) == 0xf0 ? (((unsigned char *) (buffer))[0] & 0xf) \
43 : X (buffer) == 0x30 ? ((((unsigned char *) (buffer))[1] & 0x70) >> 4) \
44 : ((((unsigned char *) (buffer))[1] & 0xf0) >> 4)))
88845958 45#else
47b0e7ad
NC
46#define CGEN_DIS_HASH(buffer, value) m32r_cgen_dis_hash (buffer, value)
47extern unsigned int m32r_cgen_dis_hash (const char *, CGEN_INSN_INT);
88845958 48#endif
252b5132
RH
49
50/* -- */
51/* Enum declaration for m32r instruction types. */
52typedef enum cgen_insn_type {
53 M32R_INSN_INVALID, M32R_INSN_ADD, M32R_INSN_ADD3, M32R_INSN_AND
54 , M32R_INSN_AND3, M32R_INSN_OR, M32R_INSN_OR3, M32R_INSN_XOR
55 , M32R_INSN_XOR3, M32R_INSN_ADDI, M32R_INSN_ADDV, M32R_INSN_ADDV3
56 , M32R_INSN_ADDX, M32R_INSN_BC8, M32R_INSN_BC24, M32R_INSN_BEQ
57 , M32R_INSN_BEQZ, M32R_INSN_BGEZ, M32R_INSN_BGTZ, M32R_INSN_BLEZ
58 , M32R_INSN_BLTZ, M32R_INSN_BNEZ, M32R_INSN_BL8, M32R_INSN_BL24
1fa60b5d
DE
59 , M32R_INSN_BCL8, M32R_INSN_BCL24, M32R_INSN_BNC8, M32R_INSN_BNC24
60 , M32R_INSN_BNE, M32R_INSN_BRA8, M32R_INSN_BRA24, M32R_INSN_BNCL8
61 , M32R_INSN_BNCL24, M32R_INSN_CMP, M32R_INSN_CMPI, M32R_INSN_CMPU
62 , M32R_INSN_CMPUI, M32R_INSN_CMPEQ, M32R_INSN_CMPZ, M32R_INSN_DIV
88845958
NC
63 , M32R_INSN_DIVU, M32R_INSN_REM, M32R_INSN_REMU, M32R_INSN_REMH
64 , M32R_INSN_REMUH, M32R_INSN_REMB, M32R_INSN_REMUB, M32R_INSN_DIVUH
65 , M32R_INSN_DIVB, M32R_INSN_DIVUB, M32R_INSN_DIVH, M32R_INSN_JC
66 , M32R_INSN_JNC, M32R_INSN_JL, M32R_INSN_JMP, M32R_INSN_LD
67 , M32R_INSN_LD_D, M32R_INSN_LDB, M32R_INSN_LDB_D, M32R_INSN_LDH
68 , M32R_INSN_LDH_D, M32R_INSN_LDUB, M32R_INSN_LDUB_D, M32R_INSN_LDUH
69 , M32R_INSN_LDUH_D, M32R_INSN_LD_PLUS, M32R_INSN_LD24, M32R_INSN_LDI8
70 , M32R_INSN_LDI16, M32R_INSN_LOCK, M32R_INSN_MACHI, M32R_INSN_MACHI_A
71 , M32R_INSN_MACLO, M32R_INSN_MACLO_A, M32R_INSN_MACWHI, M32R_INSN_MACWHI_A
72 , M32R_INSN_MACWLO, M32R_INSN_MACWLO_A, M32R_INSN_MUL, M32R_INSN_MULHI
73 , M32R_INSN_MULHI_A, M32R_INSN_MULLO, M32R_INSN_MULLO_A, M32R_INSN_MULWHI
74 , M32R_INSN_MULWHI_A, M32R_INSN_MULWLO, M32R_INSN_MULWLO_A, M32R_INSN_MV
75 , M32R_INSN_MVFACHI, M32R_INSN_MVFACHI_A, M32R_INSN_MVFACLO, M32R_INSN_MVFACLO_A
76 , M32R_INSN_MVFACMI, M32R_INSN_MVFACMI_A, M32R_INSN_MVFC, M32R_INSN_MVTACHI
77 , M32R_INSN_MVTACHI_A, M32R_INSN_MVTACLO, M32R_INSN_MVTACLO_A, M32R_INSN_MVTC
78 , M32R_INSN_NEG, M32R_INSN_NOP, M32R_INSN_NOT, M32R_INSN_RAC
79 , M32R_INSN_RAC_DSI, M32R_INSN_RACH, M32R_INSN_RACH_DSI, M32R_INSN_RTE
80 , M32R_INSN_SETH, M32R_INSN_SLL, M32R_INSN_SLL3, M32R_INSN_SLLI
81 , M32R_INSN_SRA, M32R_INSN_SRA3, M32R_INSN_SRAI, M32R_INSN_SRL
82 , M32R_INSN_SRL3, M32R_INSN_SRLI, M32R_INSN_ST, M32R_INSN_ST_D
83 , M32R_INSN_STB, M32R_INSN_STB_D, M32R_INSN_STH, M32R_INSN_STH_D
84 , M32R_INSN_ST_PLUS, M32R_INSN_STH_PLUS, M32R_INSN_STB_PLUS, M32R_INSN_ST_MINUS
85 , M32R_INSN_SUB, M32R_INSN_SUBV, M32R_INSN_SUBX, M32R_INSN_TRAP
86 , M32R_INSN_UNLOCK, M32R_INSN_SATB, M32R_INSN_SATH, M32R_INSN_SAT
87 , M32R_INSN_PCMPBZ, M32R_INSN_SADD, M32R_INSN_MACWU1, M32R_INSN_MSBLO
88 , M32R_INSN_MULWU1, M32R_INSN_MACLH1, M32R_INSN_SC, M32R_INSN_SNC
89 , M32R_INSN_CLRPSW, M32R_INSN_SETPSW, M32R_INSN_BSET, M32R_INSN_BCLR
90 , M32R_INSN_BTST
252b5132
RH
91} CGEN_INSN_TYPE;
92
93/* Index of `invalid' insn place holder. */
94#define CGEN_INSN_INVALID M32R_INSN_INVALID
95
96/* Total number of insns in table. */
88845958 97#define MAX_INSNS ((int) M32R_INSN_BTST + 1)
252b5132
RH
98
99/* This struct records data prior to insertion or after extraction. */
100struct cgen_fields
101{
102 int length;
103 long f_nil;
cfcdbe97 104 long f_anyof;
252b5132
RH
105 long f_op1;
106 long f_op2;
107 long f_cond;
108 long f_r1;
109 long f_r2;
110 long f_simm8;
111 long f_simm16;
112 long f_shift_op2;
88845958 113 long f_uimm3;
252b5132
RH
114 long f_uimm4;
115 long f_uimm5;
88845958 116 long f_uimm8;
252b5132
RH
117 long f_uimm16;
118 long f_uimm24;
119 long f_hi16;
120 long f_disp8;
121 long f_disp16;
122 long f_disp24;
1fa60b5d
DE
123 long f_op23;
124 long f_op3;
125 long f_acc;
126 long f_accs;
127 long f_accd;
128 long f_bits67;
88845958 129 long f_bit4;
1fa60b5d
DE
130 long f_bit14;
131 long f_imm1;
252b5132
RH
132};
133
134#define CGEN_INIT_PARSE(od) \
135{\
136}
137#define CGEN_INIT_INSERT(od) \
138{\
139}
140#define CGEN_INIT_EXTRACT(od) \
141{\
142}
143#define CGEN_INIT_PRINT(od) \
144{\
145}
146
147
f47b0d4a
AM
148 #ifdef __cplusplus
149 }
150 #endif
151
252b5132 152#endif /* M32R_OPC_H */
This page took 0.776315 seconds and 4 git commands to generate.