* Updated header: Added 2006. Changed address of FSF. Changed email
[cacao.git] / src / vm / jit / i386 / icmd_uses_reg_res.inc
1 /* src/vm/jit/i386/icm_uses_reg_res.inc - Table for reserved register usage
2
3    Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
4    C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
5    E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
6    J. Wenninger, Institut f. Computersprachen - TU Wien
7
8    This file is part of CACAO.
9
10    This program is free software; you can redistribute it and/or
11    modify it under the terms of the GNU General Public License as
12    published by the Free Software Foundation; either version 2, or (at
13    your option) any later version.
14
15    This program is distributed in the hope that it will be useful, but
16    WITHOUT ANY WARRANTY; without even the implied warranty of
17    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18    General Public License for more details.
19
20    You should have received a copy of the GNU General Public License
21    along with this program; if not, write to the Free Software
22    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23    02110-1301, USA.
24
25    Contact: cacao@cacaojvm.org
26
27    Authors: Christian Ullrich
28
29 */
30 #define NO   0 /* Register survives this ICMD */
31 #define S    1 /* Register can not be a source operand */
32 #define D    2 /* Register can not be a destination operand */
33 #define YES  4 /* Register does not survive this ICMD */
34
35 int lsra_reg_res[REG_RES_CNT]={EAX, ECX, EDX};
36
37 int icmd_uses_reg_res[256][REG_RES_CNT + 1] ={
38 /*EAX, ECX, EDX, OUTPUT */
39 {  NO,  NO,  NO, REG_NULL},    /* ICMD_NOP */
40 { YES,  NO,  NO, REG_NULL},    /* ICMD_ACONST */        
41 {  NO,  NO,  NO, REG_NULL},    /* ICMD_NULLCHECKPOP */
42 {  NO,  NO,  NO, REG_NULL},    /* ICMD_ICONST */        
43 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF4      */
44 { YES,  NO,  NO, REG_NULL},    /* ICMD_IDIVPOW2 */ 
45 { YES, YES,  NO, REG_NULL},    /* ICMD_LDIVPOW2 */
46 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF7      */
47 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF8      */
48 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LCONST */        
49 { YES, YES, YES, REG_NULL}, /* ICMD_LCMPCONST   */
50 { YES,  NO,  NO, REG_NULL},    /* ICMD_FCONST   */      
51 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF12     */
52 { YES, YES, YES, REG_NULL},    /* ICMD_ELSE_ICONST      */
53 { YES,  NO,  NO, REG_NULL},    /* ICMD_DCONST   */      
54 { YES, YES, YES, REG_NULL},    /* ICMD_IFEQ_ICONST      */
55 { YES, YES, YES, REG_NULL},    /* ICMD_IFNE_ICONST      */
56 { YES, YES, YES, REG_NULL},    /* ICMD_IFLT_ICONST      */
57 { YES, YES, YES, REG_NULL},    /* ICMD_IFGE_ICONST      */
58 { YES, YES, YES, REG_NULL},    /* ICMD_IFGT_ICONST      */
59 { YES, YES, YES, REG_NULL},    /* ICMD_IFLE_ICONST      */
60 { YES,  NO,  NO, REG_NULL},    /* ICMD_ILOAD    */ 
61 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LLOAD    */
62 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FLOAD    */
63 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DLOAD    */      
64 { YES,  NO,  NO, REG_NULL},    /* ICMD_ALOAD    */
65 {  NO,  NO,  NO, REG_NULL},    /* ICMD_IADDCONST        */
66 {  NO,  NO,  NO, REG_NULL},    /* ICMD_ISUBCONST        */
67 { YES,  NO,  NO, REG_NULL},    /* ICMD_IMULCONST        */
68 { YES,  NO,  NO, REG_NULL},    /* ICMD_IANDCONST        */
69 { YES,  NO,  NO, REG_NULL},    /* ICMD_IORCONST */
70 { YES,  NO,  NO, REG_NULL},    /* ICMD_IXORCONST        */
71 { YES,  NO,  NO, REG_NULL},    /* ICMD_ISHLCONST        */
72 { YES,  NO,  NO, REG_NULL},    /* ICMD_ISHRCONST        */
73 { YES,  NO,  NO, REG_NULL},    /* ICMD_IUSHRCONST       */
74 { YES, YES,  NO, REG_NULL},    /* ICMD_IREMPOW2 */
75 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LADDCONST        */
76 { YES,  NO,  NO, REG_NULL},    /* ICMD_LSUBCONST        */      
77 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_LMULCONST  */
78 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LANDCONST        */
79 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LORCONST */
80 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LXORCONST        */
81 { YES, YES,  NO, REG_NULL},    /* ICMD_LSHLCONST        */
82 { YES, YES,  NO, REG_NULL},    /* ICMD_LSHRCONST        */
83 { YES, YES,  NO, REG_NULL},    /* ICMD_LUSHRCONST       */
84 { YES, YES,  NO, REG_NULL},    /* ICMD_LREMPOW2 */
85 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_IALOAD       */
86 { S|YES, S|YES, S|YES, REG_NULL},  /* ICMD_LALOAD       */
87 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_FALOAD       */
88 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_DALOAD       */
89 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_AALOAD       */
90 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_BALOAD       */
91 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_CALOAD       */
92 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_SALOAD       */
93 { YES,  NO,  NO, REG_NULL},    /* ICMD_ISTORE   */
94 {  NO,  NO,  NO, REG_NULL},    /* ICMD_LSTORE   */
95 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FSTORE   */
96 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DSTORE   */      
97 { YES,  NO,  NO, REG_NULL},    /* ICMD_ASTORE   */
98 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LEQ   */
99 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LNE   */
100 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LLT   */
101 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LGE   */
102 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LGT   */
103 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LLE   */
104 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPEQ        */
105 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPNE        */
106 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPLT        */
107 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPGE        */
108 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPGT        */
109 { YES, YES, YES, REG_NULL},    /* ICMD_IF_LCMPLE        */
110 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF71     */
111 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF72     */
112 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF73     */
113 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF74     */
114 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF75     */
115 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF76     */
116 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF77     */
117 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF78     */
118 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_IASTORE    */
119 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_LASTORE    */
120 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_FASTORE      */
121 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_DASTORE      */
122 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_AASTORE    */
123 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_BASTORE    */
124 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_CASTORE    */
125 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_SASTORE    */
126 {  NO,  NO,  NO, REG_NULL},    /* ICMD_POP      */
127 {  NO,  NO,  NO, REG_NULL},    /* ICMD_POP2     */
128 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP      */
129 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP_X1   */
130 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP_X2   */
131 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP2     */
132 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP2_X1  */
133 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_DUP2_X2  */      
134 {YES|S|D,NO, NO, REG_NULL},    /* ICMD_SWAP     */
135 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_IADD   */
136 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_LADD   */
137 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FADD     */
138 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DADD     */
139 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_ISUB   */
140 { YES,  NO,  NO, REG_NULL},    /* ICMD_LSUB     */
141 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FSUB     */
142 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DSUB     */
143 { S|YES,  NO,  NO, EAX},    /* ICMD_IMUL        */
144 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_LMUL       */
145 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FMUL     */
146 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DMUL     */
147 { S|YES, S|YES, S|YES, EAX},    /* ICMD_IDIV    */ /* Really uses EDX? */
148 { YES, YES, YES, REG_NULL}, /* ICMD_LDIV        */
149 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FDIV     */
150 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DDIV     */
151 { S|YES, S|YES, S|YES, EDX},    /* ICMD_IREM    */     /* last checked */
152 { YES, YES, YES, REG_NULL}, /* ICMD_LREM        */
153 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FREM     */
154 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DREM     */
155 { YES,  NO,  NO, REG_NULL},    /* ICMD_INEG     */      
156 { YES,  NO,  NO, REG_NULL},    /* ICMD_LNEG     */      
157 {  NO,  NO,  NO, REG_NULL},    /* ICMD_FNEG     */
158 {  NO,  NO,  NO, REG_NULL},    /* ICMD_DNEG     */
159 { YES, D|S|YES,  NO, REG_NULL},    /* ICMD_ISHL */
160 { S|YES, YES, S|YES, REG_NULL},    /* ICMD_LSHL */
161 { YES, D|S|YES,  NO, REG_NULL},    /* ICMD_ISHR */
162 { S|YES, YES, S|YES, REG_NULL},    /* ICMD_LSHR */
163 { YES, D|S|YES,  NO, REG_NULL},    /* ICMD_IUSHR        */
164 { S|YES, YES, S|YES, REG_NULL},    /* ICMD_LUSHR        */
165 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_IAND   */
166 { YES,  NO,  NO, REG_NULL},    /* ICMD_LAND     */
167 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_IOR    */
168 { YES,  NO,  NO, REG_NULL},    /* ICMD_LOR      */
169 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_IXOR   */
170 { YES,  NO,  NO, REG_NULL},    /* ICMD_LXOR     */
171 {  NO,  NO,  NO, REG_NULL},    /* ICMD_IINC     */
172 { YES,  NO, YES, REG_NULL},    /* ICMD_I2L      */
173 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_I2F    */
174 { S|YES,  NO,  NO, REG_NULL},    /* ICMD_I2D    */
175 { YES,  NO,  NO, REG_NULL},    /* ICMD_L2I      */
176 {  NO,  NO,  NO, REG_NULL},    /* ICMD_L2F      */
177 {  NO,  NO,  NO, REG_NULL},    /* ICMD_L2D      */
178 {  D|YES, NO,  NO, EAX},         /* ICMD_F2I    */
179 {  YES, NO, YES, REG_NULL},    /* ICMD_F2L      */
180 {  NO,  NO,  NO, REG_NULL},    /* ICMD_F2D      */
181 {  D|YES, NO,  NO, EAX},         /* ICMD_D2I    */
182 {  YES, NO, YES, REG_NULL},    /* ICMD_D2L      */
183 {  NO,  NO,  NO, REG_NULL},    /* ICMD_D2F      */
184 { YES,  NO,  NO, REG_NULL},    /* ICMD_INT2BYTE */
185 { YES,  NO,  NO, REG_NULL},    /* ICMD_INT2CHAR */
186 { YES,  NO,  NO, REG_NULL},    /* ICMD_INT2SHORT        */
187 { YES, YES, YES, REG_NULL}, /* ICMD_LCMP        */
188 { YES,  NO,  NO, REG_NULL},    /* ICMD_FCMPL    */
189 { YES,  NO,  NO, REG_NULL},    /* ICMD_FCMPG    */
190 { YES,  NO,  NO, REG_NULL},    /* ICMD_DCMPL    */
191 { YES,  NO,  NO, REG_NULL},    /* ICMD_DCMPG    */
192 { YES, YES, YES, REG_NULL},    /* ICMD_IFEQ     */
193 { YES, YES, YES, REG_NULL},    /* ICMD_IFNE     */
194 { YES, YES, YES, REG_NULL},    /* ICMD_IFLT     */
195 { YES, YES, YES, REG_NULL},    /* ICMD_IFGE     */
196 { YES, YES, YES, REG_NULL},    /* ICMD_IFGT     */
197 { YES, YES, YES, REG_NULL},    /* ICMD_IFLE     */
198 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPEQ        */
199 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPNE        */
200 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPLT        */
201 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPGE        */
202 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPGT        */
203 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ICMPLE        */
204 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ACMPEQ        */
205 { YES, YES, YES, REG_NULL},    /* ICMD_IF_ACMPNE        */
206 { YES, YES, YES, REG_NULL},    /* ICMD_GOTO     */
207 { YES, YES, YES, REG_NULL},    /* ICMD_JSR      */
208 { YES, YES, YES, REG_NULL},    /* ICMD_RET      */
209 { YES, YES, YES, REG_NULL},    /* ICMD_TABLESWITCH      */
210 { YES, YES, YES, REG_NULL},    /* ICMD_LOOKUPSWITCH     */
211 { YES, YES, YES, REG_NULL},    /* ICMD_IRETURN  */
212 { YES, YES, YES, REG_NULL},    /* ICMD_LRETURN  */
213 { YES, YES, YES, REG_NULL},    /* ICMD_FRETURN  */
214 { YES, YES, YES, REG_NULL},    /* ICMD_DRETURN  */
215 { YES, YES, YES, REG_NULL},    /* ICMD_ARETURN  */
216 { YES, YES, YES, REG_NULL},    /* ICMD_RETURN   */
217 { S|YES, S|YES, S|YES, EAX},    /* ICMD_GETSTATIC*/   
218 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_PUTSTATIC*/   
219 { S|YES, S|YES, S|YES, EAX},    /* ICMD_GETFIELD        */    
220 { S|YES, S|YES,  S|YES, REG_NULL},    /* ICMD_PUTFIELD  */   
221 { S|YES, YES, YES, EAX},        /* ICMD_INVOKEVIRTUAL   */    
222 { S|YES, YES, YES, EAX},        /* ICMD_INVOKESPECIAL   */  
223 { S|YES, YES, YES, EAX},        /* ICMD_INVOKESTATIC    */     
224 { S|YES, YES, YES, EAX},        /* ICMD_INVOKEINTERFACE*/
225 {  NO,  NO,  NO, REG_NULL},    /* UNDEF186 */
226 { YES, YES, YES, REG_NULL}, /* ICMD_NEW */
227 { YES, YES, YES, REG_NULL}, /* ICMD_NEWARRAY    */
228 { YES, YES, YES, REG_NULL}, /* ICMD_ANEWARRAY   */
229 { YES,  NO,  NO, REG_NULL},    /* ICMD_ARRAYLENGTH      */
230 { YES, YES, YES, REG_NULL},    /* ICMD_ATHROW   */
231 { YES, S|YES, S|YES, REG_NULL},  /* ICMD_CHECKCAST      */
232 /* { S|D|YES, S|D|YES, S|D|YES, REG_NULL}, */    /* ICMD_CHECKCAST      */
233 { S|D|YES, S|D|YES, S|D|YES, REG_NULL},    /* ICMD_INSTANCEOF   */
234 /*{ S|D|YES, S|D|YES, S|D|YES, REG_NULL}, */    /* ICMD_INSTANCEOF      */
235 { YES, YES, YES, REG_NULL}, /* ICMD_MONITORENTER        */
236 { YES, YES, YES, REG_NULL}, /* ICMD_MONITOREXIT */
237 {  NO,  NO,  NO, REG_NULL}, /* ICMD_UNDEF196    */
238 { S|YES, YES, YES, EAX},       /* ICMD_MULTIANEWARRAY   */
239 { YES, YES, YES, REG_NULL},    /* ICMD_IFNULL   */
240 { YES, YES, YES, REG_NULL},    /* ICMD_IFNONNULL        */
241 { YES, YES, YES, REG_NULL}, /* ICMD_UNDEF200    */
242 { YES, YES, YES, REG_NULL}, /* ICMD_UNDEF201    */
243 { YES, YES, YES, REG_NULL}, /* ICMD_UNDEF202    */
244 { NO,  NO,  NO, REG_NULL},    /* UNDEF203 */
245 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_IASTORECONST */
246 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_LASTORECONST */
247 { S|YES, S|YES, YES, REG_NULL}, /* ICMD_FASTORECONST    */
248 { S|YES, S|YES, YES, REG_NULL}, /* ICMD_DASTORECONST    */
249 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_AASTORECONST */
250 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_BASTORECONST */
251 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_CASTORECONST */
252 { S|YES, S|YES,  NO, REG_NULL},    /* ICMD_SASTORECONST */
253 { S|YES, S|YES, S|YES, REG_NULL},    /* ICMD_PUTSTATICCONST */
254 { S|YES,  S|YES,  S|YES, REG_NULL},    /* ICMD_PUTFIELDCONST */
255 { YES, YES, YES, REG_NULL}, /* ICMD_IMULPOW2 */
256 { YES, YES, YES, REG_NULL}, /* ICMD_LMULPOW2 */
257 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF216"      */
258 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF217"     */
259 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF218"     */
260 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF219"     */
261 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF220",    */
262 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF" */
263 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
264 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
265 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
266 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF",       */
267 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF226"      */
268 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF227"     */
269 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF228"     */
270 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF229"     */
271 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF230",    */
272 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF" */
273 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
274 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
275 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
276 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF",       */
277 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF236"      */
278 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF237"     */
279 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF238"     */
280 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF239"     */
281 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF240",    */
282 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF" */
283 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
284 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
285 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF"        */
286 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF",       */
287 {  NO,  NO,  NO, REG_NULL}, /*  "UNDEF246"      */
288 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF247"     */
289 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF248"     */
290 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF249"     */
291 {  NO,  NO,  NO, REG_NULL}, /*  ,"UNDEF250",    */
292 {  NO,  NO,  NO, REG_NULL},    /* ICMD_INLINE_START     */
293 {  NO,  NO,  NO, REG_NULL},    /* ICMD_INLINE_END       */
294 { S|YES, YES, YES, EAX},       /* ICMD_BUILTIN3 */  
295 { S|YES, YES, YES, EAX},       /* ICMD_BUILTIN2 */   
296 { S|YES, YES, YES, EAX},       /* ICMD_BUILTIN1 */   
297 };
298
299
300 /*
301  * These are local overrides for various environment variables in Emacs.
302  * Please do not remove this and leave it at the end of the file, where
303  * Emacs will automagically detect them.
304  * ---------------------------------------------------------------------
305  * Local variables:
306  * mode: c
307  * indent-tabs-mode: t
308  * c-basic-offset: 4
309  * tab-width: 4
310  * End:
311  */