OpenCores
URL https://opencores.org/ocsvn/open8_urisc/open8_urisc/trunk

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [opcodes/] [epiphany-opc.h] - Blame information for rev 299

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 163 khays
/* Instruction opcode header for epiphany.
2
 
3
THIS FILE IS MACHINE GENERATED WITH CGEN.
4
 
5
Copyright 1996-2010 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 EPIPHANY_OPC_H
26
#define EPIPHANY_OPC_H
27
 
28
/* -- opc.h */
29
 
30
/* enumerate relaxation types for gas. */
31
typedef enum epiphany_relax_types
32
{
33
  EPIPHANY_RELAX_NONE=0,
34
  EPIPHANY_RELAX_NEED_RELAXING,
35
 
36
  EPIPHANY_RELAX_BRANCH_SHORT,  /* Fits into +127..-128 */
37
  EPIPHANY_RELAX_BRANCH_LONG,   /* b/bl/b<cond> +-2*16 */
38
 
39
  EPIPHANY_RELAX_ARITH_SIMM3,   /* add/sub -7..3 */
40
  EPIPHANY_RELAX_ARITH_SIMM11,  /* add/sub -2**11-1 .. 2**10-1 */
41
 
42
  EPIPHANY_RELAX_MOV_IMM8,              /* mov r,imm8 */
43
  EPIPHANY_RELAX_MOV_IMM16,     /* mov r,imm16 */
44
 
45
  EPIPHANY_RELAX_LDST_IMM3,     /* (ldr|str)* r,[r,disp3] */
46
  EPIPHANY_RELAX_LDST_IMM11     /* (ldr|str)* r,[r,disp11] */
47
 
48
} EPIPHANY_RELAX_TYPES;
49
 
50
/* Override disassembly hashing... */
51
 
52
/* Can only depend on instruction having 4 decode bits which gets us to the
53
   major groups of 16/32 instructions. */
54
#undef CGEN_DIS_HASH_SIZE
55
#if 1
56
 
57
/* hash code on the 4 LSBs */
58
#define CGEN_DIS_HASH_SIZE 16
59
 
60
#define CGEN_DIS_HASH(buf, value) ((*buf) & 0xf)
61
#else
62
#define CGEN_DIS_HASH_SIZE 1
63
#define CGEN_DIS_HASH(buf, value) 0
64
#endif
65
 
66
extern const char * parse_shortregs (CGEN_CPU_DESC cd,
67
                                     const char ** strp,
68
                                     CGEN_KEYWORD * keywords,
69
                                     long * valuep);
70
 
71
extern const char * parse_branch_addr (CGEN_CPU_DESC cd,
72
                                       const char ** strp,
73
                                       int opindex,
74
                                       int opinfo,
75
                                       enum cgen_parse_operand_result * resultp,
76
                                       bfd_vma *valuep);
77
 
78
/* Allows reason codes to be output when assembler errors occur.  */
79
#define CGEN_VERBOSE_ASSEMBLER_ERRORS
80
 
81
 
82
/* -- opc.c */
83
/* Enum declaration for epiphany instruction types.  */
84
typedef enum cgen_insn_type {
85
  EPIPHANY_INSN_INVALID, EPIPHANY_INSN_BEQ16, EPIPHANY_INSN_BEQ, EPIPHANY_INSN_BNE16
86
 , EPIPHANY_INSN_BNE, EPIPHANY_INSN_BGTU16, EPIPHANY_INSN_BGTU, EPIPHANY_INSN_BGTEU16
87
 , EPIPHANY_INSN_BGTEU, EPIPHANY_INSN_BLTEU16, EPIPHANY_INSN_BLTEU, EPIPHANY_INSN_BLTU16
88
 , EPIPHANY_INSN_BLTU, EPIPHANY_INSN_BGT16, EPIPHANY_INSN_BGT, EPIPHANY_INSN_BGTE16
89
 , EPIPHANY_INSN_BGTE, EPIPHANY_INSN_BLT16, EPIPHANY_INSN_BLT, EPIPHANY_INSN_BLTE16
90
 , EPIPHANY_INSN_BLTE, EPIPHANY_INSN_BBEQ16, EPIPHANY_INSN_BBEQ, EPIPHANY_INSN_BBNE16
91
 , EPIPHANY_INSN_BBNE, EPIPHANY_INSN_BBLT16, EPIPHANY_INSN_BBLT, EPIPHANY_INSN_BBLTE16
92
 , EPIPHANY_INSN_BBLTE, EPIPHANY_INSN_B16, EPIPHANY_INSN_B, EPIPHANY_INSN_BL16
93
 , EPIPHANY_INSN_BL, EPIPHANY_INSN_JR16, EPIPHANY_INSN_RTS, EPIPHANY_INSN_JR
94
 , EPIPHANY_INSN_JALR16, EPIPHANY_INSN_JALR, EPIPHANY_INSN_LDRBX16_S, EPIPHANY_INSN_LDRBP16_S
95
 , EPIPHANY_INSN_LDRBX_L, EPIPHANY_INSN_LDRBP_L, EPIPHANY_INSN_LDRBD16_S, EPIPHANY_INSN_LDRBD_L
96
 , EPIPHANY_INSN_LDRBDPM_L, EPIPHANY_INSN_LDRHX16_S, EPIPHANY_INSN_LDRHP16_S, EPIPHANY_INSN_LDRHX_L
97
 , EPIPHANY_INSN_LDRHP_L, EPIPHANY_INSN_LDRHD16_S, EPIPHANY_INSN_LDRHD_L, EPIPHANY_INSN_LDRHDPM_L
98
 , EPIPHANY_INSN_LDRX16_S, EPIPHANY_INSN_LDRP16_S, EPIPHANY_INSN_LDRX_L, EPIPHANY_INSN_LDRP_L
99
 , EPIPHANY_INSN_LDRD16_S, EPIPHANY_INSN_LDRD_L, EPIPHANY_INSN_LDRDPM_L, EPIPHANY_INSN_LDRDX16_S
100
 , EPIPHANY_INSN_LDRDP16_S, EPIPHANY_INSN_LDRDX_L, EPIPHANY_INSN_LDRDP_L, EPIPHANY_INSN_LDRDD16_S
101
 , EPIPHANY_INSN_LDRDD_L, EPIPHANY_INSN_LDRDDPM_L, EPIPHANY_INSN_TESTSETBT, EPIPHANY_INSN_TESTSETHT
102
 , EPIPHANY_INSN_TESTSETT, EPIPHANY_INSN_STRBX16, EPIPHANY_INSN_STRBX, EPIPHANY_INSN_STRBP16
103
 , EPIPHANY_INSN_STRBP, EPIPHANY_INSN_STRBD16, EPIPHANY_INSN_STRBD, EPIPHANY_INSN_STRBDPM
104
 , EPIPHANY_INSN_STRHX16, EPIPHANY_INSN_STRHX, EPIPHANY_INSN_STRHP16, EPIPHANY_INSN_STRHP
105
 , EPIPHANY_INSN_STRHD16, EPIPHANY_INSN_STRHD, EPIPHANY_INSN_STRHDPM, EPIPHANY_INSN_STRX16
106
 , EPIPHANY_INSN_STRX, EPIPHANY_INSN_STRP16, EPIPHANY_INSN_STRP, EPIPHANY_INSN_STRD16
107
 , EPIPHANY_INSN_STRD, EPIPHANY_INSN_STRDPM, EPIPHANY_INSN_STRDX16, EPIPHANY_INSN_STRDX
108
 , EPIPHANY_INSN_STRDP16, EPIPHANY_INSN_STRDP, EPIPHANY_INSN_STRDD16, EPIPHANY_INSN_STRDD
109
 , EPIPHANY_INSN_STRDDPM, EPIPHANY_INSN_CMOV16EQ, EPIPHANY_INSN_CMOVEQ, EPIPHANY_INSN_CMOV16NE
110
 , EPIPHANY_INSN_CMOVNE, EPIPHANY_INSN_CMOV16GTU, EPIPHANY_INSN_CMOVGTU, EPIPHANY_INSN_CMOV16GTEU
111
 , EPIPHANY_INSN_CMOVGTEU, EPIPHANY_INSN_CMOV16LTEU, EPIPHANY_INSN_CMOVLTEU, EPIPHANY_INSN_CMOV16LTU
112
 , EPIPHANY_INSN_CMOVLTU, EPIPHANY_INSN_CMOV16GT, EPIPHANY_INSN_CMOVGT, EPIPHANY_INSN_CMOV16GTE
113
 , EPIPHANY_INSN_CMOVGTE, EPIPHANY_INSN_CMOV16LT, EPIPHANY_INSN_CMOVLT, EPIPHANY_INSN_CMOV16LTE
114
 , EPIPHANY_INSN_CMOVLTE, EPIPHANY_INSN_CMOV16B, EPIPHANY_INSN_CMOVB, EPIPHANY_INSN_CMOV16BEQ
115
 , EPIPHANY_INSN_CMOVBEQ, EPIPHANY_INSN_CMOV16BNE, EPIPHANY_INSN_CMOVBNE, EPIPHANY_INSN_CMOV16BLT
116
 , EPIPHANY_INSN_CMOVBLT, EPIPHANY_INSN_CMOV16BLTE, EPIPHANY_INSN_CMOVBLTE, EPIPHANY_INSN_MOVTS16
117
 , EPIPHANY_INSN_MOVTS6, EPIPHANY_INSN_MOVTSDMA, EPIPHANY_INSN_MOVTSMEM, EPIPHANY_INSN_MOVTSMESH
118
 , EPIPHANY_INSN_MOVFS16, EPIPHANY_INSN_MOVFS6, EPIPHANY_INSN_MOVFSDMA, EPIPHANY_INSN_MOVFSMEM
119
 , EPIPHANY_INSN_MOVFSMESH, EPIPHANY_INSN_NOP, EPIPHANY_INSN_SNOP, EPIPHANY_INSN_UNIMPL
120
 , EPIPHANY_INSN_IDLE, EPIPHANY_INSN_BKPT, EPIPHANY_INSN_MBKPT, EPIPHANY_INSN_RTI
121
 , EPIPHANY_INSN_WAND, EPIPHANY_INSN_SYNC, EPIPHANY_INSN_GIEN, EPIPHANY_INSN_GIDIS
122
 , EPIPHANY_INSN_SWI_NUM, EPIPHANY_INSN_SWI, EPIPHANY_INSN_TRAP16, EPIPHANY_INSN_ADD16
123
 , EPIPHANY_INSN_ADD, EPIPHANY_INSN_SUB16, EPIPHANY_INSN_SUB, EPIPHANY_INSN_AND16
124
 , EPIPHANY_INSN_AND, EPIPHANY_INSN_ORR16, EPIPHANY_INSN_ORR, EPIPHANY_INSN_EOR16
125
 , EPIPHANY_INSN_EOR, EPIPHANY_INSN_ADDI16, EPIPHANY_INSN_ADDI, EPIPHANY_INSN_SUBI16
126
 , EPIPHANY_INSN_SUBI, EPIPHANY_INSN_ASR16, EPIPHANY_INSN_ASR, EPIPHANY_INSN_LSR16
127
 , EPIPHANY_INSN_LSR, EPIPHANY_INSN_LSL16, EPIPHANY_INSN_LSL, EPIPHANY_INSN_LSRI16
128
 , EPIPHANY_INSN_LSRI32, EPIPHANY_INSN_LSLI16, EPIPHANY_INSN_LSLI32, EPIPHANY_INSN_ASRI16
129
 , EPIPHANY_INSN_ASRI32, EPIPHANY_INSN_BITR16, EPIPHANY_INSN_BITR, EPIPHANY_INSN_FEXT
130
 , EPIPHANY_INSN_FDEP, EPIPHANY_INSN_LFSR, EPIPHANY_INSN_MOV8, EPIPHANY_INSN_MOV16
131
 , EPIPHANY_INSN_MOVT, EPIPHANY_INSN_F_ADDF16, EPIPHANY_INSN_F_ADDF32, EPIPHANY_INSN_F_SUBF16
132
 , EPIPHANY_INSN_F_SUBF32, EPIPHANY_INSN_F_MULF16, EPIPHANY_INSN_F_MULF32, EPIPHANY_INSN_F_MADDF16
133
 , EPIPHANY_INSN_F_MADDF32, EPIPHANY_INSN_F_MSUBF16, EPIPHANY_INSN_F_MSUBF32, EPIPHANY_INSN_F_ABSF16
134
 , EPIPHANY_INSN_F_ABSF32, EPIPHANY_INSN_F_LOATF16, EPIPHANY_INSN_F_LOATF32, EPIPHANY_INSN_F_IXF16
135
 , EPIPHANY_INSN_F_IXF32, EPIPHANY_INSN_F_RECIPF32, EPIPHANY_INSN_F_SQRTF32
136
} CGEN_INSN_TYPE;
137
 
138
/* Index of `invalid' insn place holder.  */
139
#define CGEN_INSN_INVALID EPIPHANY_INSN_INVALID
140
 
141
/* Total number of insns in table.  */
142
#define MAX_INSNS ((int) EPIPHANY_INSN_F_SQRTF32 + 1)
143
 
144
/* This struct records data prior to insertion or after extraction.  */
145
struct cgen_fields
146
{
147
  int length;
148
  long f_nil;
149
  long f_anyof;
150
  long f_opc;
151
  long f_opc_4_1;
152
  long f_opc_6_3;
153
  long f_opc_8_5;
154
  long f_opc_19_4;
155
  long f_condcode;
156
  long f_secondary_ccs;
157
  long f_shift;
158
  long f_wordsize;
159
  long f_store;
160
  long f_opc_8_1;
161
  long f_opc_31_32;
162
  long f_simm8;
163
  long f_simm24;
164
  long f_sdisp3;
165
  long f_disp3;
166
  long f_disp8;
167
  long f_imm8;
168
  long f_imm_27_8;
169
  long f_addsubx;
170
  long f_subd;
171
  long f_pm;
172
  long f_rm;
173
  long f_rn;
174
  long f_rd;
175
  long f_rm_x;
176
  long f_rn_x;
177
  long f_rd_x;
178
  long f_dc_9_1;
179
  long f_sn;
180
  long f_sd;
181
  long f_sn_x;
182
  long f_sd_x;
183
  long f_dc_7_4;
184
  long f_trap_swi_9_1;
185
  long f_gien_gidis_9_1;
186
  long f_dc_15_3;
187
  long f_dc_15_7;
188
  long f_dc_15_6;
189
  long f_trap_num;
190
  long f_dc_20_1;
191
  long f_dc_21_1;
192
  long f_dc_21_2;
193
  long f_dc_22_3;
194
  long f_dc_22_2;
195
  long f_dc_22_1;
196
  long f_dc_25_6;
197
  long f_dc_25_4;
198
  long f_dc_25_2;
199
  long f_dc_25_1;
200
  long f_dc_28_1;
201
  long f_dc_31_3;
202
  long f_disp11;
203
  long f_sdisp11;
204
  long f_imm16;
205
  long f_rd6;
206
  long f_rn6;
207
  long f_rm6;
208
  long f_sd6;
209
  long f_sn6;
210
};
211
 
212
#define CGEN_INIT_PARSE(od) \
213
{\
214
}
215
#define CGEN_INIT_INSERT(od) \
216
{\
217
}
218
#define CGEN_INIT_EXTRACT(od) \
219
{\
220
}
221
#define CGEN_INIT_PRINT(od) \
222
{\
223
}
224
 
225
 
226
#endif /* EPIPHANY_OPC_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.