Commit | Line | Data |
---|---|---|
fd3c93d5 DB |
1 | /* Instruction opcode header for frv. |
2 | ||
3 | THIS FILE IS MACHINE GENERATED WITH CGEN. | |
4 | ||
390ff83f | 5 | Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. |
fd3c93d5 DB |
6 | |
7 | This file is part of the GNU Binutils and/or GDB, the GNU debugger. | |
8 | ||
9 | This program 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 2, or (at your option) | |
12 | any later version. | |
13 | ||
14 | This program is distributed in the hope that it will be useful, | |
15 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 | GNU General Public 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 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
22 | ||
23 | */ | |
24 | ||
25 | #ifndef FRV_OPC_H | |
26 | #define FRV_OPC_H | |
27 | ||
28 | /* -- opc.h */ | |
29 | ||
36c3ae24 | 30 | #undef CGEN_DIS_HASH_SIZE |
fd3c93d5 | 31 | #define CGEN_DIS_HASH_SIZE 128 |
36c3ae24 | 32 | #undef CGEN_DIS_HASH |
fd3c93d5 DB |
33 | #define CGEN_DIS_HASH(buffer, value) (((value) >> 18) & 127) |
34 | ||
36c3ae24 NC |
35 | /* Allows reason codes to be output when assembler errors occur. */ |
36 | #define CGEN_VERBOSE_ASSEMBLER_ERRORS | |
37 | ||
fd3c93d5 DB |
38 | /* Vliw support. */ |
39 | #define FRV_VLIW_SIZE 4 /* fr500 has largest vliw size of 4. */ | |
40 | typedef CGEN_ATTR_VALUE_TYPE VLIW_COMBO[FRV_VLIW_SIZE]; | |
41 | ||
42 | typedef struct | |
43 | { | |
44 | int next_slot; | |
45 | int constraint_violation; | |
46 | unsigned long mach; | |
47 | unsigned long elf_flags; | |
48 | CGEN_ATTR_VALUE_TYPE *unit_mapping; | |
49 | VLIW_COMBO *current_vliw; | |
50 | CGEN_ATTR_VALUE_TYPE major[FRV_VLIW_SIZE]; | |
51 | } FRV_VLIW; | |
52 | ||
53 | int frv_is_branch_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); | |
54 | int frv_is_float_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); | |
55 | int frv_is_media_major PARAMS ((CGEN_ATTR_VALUE_TYPE, unsigned long)); | |
56 | int frv_is_branch_insn PARAMS ((const CGEN_INSN *)); | |
57 | int frv_is_float_insn PARAMS ((const CGEN_INSN *)); | |
58 | int frv_is_media_insn PARAMS ((const CGEN_INSN *)); | |
59 | void frv_vliw_reset PARAMS ((FRV_VLIW *, unsigned long mach, unsigned long elf_flags)); | |
60 | int frv_vliw_add_insn PARAMS ((FRV_VLIW *, const CGEN_INSN *)); | |
61 | int spr_valid PARAMS ((long)); | |
62 | /* -- */ | |
63 | /* Enum declaration for frv instruction types. */ | |
64 | typedef enum cgen_insn_type { | |
65 | FRV_INSN_INVALID, FRV_INSN_ADD, FRV_INSN_SUB, FRV_INSN_AND | |
66 | , FRV_INSN_OR, FRV_INSN_XOR, FRV_INSN_NOT, FRV_INSN_SDIV | |
67 | , FRV_INSN_NSDIV, FRV_INSN_UDIV, FRV_INSN_NUDIV, FRV_INSN_SMUL | |
68 | , FRV_INSN_UMUL, FRV_INSN_SLL, FRV_INSN_SRL, FRV_INSN_SRA | |
69 | , FRV_INSN_SCAN, FRV_INSN_CADD, FRV_INSN_CSUB, FRV_INSN_CAND | |
70 | , FRV_INSN_COR, FRV_INSN_CXOR, FRV_INSN_CNOT, FRV_INSN_CSMUL | |
71 | , FRV_INSN_CSDIV, FRV_INSN_CUDIV, FRV_INSN_CSLL, FRV_INSN_CSRL | |
72 | , FRV_INSN_CSRA, FRV_INSN_CSCAN, FRV_INSN_ADDCC, FRV_INSN_SUBCC | |
73 | , FRV_INSN_ANDCC, FRV_INSN_ORCC, FRV_INSN_XORCC, FRV_INSN_SLLCC | |
74 | , FRV_INSN_SRLCC, FRV_INSN_SRACC, FRV_INSN_SMULCC, FRV_INSN_UMULCC | |
75 | , FRV_INSN_CADDCC, FRV_INSN_CSUBCC, FRV_INSN_CSMULCC, FRV_INSN_CANDCC | |
76 | , FRV_INSN_CORCC, FRV_INSN_CXORCC, FRV_INSN_CSLLCC, FRV_INSN_CSRLCC | |
77 | , FRV_INSN_CSRACC, FRV_INSN_ADDX, FRV_INSN_SUBX, FRV_INSN_ADDXCC | |
78 | , FRV_INSN_SUBXCC, FRV_INSN_ADDI, FRV_INSN_SUBI, FRV_INSN_ANDI | |
79 | , FRV_INSN_ORI, FRV_INSN_XORI, FRV_INSN_SDIVI, FRV_INSN_NSDIVI | |
80 | , FRV_INSN_UDIVI, FRV_INSN_NUDIVI, FRV_INSN_SMULI, FRV_INSN_UMULI | |
81 | , FRV_INSN_SLLI, FRV_INSN_SRLI, FRV_INSN_SRAI, FRV_INSN_SCANI | |
82 | , FRV_INSN_ADDICC, FRV_INSN_SUBICC, FRV_INSN_ANDICC, FRV_INSN_ORICC | |
83 | , FRV_INSN_XORICC, FRV_INSN_SMULICC, FRV_INSN_UMULICC, FRV_INSN_SLLICC | |
84 | , FRV_INSN_SRLICC, FRV_INSN_SRAICC, FRV_INSN_ADDXI, FRV_INSN_SUBXI | |
85 | , FRV_INSN_ADDXICC, FRV_INSN_SUBXICC, FRV_INSN_CMPB, FRV_INSN_CMPBA | |
86 | , FRV_INSN_SETLO, FRV_INSN_SETHI, FRV_INSN_SETLOS, FRV_INSN_LDSB | |
87 | , FRV_INSN_LDUB, FRV_INSN_LDSH, FRV_INSN_LDUH, FRV_INSN_LD | |
88 | , FRV_INSN_LDBF, FRV_INSN_LDHF, FRV_INSN_LDF, FRV_INSN_LDC | |
89 | , FRV_INSN_NLDSB, FRV_INSN_NLDUB, FRV_INSN_NLDSH, FRV_INSN_NLDUH | |
90 | , FRV_INSN_NLD, FRV_INSN_NLDBF, FRV_INSN_NLDHF, FRV_INSN_NLDF | |
91 | , FRV_INSN_LDD, FRV_INSN_LDDF, FRV_INSN_LDDC, FRV_INSN_NLDD | |
92 | , FRV_INSN_NLDDF, FRV_INSN_LDQ, FRV_INSN_LDQF, FRV_INSN_LDQC | |
93 | , FRV_INSN_NLDQ, FRV_INSN_NLDQF, FRV_INSN_LDSBU, FRV_INSN_LDUBU | |
94 | , FRV_INSN_LDSHU, FRV_INSN_LDUHU, FRV_INSN_LDU, FRV_INSN_NLDSBU | |
95 | , FRV_INSN_NLDUBU, FRV_INSN_NLDSHU, FRV_INSN_NLDUHU, FRV_INSN_NLDU | |
96 | , FRV_INSN_LDBFU, FRV_INSN_LDHFU, FRV_INSN_LDFU, FRV_INSN_LDCU | |
97 | , FRV_INSN_NLDBFU, FRV_INSN_NLDHFU, FRV_INSN_NLDFU, FRV_INSN_LDDU | |
98 | , FRV_INSN_NLDDU, FRV_INSN_LDDFU, FRV_INSN_LDDCU, FRV_INSN_NLDDFU | |
99 | , FRV_INSN_LDQU, FRV_INSN_NLDQU, FRV_INSN_LDQFU, FRV_INSN_LDQCU | |
100 | , FRV_INSN_NLDQFU, FRV_INSN_LDSBI, FRV_INSN_LDSHI, FRV_INSN_LDI | |
101 | , FRV_INSN_LDUBI, FRV_INSN_LDUHI, FRV_INSN_LDBFI, FRV_INSN_LDHFI | |
102 | , FRV_INSN_LDFI, FRV_INSN_NLDSBI, FRV_INSN_NLDUBI, FRV_INSN_NLDSHI | |
103 | , FRV_INSN_NLDUHI, FRV_INSN_NLDI, FRV_INSN_NLDBFI, FRV_INSN_NLDHFI | |
104 | , FRV_INSN_NLDFI, FRV_INSN_LDDI, FRV_INSN_LDDFI, FRV_INSN_NLDDI | |
e74d091b DB |
105 | , FRV_INSN_NLDDFI, FRV_INSN_LDQI, FRV_INSN_LDQFI, FRV_INSN_NLDQFI |
106 | , FRV_INSN_STB, FRV_INSN_STH, FRV_INSN_ST, FRV_INSN_STBF | |
107 | , FRV_INSN_STHF, FRV_INSN_STF, FRV_INSN_STC, FRV_INSN_RSTB | |
108 | , FRV_INSN_RSTH, FRV_INSN_RST, FRV_INSN_RSTBF, FRV_INSN_RSTHF | |
109 | , FRV_INSN_RSTF, FRV_INSN_STD, FRV_INSN_STDF, FRV_INSN_STDC | |
110 | , FRV_INSN_RSTD, FRV_INSN_RSTDF, FRV_INSN_STQ, FRV_INSN_STQF | |
111 | , FRV_INSN_STQC, FRV_INSN_RSTQ, FRV_INSN_RSTQF, FRV_INSN_STBU | |
112 | , FRV_INSN_STHU, FRV_INSN_STU, FRV_INSN_STBFU, FRV_INSN_STHFU | |
113 | , FRV_INSN_STFU, FRV_INSN_STCU, FRV_INSN_STDU, FRV_INSN_STDFU | |
114 | , FRV_INSN_STDCU, FRV_INSN_STQU, FRV_INSN_STQFU, FRV_INSN_STQCU | |
115 | , FRV_INSN_CLDSB, FRV_INSN_CLDUB, FRV_INSN_CLDSH, FRV_INSN_CLDUH | |
116 | , FRV_INSN_CLD, FRV_INSN_CLDBF, FRV_INSN_CLDHF, FRV_INSN_CLDF | |
117 | , FRV_INSN_CLDD, FRV_INSN_CLDDF, FRV_INSN_CLDQ, FRV_INSN_CLDSBU | |
118 | , FRV_INSN_CLDUBU, FRV_INSN_CLDSHU, FRV_INSN_CLDUHU, FRV_INSN_CLDU | |
119 | , FRV_INSN_CLDBFU, FRV_INSN_CLDHFU, FRV_INSN_CLDFU, FRV_INSN_CLDDU | |
120 | , FRV_INSN_CLDDFU, FRV_INSN_CLDQU, FRV_INSN_CSTB, FRV_INSN_CSTH | |
121 | , FRV_INSN_CST, FRV_INSN_CSTBF, FRV_INSN_CSTHF, FRV_INSN_CSTF | |
122 | , FRV_INSN_CSTD, FRV_INSN_CSTDF, FRV_INSN_CSTQ, FRV_INSN_CSTBU | |
123 | , FRV_INSN_CSTHU, FRV_INSN_CSTU, FRV_INSN_CSTBFU, FRV_INSN_CSTHFU | |
124 | , FRV_INSN_CSTFU, FRV_INSN_CSTDU, FRV_INSN_CSTDFU, FRV_INSN_STBI | |
125 | , FRV_INSN_STHI, FRV_INSN_STI, FRV_INSN_STBFI, FRV_INSN_STHFI | |
126 | , FRV_INSN_STFI, FRV_INSN_STDI, FRV_INSN_STDFI, FRV_INSN_STQI | |
127 | , FRV_INSN_STQFI, FRV_INSN_SWAP, FRV_INSN_SWAPI, FRV_INSN_CSWAP | |
128 | , FRV_INSN_MOVGF, FRV_INSN_MOVFG, FRV_INSN_MOVGFD, FRV_INSN_MOVFGD | |
129 | , FRV_INSN_MOVGFQ, FRV_INSN_MOVFGQ, FRV_INSN_CMOVGF, FRV_INSN_CMOVFG | |
130 | , FRV_INSN_CMOVGFD, FRV_INSN_CMOVFGD, FRV_INSN_MOVGS, FRV_INSN_MOVSG | |
131 | , FRV_INSN_BRA, FRV_INSN_BNO, FRV_INSN_BEQ, FRV_INSN_BNE | |
132 | , FRV_INSN_BLE, FRV_INSN_BGT, FRV_INSN_BLT, FRV_INSN_BGE | |
133 | , FRV_INSN_BLS, FRV_INSN_BHI, FRV_INSN_BC, FRV_INSN_BNC | |
134 | , FRV_INSN_BN, FRV_INSN_BP, FRV_INSN_BV, FRV_INSN_BNV | |
135 | , FRV_INSN_FBRA, FRV_INSN_FBNO, FRV_INSN_FBNE, FRV_INSN_FBEQ | |
136 | , FRV_INSN_FBLG, FRV_INSN_FBUE, FRV_INSN_FBUL, FRV_INSN_FBGE | |
137 | , FRV_INSN_FBLT, FRV_INSN_FBUGE, FRV_INSN_FBUG, FRV_INSN_FBLE | |
138 | , FRV_INSN_FBGT, FRV_INSN_FBULE, FRV_INSN_FBU, FRV_INSN_FBO | |
139 | , FRV_INSN_BCTRLR, FRV_INSN_BRALR, FRV_INSN_BNOLR, FRV_INSN_BEQLR | |
140 | , FRV_INSN_BNELR, FRV_INSN_BLELR, FRV_INSN_BGTLR, FRV_INSN_BLTLR | |
141 | , FRV_INSN_BGELR, FRV_INSN_BLSLR, FRV_INSN_BHILR, FRV_INSN_BCLR | |
142 | , FRV_INSN_BNCLR, FRV_INSN_BNLR, FRV_INSN_BPLR, FRV_INSN_BVLR | |
143 | , FRV_INSN_BNVLR, FRV_INSN_FBRALR, FRV_INSN_FBNOLR, FRV_INSN_FBEQLR | |
144 | , FRV_INSN_FBNELR, FRV_INSN_FBLGLR, FRV_INSN_FBUELR, FRV_INSN_FBULLR | |
145 | , FRV_INSN_FBGELR, FRV_INSN_FBLTLR, FRV_INSN_FBUGELR, FRV_INSN_FBUGLR | |
146 | , FRV_INSN_FBLELR, FRV_INSN_FBGTLR, FRV_INSN_FBULELR, FRV_INSN_FBULR | |
147 | , FRV_INSN_FBOLR, FRV_INSN_BCRALR, FRV_INSN_BCNOLR, FRV_INSN_BCEQLR | |
148 | , FRV_INSN_BCNELR, FRV_INSN_BCLELR, FRV_INSN_BCGTLR, FRV_INSN_BCLTLR | |
149 | , FRV_INSN_BCGELR, FRV_INSN_BCLSLR, FRV_INSN_BCHILR, FRV_INSN_BCCLR | |
150 | , FRV_INSN_BCNCLR, FRV_INSN_BCNLR, FRV_INSN_BCPLR, FRV_INSN_BCVLR | |
151 | , FRV_INSN_BCNVLR, FRV_INSN_FCBRALR, FRV_INSN_FCBNOLR, FRV_INSN_FCBEQLR | |
152 | , FRV_INSN_FCBNELR, FRV_INSN_FCBLGLR, FRV_INSN_FCBUELR, FRV_INSN_FCBULLR | |
153 | , FRV_INSN_FCBGELR, FRV_INSN_FCBLTLR, FRV_INSN_FCBUGELR, FRV_INSN_FCBUGLR | |
154 | , FRV_INSN_FCBLELR, FRV_INSN_FCBGTLR, FRV_INSN_FCBULELR, FRV_INSN_FCBULR | |
155 | , FRV_INSN_FCBOLR, FRV_INSN_JMPL, FRV_INSN_CALLL, FRV_INSN_JMPIL | |
156 | , FRV_INSN_CALLIL, FRV_INSN_CALL, FRV_INSN_RETT, FRV_INSN_REI | |
157 | , FRV_INSN_TRA, FRV_INSN_TNO, FRV_INSN_TEQ, FRV_INSN_TNE | |
158 | , FRV_INSN_TLE, FRV_INSN_TGT, FRV_INSN_TLT, FRV_INSN_TGE | |
159 | , FRV_INSN_TLS, FRV_INSN_THI, FRV_INSN_TC, FRV_INSN_TNC | |
160 | , FRV_INSN_TN, FRV_INSN_TP, FRV_INSN_TV, FRV_INSN_TNV | |
161 | , FRV_INSN_FTRA, FRV_INSN_FTNO, FRV_INSN_FTNE, FRV_INSN_FTEQ | |
162 | , FRV_INSN_FTLG, FRV_INSN_FTUE, FRV_INSN_FTUL, FRV_INSN_FTGE | |
163 | , FRV_INSN_FTLT, FRV_INSN_FTUGE, FRV_INSN_FTUG, FRV_INSN_FTLE | |
164 | , FRV_INSN_FTGT, FRV_INSN_FTULE, FRV_INSN_FTU, FRV_INSN_FTO | |
165 | , FRV_INSN_TIRA, FRV_INSN_TINO, FRV_INSN_TIEQ, FRV_INSN_TINE | |
166 | , FRV_INSN_TILE, FRV_INSN_TIGT, FRV_INSN_TILT, FRV_INSN_TIGE | |
167 | , FRV_INSN_TILS, FRV_INSN_TIHI, FRV_INSN_TIC, FRV_INSN_TINC | |
168 | , FRV_INSN_TIN, FRV_INSN_TIP, FRV_INSN_TIV, FRV_INSN_TINV | |
169 | , FRV_INSN_FTIRA, FRV_INSN_FTINO, FRV_INSN_FTINE, FRV_INSN_FTIEQ | |
170 | , FRV_INSN_FTILG, FRV_INSN_FTIUE, FRV_INSN_FTIUL, FRV_INSN_FTIGE | |
171 | , FRV_INSN_FTILT, FRV_INSN_FTIUGE, FRV_INSN_FTIUG, FRV_INSN_FTILE | |
172 | , FRV_INSN_FTIGT, FRV_INSN_FTIULE, FRV_INSN_FTIU, FRV_INSN_FTIO | |
173 | , FRV_INSN_BREAK, FRV_INSN_MTRAP, FRV_INSN_ANDCR, FRV_INSN_ORCR | |
174 | , FRV_INSN_XORCR, FRV_INSN_NANDCR, FRV_INSN_NORCR, FRV_INSN_ANDNCR | |
175 | , FRV_INSN_ORNCR, FRV_INSN_NANDNCR, FRV_INSN_NORNCR, FRV_INSN_NOTCR | |
176 | , FRV_INSN_CKRA, FRV_INSN_CKNO, FRV_INSN_CKEQ, FRV_INSN_CKNE | |
177 | , FRV_INSN_CKLE, FRV_INSN_CKGT, FRV_INSN_CKLT, FRV_INSN_CKGE | |
178 | , FRV_INSN_CKLS, FRV_INSN_CKHI, FRV_INSN_CKC, FRV_INSN_CKNC | |
179 | , FRV_INSN_CKN, FRV_INSN_CKP, FRV_INSN_CKV, FRV_INSN_CKNV | |
180 | , FRV_INSN_FCKRA, FRV_INSN_FCKNO, FRV_INSN_FCKNE, FRV_INSN_FCKEQ | |
181 | , FRV_INSN_FCKLG, FRV_INSN_FCKUE, FRV_INSN_FCKUL, FRV_INSN_FCKGE | |
182 | , FRV_INSN_FCKLT, FRV_INSN_FCKUGE, FRV_INSN_FCKUG, FRV_INSN_FCKLE | |
183 | , FRV_INSN_FCKGT, FRV_INSN_FCKULE, FRV_INSN_FCKU, FRV_INSN_FCKO | |
184 | , FRV_INSN_CCKRA, FRV_INSN_CCKNO, FRV_INSN_CCKEQ, FRV_INSN_CCKNE | |
185 | , FRV_INSN_CCKLE, FRV_INSN_CCKGT, FRV_INSN_CCKLT, FRV_INSN_CCKGE | |
186 | , FRV_INSN_CCKLS, FRV_INSN_CCKHI, FRV_INSN_CCKC, FRV_INSN_CCKNC | |
187 | , FRV_INSN_CCKN, FRV_INSN_CCKP, FRV_INSN_CCKV, FRV_INSN_CCKNV | |
188 | , FRV_INSN_CFCKRA, FRV_INSN_CFCKNO, FRV_INSN_CFCKNE, FRV_INSN_CFCKEQ | |
189 | , FRV_INSN_CFCKLG, FRV_INSN_CFCKUE, FRV_INSN_CFCKUL, FRV_INSN_CFCKGE | |
190 | , FRV_INSN_CFCKLT, FRV_INSN_CFCKUGE, FRV_INSN_CFCKUG, FRV_INSN_CFCKLE | |
191 | , FRV_INSN_CFCKGT, FRV_INSN_CFCKULE, FRV_INSN_CFCKU, FRV_INSN_CFCKO | |
192 | , FRV_INSN_CJMPL, FRV_INSN_CCALLL, FRV_INSN_ICI, FRV_INSN_DCI | |
193 | , FRV_INSN_ICEI, FRV_INSN_DCEI, FRV_INSN_DCF, FRV_INSN_DCEF | |
194 | , FRV_INSN_WITLB, FRV_INSN_WDTLB, FRV_INSN_ITLBI, FRV_INSN_DTLBI | |
195 | , FRV_INSN_ICPL, FRV_INSN_DCPL, FRV_INSN_ICUL, FRV_INSN_DCUL | |
196 | , FRV_INSN_BAR, FRV_INSN_MEMBAR, FRV_INSN_COP1, FRV_INSN_COP2 | |
197 | , FRV_INSN_CLRGR, FRV_INSN_CLRFR, FRV_INSN_CLRGA, FRV_INSN_CLRFA | |
198 | , FRV_INSN_COMMITGR, FRV_INSN_COMMITFR, FRV_INSN_COMMITGA, FRV_INSN_COMMITFA | |
199 | , FRV_INSN_FITOS, FRV_INSN_FSTOI, FRV_INSN_FITOD, FRV_INSN_FDTOI | |
200 | , FRV_INSN_FDITOS, FRV_INSN_FDSTOI, FRV_INSN_NFDITOS, FRV_INSN_NFDSTOI | |
201 | , FRV_INSN_CFITOS, FRV_INSN_CFSTOI, FRV_INSN_NFITOS, FRV_INSN_NFSTOI | |
202 | , FRV_INSN_FMOVS, FRV_INSN_FMOVD, FRV_INSN_FDMOVS, FRV_INSN_CFMOVS | |
203 | , FRV_INSN_FNEGS, FRV_INSN_FNEGD, FRV_INSN_FDNEGS, FRV_INSN_CFNEGS | |
204 | , FRV_INSN_FABSS, FRV_INSN_FABSD, FRV_INSN_FDABSS, FRV_INSN_CFABSS | |
205 | , FRV_INSN_FSQRTS, FRV_INSN_FDSQRTS, FRV_INSN_NFDSQRTS, FRV_INSN_FSQRTD | |
206 | , FRV_INSN_CFSQRTS, FRV_INSN_NFSQRTS, FRV_INSN_FADDS, FRV_INSN_FSUBS | |
207 | , FRV_INSN_FMULS, FRV_INSN_FDIVS, FRV_INSN_FADDD, FRV_INSN_FSUBD | |
208 | , FRV_INSN_FMULD, FRV_INSN_FDIVD, FRV_INSN_CFADDS, FRV_INSN_CFSUBS | |
209 | , FRV_INSN_CFMULS, FRV_INSN_CFDIVS, FRV_INSN_NFADDS, FRV_INSN_NFSUBS | |
210 | , FRV_INSN_NFMULS, FRV_INSN_NFDIVS, FRV_INSN_FCMPS, FRV_INSN_FCMPD | |
211 | , FRV_INSN_CFCMPS, FRV_INSN_FDCMPS, FRV_INSN_FMADDS, FRV_INSN_FMSUBS | |
212 | , FRV_INSN_FMADDD, FRV_INSN_FMSUBD, FRV_INSN_FDMADDS, FRV_INSN_NFDMADDS | |
213 | , FRV_INSN_CFMADDS, FRV_INSN_CFMSUBS, FRV_INSN_NFMADDS, FRV_INSN_NFMSUBS | |
214 | , FRV_INSN_FMAS, FRV_INSN_FMSS, FRV_INSN_FDMAS, FRV_INSN_FDMSS | |
215 | , FRV_INSN_NFDMAS, FRV_INSN_NFDMSS, FRV_INSN_CFMAS, FRV_INSN_CFMSS | |
216 | , FRV_INSN_FMAD, FRV_INSN_FMSD, FRV_INSN_NFMAS, FRV_INSN_NFMSS | |
217 | , FRV_INSN_FDADDS, FRV_INSN_FDSUBS, FRV_INSN_FDMULS, FRV_INSN_FDDIVS | |
218 | , FRV_INSN_FDSADS, FRV_INSN_FDMULCS, FRV_INSN_NFDMULCS, FRV_INSN_NFDADDS | |
219 | , FRV_INSN_NFDSUBS, FRV_INSN_NFDMULS, FRV_INSN_NFDDIVS, FRV_INSN_NFDSADS | |
220 | , FRV_INSN_NFDCMPS, FRV_INSN_MHSETLOS, FRV_INSN_MHSETHIS, FRV_INSN_MHDSETS | |
221 | , FRV_INSN_MHSETLOH, FRV_INSN_MHSETHIH, FRV_INSN_MHDSETH, FRV_INSN_MAND | |
222 | , FRV_INSN_MOR, FRV_INSN_MXOR, FRV_INSN_CMAND, FRV_INSN_CMOR | |
223 | , FRV_INSN_CMXOR, FRV_INSN_MNOT, FRV_INSN_CMNOT, FRV_INSN_MROTLI | |
224 | , FRV_INSN_MROTRI, FRV_INSN_MWCUT, FRV_INSN_MWCUTI, FRV_INSN_MCUT | |
225 | , FRV_INSN_MCUTI, FRV_INSN_MCUTSS, FRV_INSN_MCUTSSI, FRV_INSN_MDCUTSSI | |
226 | , FRV_INSN_MAVEH, FRV_INSN_MSLLHI, FRV_INSN_MSRLHI, FRV_INSN_MSRAHI | |
227 | , FRV_INSN_MDROTLI, FRV_INSN_MCPLHI, FRV_INSN_MCPLI, FRV_INSN_MSATHS | |
228 | , FRV_INSN_MQSATHS, FRV_INSN_MSATHU, FRV_INSN_MCMPSH, FRV_INSN_MCMPUH | |
229 | , FRV_INSN_MABSHS, FRV_INSN_MADDHSS, FRV_INSN_MADDHUS, FRV_INSN_MSUBHSS | |
230 | , FRV_INSN_MSUBHUS, FRV_INSN_CMADDHSS, FRV_INSN_CMADDHUS, FRV_INSN_CMSUBHSS | |
231 | , FRV_INSN_CMSUBHUS, FRV_INSN_MQADDHSS, FRV_INSN_MQADDHUS, FRV_INSN_MQSUBHSS | |
232 | , FRV_INSN_MQSUBHUS, FRV_INSN_CMQADDHSS, FRV_INSN_CMQADDHUS, FRV_INSN_CMQSUBHSS | |
233 | , FRV_INSN_CMQSUBHUS, FRV_INSN_MADDACCS, FRV_INSN_MSUBACCS, FRV_INSN_MDADDACCS | |
234 | , FRV_INSN_MDSUBACCS, FRV_INSN_MASACCS, FRV_INSN_MDASACCS, FRV_INSN_MMULHS | |
235 | , FRV_INSN_MMULHU, FRV_INSN_MMULXHS, FRV_INSN_MMULXHU, FRV_INSN_CMMULHS | |
236 | , FRV_INSN_CMMULHU, FRV_INSN_MQMULHS, FRV_INSN_MQMULHU, FRV_INSN_MQMULXHS | |
237 | , FRV_INSN_MQMULXHU, FRV_INSN_CMQMULHS, FRV_INSN_CMQMULHU, FRV_INSN_MMACHS | |
238 | , FRV_INSN_MMACHU, FRV_INSN_MMRDHS, FRV_INSN_MMRDHU, FRV_INSN_CMMACHS | |
239 | , FRV_INSN_CMMACHU, FRV_INSN_MQMACHS, FRV_INSN_MQMACHU, FRV_INSN_CMQMACHS | |
240 | , FRV_INSN_CMQMACHU, FRV_INSN_MQXMACHS, FRV_INSN_MQXMACXHS, FRV_INSN_MQMACXHS | |
241 | , FRV_INSN_MCPXRS, FRV_INSN_MCPXRU, FRV_INSN_MCPXIS, FRV_INSN_MCPXIU | |
242 | , FRV_INSN_CMCPXRS, FRV_INSN_CMCPXRU, FRV_INSN_CMCPXIS, FRV_INSN_CMCPXIU | |
243 | , FRV_INSN_MQCPXRS, FRV_INSN_MQCPXRU, FRV_INSN_MQCPXIS, FRV_INSN_MQCPXIU | |
244 | , FRV_INSN_MEXPDHW, FRV_INSN_CMEXPDHW, FRV_INSN_MEXPDHD, FRV_INSN_CMEXPDHD | |
245 | , FRV_INSN_MPACKH, FRV_INSN_MDPACKH, FRV_INSN_MUNPACKH, FRV_INSN_MDUNPACKH | |
246 | , FRV_INSN_MBTOH, FRV_INSN_CMBTOH, FRV_INSN_MHTOB, FRV_INSN_CMHTOB | |
247 | , FRV_INSN_MBTOHE, FRV_INSN_CMBTOHE, FRV_INSN_MNOP, FRV_INSN_MCLRACC_0 | |
248 | , FRV_INSN_MCLRACC_1, FRV_INSN_MRDACC, FRV_INSN_MRDACCG, FRV_INSN_MWTACC | |
249 | , FRV_INSN_MWTACCG, FRV_INSN_MCOP1, FRV_INSN_MCOP2, FRV_INSN_FNOP | |
fd3c93d5 DB |
250 | } CGEN_INSN_TYPE; |
251 | ||
252 | /* Index of `invalid' insn place holder. */ | |
253 | #define CGEN_INSN_INVALID FRV_INSN_INVALID | |
254 | ||
255 | /* Total number of insns in table. */ | |
256 | #define MAX_INSNS ((int) FRV_INSN_FNOP + 1) | |
257 | ||
258 | /* This struct records data prior to insertion or after extraction. */ | |
259 | struct cgen_fields | |
260 | { | |
261 | int length; | |
262 | long f_nil; | |
263 | long f_anyof; | |
264 | long f_pack; | |
265 | long f_op; | |
266 | long f_ope1; | |
267 | long f_ope2; | |
268 | long f_ope3; | |
269 | long f_ope4; | |
270 | long f_GRi; | |
271 | long f_GRj; | |
272 | long f_GRk; | |
273 | long f_FRi; | |
274 | long f_FRj; | |
275 | long f_FRk; | |
276 | long f_CPRi; | |
277 | long f_CPRj; | |
278 | long f_CPRk; | |
279 | long f_ACCGi; | |
280 | long f_ACCGk; | |
281 | long f_ACC40Si; | |
282 | long f_ACC40Ui; | |
283 | long f_ACC40Sk; | |
284 | long f_ACC40Uk; | |
285 | long f_CRi; | |
286 | long f_CRj; | |
287 | long f_CRk; | |
288 | long f_CCi; | |
289 | long f_CRj_int; | |
290 | long f_CRj_float; | |
291 | long f_ICCi_1; | |
292 | long f_ICCi_2; | |
293 | long f_ICCi_3; | |
294 | long f_FCCi_1; | |
295 | long f_FCCi_2; | |
296 | long f_FCCi_3; | |
297 | long f_FCCk; | |
298 | long f_eir; | |
299 | long f_s10; | |
300 | long f_s12; | |
301 | long f_d12; | |
302 | long f_u16; | |
303 | long f_s16; | |
304 | long f_s6; | |
305 | long f_s6_1; | |
306 | long f_u6; | |
307 | long f_s5; | |
308 | long f_u12_h; | |
309 | long f_u12_l; | |
310 | long f_u12; | |
311 | long f_int_cc; | |
312 | long f_flt_cc; | |
313 | long f_cond; | |
314 | long f_ccond; | |
315 | long f_hint; | |
316 | long f_LI; | |
317 | long f_lock; | |
318 | long f_debug; | |
319 | long f_A; | |
320 | long f_ae; | |
321 | long f_spr_h; | |
322 | long f_spr_l; | |
323 | long f_spr; | |
324 | long f_label16; | |
325 | long f_labelH6; | |
326 | long f_labelL18; | |
327 | long f_label24; | |
328 | long f_ICCi_1_null; | |
329 | long f_ICCi_2_null; | |
330 | long f_ICCi_3_null; | |
331 | long f_FCCi_1_null; | |
332 | long f_FCCi_2_null; | |
333 | long f_FCCi_3_null; | |
334 | long f_rs_null; | |
335 | long f_GRi_null; | |
336 | long f_GRj_null; | |
337 | long f_GRk_null; | |
338 | long f_FRi_null; | |
339 | long f_FRj_null; | |
340 | long f_ACCj_null; | |
341 | long f_rd_null; | |
342 | long f_cond_null; | |
343 | long f_ccond_null; | |
344 | long f_s12_null; | |
345 | long f_label16_null; | |
346 | long f_misc_null_1; | |
347 | long f_misc_null_2; | |
348 | long f_misc_null_3; | |
349 | long f_misc_null_4; | |
350 | long f_misc_null_5; | |
351 | long f_misc_null_6; | |
352 | long f_misc_null_7; | |
353 | long f_misc_null_8; | |
354 | long f_misc_null_9; | |
355 | long f_misc_null_10; | |
356 | long f_misc_null_11; | |
357 | long f_LI_off; | |
358 | long f_LI_on; | |
359 | }; | |
360 | ||
361 | #define CGEN_INIT_PARSE(od) \ | |
362 | {\ | |
363 | } | |
364 | #define CGEN_INIT_INSERT(od) \ | |
365 | {\ | |
366 | } | |
367 | #define CGEN_INIT_EXTRACT(od) \ | |
368 | {\ | |
369 | } | |
370 | #define CGEN_INIT_PRINT(od) \ | |
371 | {\ | |
372 | } | |
373 | ||
374 | ||
375 | #endif /* FRV_OPC_H */ |