xref: /illumos-kvm-cmd/ia64-dis.c (revision 68396ea9)
1 /* ia64-dis.c -- Disassemble ia64 instructions
2    Copyright 1998, 1999, 2000, 2002 Free Software Foundation, Inc.
3    Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
4 
5    This file is part of GDB, GAS, and the GNU binutils.
6 
7    GDB, GAS, and the GNU binutils are free software; you can redistribute
8    them and/or modify them under the terms of the GNU General Public
9    License as published by the Free Software Foundation; either version
10    2, or (at your option) any later version.
11 
12    GDB, GAS, and the GNU binutils are distributed in the hope that they
13    will be useful, but WITHOUT ANY WARRANTY; without even the implied
14    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
15    the GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this file; see the file COPYING.  If not, see
19    <http://www.gnu.org/licenses/>. */
20 
21 #include <assert.h>
22 #include <string.h>
23 
24 #include "dis-asm.h"
25 
26 /* ia64.h -- Header file for ia64 opcode table
27    Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006
28    Free Software Foundation, Inc.
29    Contributed by David Mosberger-Tang <davidm@hpl.hp.com> */
30 
31 #include <sys/types.h>
32 
33 typedef uint64_t ia64_insn;
34 
35 enum ia64_insn_type
36   {
37     IA64_TYPE_NIL = 0,	/* illegal type */
38     IA64_TYPE_A,	/* integer alu (I- or M-unit) */
39     IA64_TYPE_I,	/* non-alu integer (I-unit) */
40     IA64_TYPE_M,	/* memory (M-unit) */
41     IA64_TYPE_B,	/* branch (B-unit) */
42     IA64_TYPE_F,	/* floating-point (F-unit) */
43     IA64_TYPE_X,	/* long encoding (X-unit) */
44     IA64_TYPE_DYN,	/* Dynamic opcode */
45     IA64_NUM_TYPES
46   };
47 
48 enum ia64_unit
49   {
50     IA64_UNIT_NIL = 0,	/* illegal unit */
51     IA64_UNIT_I,	/* integer unit */
52     IA64_UNIT_M,	/* memory unit */
53     IA64_UNIT_B,	/* branching unit */
54     IA64_UNIT_F,	/* floating-point unit */
55     IA64_UNIT_L,	/* long "unit" */
56     IA64_UNIT_X,	/* may be integer or branch unit */
57     IA64_NUM_UNITS
58   };
59 
60 /* Changes to this enumeration must be propagated to the operand table in
61    bfd/cpu-ia64-opc.c
62  */
63 enum ia64_opnd
64   {
65     IA64_OPND_NIL,	/* no operand---MUST BE FIRST!*/
66 
67     /* constants */
68     IA64_OPND_AR_CSD,	/* application register csd (ar.csd) */
69     IA64_OPND_AR_CCV,	/* application register ccv (ar.ccv) */
70     IA64_OPND_AR_PFS,	/* application register pfs (ar.pfs) */
71     IA64_OPND_C1,	/* the constant 1 */
72     IA64_OPND_C8,	/* the constant 8 */
73     IA64_OPND_C16,	/* the constant 16 */
74     IA64_OPND_GR0,	/* gr0 */
75     IA64_OPND_IP,	/* instruction pointer (ip) */
76     IA64_OPND_PR,	/* predicate register (pr) */
77     IA64_OPND_PR_ROT,	/* rotating predicate register (pr.rot) */
78     IA64_OPND_PSR,	/* processor status register (psr) */
79     IA64_OPND_PSR_L,	/* processor status register L (psr.l) */
80     IA64_OPND_PSR_UM,	/* processor status register UM (psr.um) */
81 
82     /* register operands: */
83     IA64_OPND_AR3,	/* third application register # (bits 20-26) */
84     IA64_OPND_B1,	/* branch register # (bits 6-8) */
85     IA64_OPND_B2,	/* branch register # (bits 13-15) */
86     IA64_OPND_CR3,	/* third control register # (bits 20-26) */
87     IA64_OPND_F1,	/* first floating-point register # */
88     IA64_OPND_F2,	/* second floating-point register # */
89     IA64_OPND_F3,	/* third floating-point register # */
90     IA64_OPND_F4,	/* fourth floating-point register # */
91     IA64_OPND_P1,	/* first predicate # */
92     IA64_OPND_P2,	/* second predicate # */
93     IA64_OPND_R1,	/* first register # */
94     IA64_OPND_R2,	/* second register # */
95     IA64_OPND_R3,	/* third register # */
96     IA64_OPND_R3_2,	/* third register # (limited to gr0-gr3) */
97 
98     /* memory operands: */
99     IA64_OPND_MR3,	/* memory at addr of third register # */
100 
101     /* indirect operands: */
102     IA64_OPND_CPUID_R3,	/* cpuid[reg] */
103     IA64_OPND_DBR_R3,	/* dbr[reg] */
104     IA64_OPND_DTR_R3,	/* dtr[reg] */
105     IA64_OPND_ITR_R3,	/* itr[reg] */
106     IA64_OPND_IBR_R3,	/* ibr[reg] */
107     IA64_OPND_MSR_R3,	/* msr[reg] */
108     IA64_OPND_PKR_R3,	/* pkr[reg] */
109     IA64_OPND_PMC_R3,	/* pmc[reg] */
110     IA64_OPND_PMD_R3,	/* pmd[reg] */
111     IA64_OPND_RR_R3,	/* rr[reg] */
112 
113     /* immediate operands: */
114     IA64_OPND_CCNT5,	/* 5-bit count (31 - bits 20-24) */
115     IA64_OPND_CNT2a,	/* 2-bit count (1 + bits 27-28) */
116     IA64_OPND_CNT2b,	/* 2-bit count (bits 27-28): 1, 2, 3 */
117     IA64_OPND_CNT2c,	/* 2-bit count (bits 30-31): 0, 7, 15, or 16 */
118     IA64_OPND_CNT5,	/* 5-bit count (bits 14-18) */
119     IA64_OPND_CNT6,	/* 6-bit count (bits 27-32) */
120     IA64_OPND_CPOS6a,	/* 6-bit count (63 - bits 20-25) */
121     IA64_OPND_CPOS6b,	/* 6-bit count (63 - bits 14-19) */
122     IA64_OPND_CPOS6c,	/* 6-bit count (63 - bits 31-36) */
123     IA64_OPND_IMM1,	/* signed 1-bit immediate (bit 36) */
124     IA64_OPND_IMMU2,	/* unsigned 2-bit immediate (bits 13-14) */
125     IA64_OPND_IMMU5b,	/* unsigned 5-bit immediate (32 + bits 14-18) */
126     IA64_OPND_IMMU7a,	/* unsigned 7-bit immediate (bits 13-19) */
127     IA64_OPND_IMMU7b,	/* unsigned 7-bit immediate (bits 20-26) */
128     IA64_OPND_SOF,	/* 8-bit stack frame size */
129     IA64_OPND_SOL,	/* 8-bit size of locals */
130     IA64_OPND_SOR,	/* 6-bit number of rotating registers (scaled by 8) */
131     IA64_OPND_IMM8,	/* signed 8-bit immediate (bits 13-19 & 36) */
132     IA64_OPND_IMM8U4,	/* cmp4*u signed 8-bit immediate (bits 13-19 & 36) */
133     IA64_OPND_IMM8M1,	/* signed 8-bit immediate -1 (bits 13-19 & 36) */
134     IA64_OPND_IMM8M1U4,	/* cmp4*u signed 8-bit immediate -1 (bits 13-19 & 36)*/
135     IA64_OPND_IMM8M1U8,	/* cmp*u signed 8-bit immediate -1 (bits 13-19 & 36) */
136     IA64_OPND_IMMU9,	/* unsigned 9-bit immediate (bits 33-34, 20-26) */
137     IA64_OPND_IMM9a,	/* signed 9-bit immediate (bits 6-12, 27, 36) */
138     IA64_OPND_IMM9b,	/* signed 9-bit immediate (bits 13-19, 27, 36) */
139     IA64_OPND_IMM14,	/* signed 14-bit immediate (bits 13-19, 27-32, 36) */
140     IA64_OPND_IMM17,	/* signed 17-bit immediate (2*bits 6-12, 24-31, 36) */
141     IA64_OPND_IMMU21,	/* unsigned 21-bit immediate (bits 6-25, 36) */
142     IA64_OPND_IMM22,	/* signed 22-bit immediate (bits 13-19, 22-36) */
143     IA64_OPND_IMMU24,	/* unsigned 24-bit immediate (bits 6-26, 31-32, 36) */
144     IA64_OPND_IMM44,	/* signed 44-bit immediate (2^16*bits 6-32, 36) */
145     IA64_OPND_IMMU62,	/* unsigned 62-bit immediate */
146     IA64_OPND_IMMU64,	/* unsigned 64-bit immediate (lotsa bits...) */
147     IA64_OPND_INC3,	/* signed 3-bit (bits 13-15): +/-1, 4, 8, 16 */
148     IA64_OPND_LEN4,	/* 4-bit count (bits 27-30 + 1) */
149     IA64_OPND_LEN6,	/* 6-bit count (bits 27-32 + 1) */
150     IA64_OPND_MBTYPE4,	/* 4-bit mux type (bits 20-23) */
151     IA64_OPND_MHTYPE8,	/* 8-bit mux type (bits 20-27) */
152     IA64_OPND_POS6,	/* 6-bit count (bits 14-19) */
153     IA64_OPND_TAG13,	/* signed 13-bit tag (ip + 16*bits 6-12, 33-34) */
154     IA64_OPND_TAG13b,	/* signed 13-bit tag (ip + 16*bits 24-32) */
155     IA64_OPND_TGT25,	/* signed 25-bit (ip + 16*bits 6-25, 36) */
156     IA64_OPND_TGT25b,	/* signed 25-bit (ip + 16*bits 6-12, 20-32, 36) */
157     IA64_OPND_TGT25c,	/* signed 25-bit (ip + 16*bits 13-32, 36) */
158     IA64_OPND_TGT64,    /* 64-bit (ip + 16*bits 13-32, 36, 2-40(L)) */
159     IA64_OPND_LDXMOV,	/* any symbol, generates R_IA64_LDXMOV.  */
160 
161     IA64_OPND_COUNT	/* # of operand types (MUST BE LAST!) */
162   };
163 
164 enum ia64_dependency_mode
165 {
166   IA64_DV_RAW,
167   IA64_DV_WAW,
168   IA64_DV_WAR,
169 };
170 
171 enum ia64_dependency_semantics
172 {
173   IA64_DVS_NONE,
174   IA64_DVS_IMPLIED,
175   IA64_DVS_IMPLIEDF,
176   IA64_DVS_DATA,
177   IA64_DVS_INSTR,
178   IA64_DVS_SPECIFIC,
179   IA64_DVS_STOP,
180   IA64_DVS_OTHER,
181 };
182 
183 enum ia64_resource_specifier
184 {
185   IA64_RS_ANY,
186   IA64_RS_AR_K,
187   IA64_RS_AR_UNAT,
188   IA64_RS_AR, /* 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111 */
189   IA64_RS_ARb, /* 48-63, 112-127 */
190   IA64_RS_BR,
191   IA64_RS_CFM,
192   IA64_RS_CPUID,
193   IA64_RS_CR_IRR,
194   IA64_RS_CR_LRR,
195   IA64_RS_CR, /* 3-7,10-15,18,26-63,75-79,82-127 */
196   IA64_RS_DBR,
197   IA64_RS_FR,
198   IA64_RS_FRb,
199   IA64_RS_GR0,
200   IA64_RS_GR,
201   IA64_RS_IBR,
202   IA64_RS_INSERVICE, /* CR[EOI] or CR[IVR] */
203   IA64_RS_MSR,
204   IA64_RS_PKR,
205   IA64_RS_PMC,
206   IA64_RS_PMD,
207   IA64_RS_PR,  /* non-rotating, 1-15 */
208   IA64_RS_PRr, /* rotating, 16-62 */
209   IA64_RS_PR63,
210   IA64_RS_RR,
211 
212   IA64_RS_ARX, /* ARs not in RS_AR or RS_ARb */
213   IA64_RS_CRX, /* CRs not in RS_CR */
214   IA64_RS_PSR, /* PSR bits */
215   IA64_RS_RSE, /* implementation-specific RSE resources */
216   IA64_RS_AR_FPSR,
217 };
218 
219 enum ia64_rse_resource
220 {
221   IA64_RSE_N_STACKED_PHYS,
222   IA64_RSE_BOF,
223   IA64_RSE_STORE_REG,
224   IA64_RSE_LOAD_REG,
225   IA64_RSE_BSPLOAD,
226   IA64_RSE_RNATBITINDEX,
227   IA64_RSE_CFLE,
228   IA64_RSE_NDIRTY,
229 };
230 
231 /* Information about a given resource dependency */
232 struct ia64_dependency
233 {
234   /* Name of the resource */
235   const char *name;
236   /* Does this dependency need further specification? */
237   enum ia64_resource_specifier specifier;
238   /* Mode of dependency */
239   enum ia64_dependency_mode mode;
240   /* Dependency semantics */
241   enum ia64_dependency_semantics semantics;
242   /* Register index, if applicable (distinguishes AR, CR, and PSR deps) */
243 #define REG_NONE (-1)
244   int regindex;
245   /* Special info on semantics */
246   const char *info;
247 };
248 
249 /* Two arrays of indexes into the ia64_dependency table.
250    chks are dependencies to check for conflicts when an opcode is
251    encountered; regs are dependencies to register (mark as used) when an
252    opcode is used.  chks correspond to readers (RAW) or writers (WAW or
253    WAR) of a resource, while regs correspond to writers (RAW or WAW) and
254    readers (WAR) of a resource.  */
255 struct ia64_opcode_dependency
256 {
257   int nchks;
258   const unsigned short *chks;
259   int nregs;
260   const unsigned short *regs;
261 };
262 
263 /* encode/extract the note/index for a dependency */
264 #define RDEP(N,X) (((N)<<11)|(X))
265 #define NOTE(X) (((X)>>11)&0x1F)
266 #define DEP(X) ((X)&0x7FF)
267 
268 /* A template descriptor describes the execution units that are active
269    for each of the three slots.  It also specifies the location of
270    instruction group boundaries that may be present between two slots.  */
271 struct ia64_templ_desc
272   {
273     int group_boundary;	/* 0=no boundary, 1=between slot 0 & 1, etc. */
274     enum ia64_unit exec_unit[3];
275     const char *name;
276   };
277 
278 /* The opcode table is an array of struct ia64_opcode.  */
279 
280 struct ia64_opcode
281   {
282     /* The opcode name.  */
283     const char *name;
284 
285     /* The type of the instruction: */
286     enum ia64_insn_type type;
287 
288     /* Number of output operands: */
289     int num_outputs;
290 
291     /* The opcode itself.  Those bits which will be filled in with
292        operands are zeroes.  */
293     ia64_insn opcode;
294 
295     /* The opcode mask.  This is used by the disassembler.  This is a
296        mask containing ones indicating those bits which must match the
297        opcode field, and zeroes indicating those bits which need not
298        match (and are presumably filled in by operands).  */
299     ia64_insn mask;
300 
301     /* An array of operand codes.  Each code is an index into the
302        operand table.  They appear in the order which the operands must
303        appear in assembly code, and are terminated by a zero.  */
304     enum ia64_opnd operands[5];
305 
306     /* One bit flags for the opcode.  These are primarily used to
307        indicate specific processors and environments support the
308        instructions.  The defined values are listed below. */
309     unsigned int flags;
310 
311     /* Used by ia64_find_next_opcode (). */
312     short ent_index;
313 
314     /* Opcode dependencies. */
315     const struct ia64_opcode_dependency *dependencies;
316   };
317 
318 /* Values defined for the flags field of a struct ia64_opcode.  */
319 
320 #define IA64_OPCODE_FIRST	(1<<0)	/* must be first in an insn group */
321 #define IA64_OPCODE_X_IN_MLX	(1<<1)	/* insn is allowed in X slot of MLX */
322 #define IA64_OPCODE_LAST	(1<<2)	/* must be last in an insn group */
323 #define IA64_OPCODE_PRIV	(1<<3)	/* privileged instruct */
324 #define IA64_OPCODE_SLOT2	(1<<4)	/* insn allowed in slot 2 only */
325 #define IA64_OPCODE_NO_PRED	(1<<5)	/* insn cannot be predicated */
326 #define IA64_OPCODE_PSEUDO	(1<<6)	/* insn is a pseudo-op */
327 #define IA64_OPCODE_F2_EQ_F3	(1<<7)	/* constraint: F2 == F3 */
328 #define IA64_OPCODE_LEN_EQ_64MCNT	(1<<8)	/* constraint: LEN == 64-CNT */
329 #define IA64_OPCODE_MOD_RRBS    (1<<9)	/* modifies all rrbs in CFM */
330 #define IA64_OPCODE_POSTINC	(1<<10)	/* postincrement MR3 operand */
331 
332 /* A macro to extract the major opcode from an instruction.  */
333 #define IA64_OP(i)	(((i) >> 37) & 0xf)
334 
335 enum ia64_operand_class
336   {
337     IA64_OPND_CLASS_CST,	/* constant */
338     IA64_OPND_CLASS_REG,	/* register */
339     IA64_OPND_CLASS_IND,	/* indirect register */
340     IA64_OPND_CLASS_ABS,	/* absolute value */
341     IA64_OPND_CLASS_REL,	/* IP-relative value */
342   };
343 
344 /* The operands table is an array of struct ia64_operand.  */
345 
346 struct ia64_operand
347 {
348   enum ia64_operand_class class;
349 
350   /* Set VALUE as the operand bits for the operand of type SELF in the
351      instruction pointed to by CODE.  If an error occurs, *CODE is not
352      modified and the returned string describes the cause of the
353      error.  If no error occurs, NULL is returned.  */
354   const char *(*insert) (const struct ia64_operand *self, ia64_insn value,
355 			 ia64_insn *code);
356 
357   /* Extract the operand bits for an operand of type SELF from
358      instruction CODE store them in *VALUE.  If an error occurs, the
359      cause of the error is described by the string returned.  If no
360      error occurs, NULL is returned.  */
361   const char *(*extract) (const struct ia64_operand *self, ia64_insn code,
362 			  ia64_insn *value);
363 
364   /* A string whose meaning depends on the operand class.  */
365 
366   const char *str;
367 
368   struct bit_field
369     {
370       /* The number of bits in the operand.  */
371       int bits;
372 
373       /* How far the operand is left shifted in the instruction.  */
374       int shift;
375     }
376   field[4];		/* no operand has more than this many bit-fields */
377 
378   unsigned int flags;
379 
380   const char *desc;	/* brief description */
381 };
382 
383 /* Values defined for the flags field of a struct ia64_operand.  */
384 
385 /* Disassemble as signed decimal (instead of hex): */
386 #define IA64_OPND_FLAG_DECIMAL_SIGNED	(1<<0)
387 /* Disassemble as unsigned decimal (instead of hex): */
388 #define IA64_OPND_FLAG_DECIMAL_UNSIGNED	(1<<1)
389 
390 #define NELEMS(a)	((int) (sizeof (a) / sizeof (a[0])))
391 
392 static const char*
ins_rsvd(const struct ia64_operand * self ATTRIBUTE_UNUSED,ia64_insn value ATTRIBUTE_UNUSED,ia64_insn * code ATTRIBUTE_UNUSED)393 ins_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
394 	  ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
395 {
396   return "internal error---this shouldn't happen";
397 }
398 
399 static const char*
ext_rsvd(const struct ia64_operand * self ATTRIBUTE_UNUSED,ia64_insn code ATTRIBUTE_UNUSED,ia64_insn * valuep ATTRIBUTE_UNUSED)400 ext_rsvd (const struct ia64_operand *self ATTRIBUTE_UNUSED,
401 	  ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
402 {
403   return "internal error---this shouldn't happen";
404 }
405 
406 static const char*
ins_const(const struct ia64_operand * self ATTRIBUTE_UNUSED,ia64_insn value ATTRIBUTE_UNUSED,ia64_insn * code ATTRIBUTE_UNUSED)407 ins_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
408 	   ia64_insn value ATTRIBUTE_UNUSED, ia64_insn *code ATTRIBUTE_UNUSED)
409 {
410   return 0;
411 }
412 
413 static const char*
ext_const(const struct ia64_operand * self ATTRIBUTE_UNUSED,ia64_insn code ATTRIBUTE_UNUSED,ia64_insn * valuep ATTRIBUTE_UNUSED)414 ext_const (const struct ia64_operand *self ATTRIBUTE_UNUSED,
415 	   ia64_insn code ATTRIBUTE_UNUSED, ia64_insn *valuep ATTRIBUTE_UNUSED)
416 {
417   return 0;
418 }
419 
420 static const char*
ins_reg(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)421 ins_reg (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
422 {
423   if (value >= 1u << self->field[0].bits)
424     return "register number out of range";
425 
426   *code |= value << self->field[0].shift;
427   return 0;
428 }
429 
430 static const char*
ext_reg(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)431 ext_reg (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
432 {
433   *valuep = ((code >> self->field[0].shift)
434 	     & ((1u << self->field[0].bits) - 1));
435   return 0;
436 }
437 
438 static const char*
ins_immu(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)439 ins_immu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
440 {
441   ia64_insn new = 0;
442   int i;
443 
444   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
445     {
446       new |= ((value & ((((ia64_insn) 1) << self->field[i].bits) - 1))
447 	      << self->field[i].shift);
448       value >>= self->field[i].bits;
449     }
450   if (value)
451     return "integer operand out of range";
452 
453   *code |= new;
454   return 0;
455 }
456 
457 static const char*
ext_immu(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)458 ext_immu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
459 {
460   uint64_t value = 0;
461   int i, bits = 0, total = 0;
462 
463   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
464     {
465       bits = self->field[i].bits;
466       value |= ((code >> self->field[i].shift)
467 		& ((((uint64_t) 1) << bits) - 1)) << total;
468       total += bits;
469     }
470   *valuep = value;
471   return 0;
472 }
473 
474 static const char*
ins_immu5b(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)475 ins_immu5b (const struct ia64_operand *self, ia64_insn value,
476 	    ia64_insn *code)
477 {
478   if (value < 32 || value > 63)
479     return "value must be between 32 and 63";
480   return ins_immu (self, value - 32, code);
481 }
482 
483 static const char*
ext_immu5b(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)484 ext_immu5b (const struct ia64_operand *self, ia64_insn code,
485 	    ia64_insn *valuep)
486 {
487   const char *result;
488 
489   result = ext_immu (self, code, valuep);
490   if (result)
491     return result;
492 
493   *valuep = *valuep + 32;
494   return 0;
495 }
496 
497 static const char*
ins_immus8(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)498 ins_immus8 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
499 {
500   if (value & 0x7)
501     return "value not an integer multiple of 8";
502   return ins_immu (self, value >> 3, code);
503 }
504 
505 static const char*
ext_immus8(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)506 ext_immus8 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
507 {
508   const char *result;
509 
510   result = ext_immu (self, code, valuep);
511   if (result)
512     return result;
513 
514   *valuep = *valuep << 3;
515   return 0;
516 }
517 
518 static const char*
ins_imms_scaled(const struct ia64_operand * self,ia64_insn value,ia64_insn * code,int scale)519 ins_imms_scaled (const struct ia64_operand *self, ia64_insn value,
520 		 ia64_insn *code, int scale)
521 {
522   int64_t svalue = value, sign_bit = 0;
523   ia64_insn new = 0;
524   int i;
525 
526   svalue >>= scale;
527 
528   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
529     {
530       new |= ((svalue & ((((ia64_insn) 1) << self->field[i].bits) - 1))
531 	      << self->field[i].shift);
532       sign_bit = (svalue >> (self->field[i].bits - 1)) & 1;
533       svalue >>= self->field[i].bits;
534     }
535   if ((!sign_bit && svalue != 0) || (sign_bit && svalue != -1))
536     return "integer operand out of range";
537 
538   *code |= new;
539   return 0;
540 }
541 
542 static const char*
ext_imms_scaled(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep,int scale)543 ext_imms_scaled (const struct ia64_operand *self, ia64_insn code,
544 		 ia64_insn *valuep, int scale)
545 {
546   int i, bits = 0, total = 0;
547   int64_t val = 0, sign;
548 
549   for (i = 0; i < NELEMS (self->field) && self->field[i].bits; ++i)
550     {
551       bits = self->field[i].bits;
552       val |= ((code >> self->field[i].shift)
553 	      & ((((uint64_t) 1) << bits) - 1)) << total;
554       total += bits;
555     }
556   /* sign extend: */
557   sign = (int64_t) 1 << (total - 1);
558   val = (val ^ sign) - sign;
559 
560   *valuep = (val << scale);
561   return 0;
562 }
563 
564 static const char*
ins_imms(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)565 ins_imms (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
566 {
567   return ins_imms_scaled (self, value, code, 0);
568 }
569 
570 static const char*
ins_immsu4(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)571 ins_immsu4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
572 {
573   value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
574 
575   return ins_imms_scaled (self, value, code, 0);
576 }
577 
578 static const char*
ext_imms(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)579 ext_imms (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
580 {
581   return ext_imms_scaled (self, code, valuep, 0);
582 }
583 
584 static const char*
ins_immsm1(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)585 ins_immsm1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
586 {
587   --value;
588   return ins_imms_scaled (self, value, code, 0);
589 }
590 
591 static const char*
ins_immsm1u4(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)592 ins_immsm1u4 (const struct ia64_operand *self, ia64_insn value,
593 	      ia64_insn *code)
594 {
595   value = ((value & 0xffffffff) ^ 0x80000000) - 0x80000000;
596 
597   --value;
598   return ins_imms_scaled (self, value, code, 0);
599 }
600 
601 static const char*
ext_immsm1(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)602 ext_immsm1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
603 {
604   const char *res = ext_imms_scaled (self, code, valuep, 0);
605 
606   ++*valuep;
607   return res;
608 }
609 
610 static const char*
ins_imms1(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)611 ins_imms1 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
612 {
613   return ins_imms_scaled (self, value, code, 1);
614 }
615 
616 static const char*
ext_imms1(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)617 ext_imms1 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
618 {
619   return ext_imms_scaled (self, code, valuep, 1);
620 }
621 
622 static const char*
ins_imms4(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)623 ins_imms4 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
624 {
625   return ins_imms_scaled (self, value, code, 4);
626 }
627 
628 static const char*
ext_imms4(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)629 ext_imms4 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
630 {
631   return ext_imms_scaled (self, code, valuep, 4);
632 }
633 
634 static const char*
ins_imms16(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)635 ins_imms16 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
636 {
637   return ins_imms_scaled (self, value, code, 16);
638 }
639 
640 static const char*
ext_imms16(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)641 ext_imms16 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
642 {
643   return ext_imms_scaled (self, code, valuep, 16);
644 }
645 
646 static const char*
ins_cimmu(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)647 ins_cimmu (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
648 {
649   ia64_insn mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
650   return ins_immu (self, value ^ mask, code);
651 }
652 
653 static const char*
ext_cimmu(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)654 ext_cimmu (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
655 {
656   const char *result;
657   ia64_insn mask;
658 
659   mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
660   result = ext_immu (self, code, valuep);
661   if (!result)
662     {
663       mask = (((ia64_insn) 1) << self->field[0].bits) - 1;
664       *valuep ^= mask;
665     }
666   return result;
667 }
668 
669 static const char*
ins_cnt(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)670 ins_cnt (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
671 {
672   --value;
673   if (value >= ((uint64_t) 1) << self->field[0].bits)
674     return "count out of range";
675 
676   *code |= value << self->field[0].shift;
677   return 0;
678 }
679 
680 static const char*
ext_cnt(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)681 ext_cnt (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
682 {
683   *valuep = ((code >> self->field[0].shift)
684 	     & ((((uint64_t) 1) << self->field[0].bits) - 1)) + 1;
685   return 0;
686 }
687 
688 static const char*
ins_cnt2b(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)689 ins_cnt2b (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
690 {
691   --value;
692 
693   if (value > 2)
694     return "count must be in range 1..3";
695 
696   *code |= value << self->field[0].shift;
697   return 0;
698 }
699 
700 static const char*
ext_cnt2b(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)701 ext_cnt2b (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
702 {
703   *valuep = ((code >> self->field[0].shift) & 0x3) + 1;
704   return 0;
705 }
706 
707 static const char*
ins_cnt2c(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)708 ins_cnt2c (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
709 {
710   switch (value)
711     {
712     case 0:	value = 0; break;
713     case 7:	value = 1; break;
714     case 15:	value = 2; break;
715     case 16:	value = 3; break;
716     default:	return "count must be 0, 7, 15, or 16";
717     }
718   *code |= value << self->field[0].shift;
719   return 0;
720 }
721 
722 static const char*
ext_cnt2c(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)723 ext_cnt2c (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
724 {
725   ia64_insn value;
726 
727   value = (code >> self->field[0].shift) & 0x3;
728   switch (value)
729     {
730     case 0: value =  0; break;
731     case 1: value =  7; break;
732     case 2: value = 15; break;
733     case 3: value = 16; break;
734     }
735   *valuep = value;
736   return 0;
737 }
738 
739 static const char*
ins_inc3(const struct ia64_operand * self,ia64_insn value,ia64_insn * code)740 ins_inc3 (const struct ia64_operand *self, ia64_insn value, ia64_insn *code)
741 {
742   int64_t val = value;
743   uint64_t sign = 0;
744 
745   if (val < 0)
746     {
747       sign = 0x4;
748       value = -value;
749     }
750   switch (value)
751     {
752     case  1:	value = 3; break;
753     case  4:	value = 2; break;
754     case  8:	value = 1; break;
755     case 16:	value = 0; break;
756     default:	return "count must be +/- 1, 4, 8, or 16";
757     }
758   *code |= (sign | value) << self->field[0].shift;
759   return 0;
760 }
761 
762 static const char*
ext_inc3(const struct ia64_operand * self,ia64_insn code,ia64_insn * valuep)763 ext_inc3 (const struct ia64_operand *self, ia64_insn code, ia64_insn *valuep)
764 {
765   int64_t val;
766   int negate;
767 
768   val = (code >> self->field[0].shift) & 0x7;
769   negate = val & 0x4;
770   switch (val & 0x3)
771     {
772     case 0: val = 16; break;
773     case 1: val =  8; break;
774     case 2: val =  4; break;
775     case 3: val =  1; break;
776     }
777   if (negate)
778     val = -val;
779 
780   *valuep = val;
781   return 0;
782 }
783 
784 #define CST	IA64_OPND_CLASS_CST
785 #define REG	IA64_OPND_CLASS_REG
786 #define IND	IA64_OPND_CLASS_IND
787 #define ABS	IA64_OPND_CLASS_ABS
788 #define REL	IA64_OPND_CLASS_REL
789 
790 #define SDEC	IA64_OPND_FLAG_DECIMAL_SIGNED
791 #define UDEC	IA64_OPND_FLAG_DECIMAL_UNSIGNED
792 
793 const struct ia64_operand elf64_ia64_operands[IA64_OPND_COUNT] =
794   {
795     /* constants: */
796     { CST, ins_const, ext_const, "NIL",		{{ 0, 0}}, 0, "<none>" },
797     { CST, ins_const, ext_const, "ar.csd",	{{ 0, 0}}, 0, "ar.csd" },
798     { CST, ins_const, ext_const, "ar.ccv",	{{ 0, 0}}, 0, "ar.ccv" },
799     { CST, ins_const, ext_const, "ar.pfs",	{{ 0, 0}}, 0, "ar.pfs" },
800     { CST, ins_const, ext_const, "1",		{{ 0, 0}}, 0, "1" },
801     { CST, ins_const, ext_const, "8",		{{ 0, 0}}, 0, "8" },
802     { CST, ins_const, ext_const, "16",		{{ 0, 0}}, 0, "16" },
803     { CST, ins_const, ext_const, "r0",		{{ 0, 0}}, 0, "r0" },
804     { CST, ins_const, ext_const, "ip",		{{ 0, 0}}, 0, "ip" },
805     { CST, ins_const, ext_const, "pr",		{{ 0, 0}}, 0, "pr" },
806     { CST, ins_const, ext_const, "pr.rot",	{{ 0, 0}}, 0, "pr.rot" },
807     { CST, ins_const, ext_const, "psr",		{{ 0, 0}}, 0, "psr" },
808     { CST, ins_const, ext_const, "psr.l",	{{ 0, 0}}, 0, "psr.l" },
809     { CST, ins_const, ext_const, "psr.um",	{{ 0, 0}}, 0, "psr.um" },
810 
811     /* register operands: */
812     { REG, ins_reg,   ext_reg,	"ar", {{ 7, 20}}, 0,		/* AR3 */
813       "an application register" },
814     { REG, ins_reg,   ext_reg,	 "b", {{ 3,  6}}, 0,		/* B1 */
815       "a branch register" },
816     { REG, ins_reg,   ext_reg,	 "b", {{ 3, 13}}, 0,		/* B2 */
817       "a branch register"},
818     { REG, ins_reg,   ext_reg,	"cr", {{ 7, 20}}, 0,		/* CR */
819       "a control register"},
820     { REG, ins_reg,   ext_reg,	 "f", {{ 7,  6}}, 0,		/* F1 */
821       "a floating-point register" },
822     { REG, ins_reg,   ext_reg,	 "f", {{ 7, 13}}, 0,		/* F2 */
823       "a floating-point register" },
824     { REG, ins_reg,   ext_reg,	 "f", {{ 7, 20}}, 0,		/* F3 */
825       "a floating-point register" },
826     { REG, ins_reg,   ext_reg,	 "f", {{ 7, 27}}, 0,		/* F4 */
827       "a floating-point register" },
828     { REG, ins_reg,   ext_reg,	 "p", {{ 6,  6}}, 0,		/* P1 */
829       "a predicate register" },
830     { REG, ins_reg,   ext_reg,	 "p", {{ 6, 27}}, 0,		/* P2 */
831       "a predicate register" },
832     { REG, ins_reg,   ext_reg,	 "r", {{ 7,  6}}, 0,		/* R1 */
833       "a general register" },
834     { REG, ins_reg,   ext_reg,	 "r", {{ 7, 13}}, 0,		/* R2 */
835       "a general register" },
836     { REG, ins_reg,   ext_reg,	 "r", {{ 7, 20}}, 0,		/* R3 */
837       "a general register" },
838     { REG, ins_reg,   ext_reg,	 "r", {{ 2, 20}}, 0,		/* R3_2 */
839       "a general register r0-r3" },
840 
841     /* memory operands: */
842     { IND, ins_reg,   ext_reg,	"",      {{7, 20}}, 0,		/* MR3 */
843       "a memory address" },
844 
845     /* indirect operands: */
846     { IND, ins_reg,   ext_reg,	"cpuid", {{7, 20}}, 0,		/* CPUID_R3 */
847       "a cpuid register" },
848     { IND, ins_reg,   ext_reg,	"dbr",   {{7, 20}}, 0,		/* DBR_R3 */
849       "a dbr register" },
850     { IND, ins_reg,   ext_reg,	"dtr",   {{7, 20}}, 0,		/* DTR_R3 */
851       "a dtr register" },
852     { IND, ins_reg,   ext_reg,	"itr",   {{7, 20}}, 0,		/* ITR_R3 */
853       "an itr register" },
854     { IND, ins_reg,   ext_reg,	"ibr",   {{7, 20}}, 0,		/* IBR_R3 */
855       "an ibr register" },
856     { IND, ins_reg,   ext_reg,	"msr",   {{7, 20}}, 0,		/* MSR_R3 */
857       "an msr register" },
858     { IND, ins_reg,   ext_reg,	"pkr",   {{7, 20}}, 0,		/* PKR_R3 */
859       "a pkr register" },
860     { IND, ins_reg,   ext_reg,	"pmc",   {{7, 20}}, 0,		/* PMC_R3 */
861       "a pmc register" },
862     { IND, ins_reg,   ext_reg,	"pmd",   {{7, 20}}, 0,		/* PMD_R3 */
863       "a pmd register" },
864     { IND, ins_reg,   ext_reg,	"rr",    {{7, 20}}, 0,		/* RR_R3 */
865       "an rr register" },
866 
867     /* immediate operands: */
868     { ABS, ins_cimmu, ext_cimmu, 0, {{ 5, 20 }}, UDEC,		/* CCNT5 */
869       "a 5-bit count (0-31)" },
870     { ABS, ins_cnt,   ext_cnt,   0, {{ 2, 27 }}, UDEC,		/* CNT2a */
871       "a 2-bit count (1-4)" },
872     { ABS, ins_cnt2b, ext_cnt2b, 0, {{ 2, 27 }}, UDEC,		/* CNT2b */
873       "a 2-bit count (1-3)" },
874     { ABS, ins_cnt2c, ext_cnt2c, 0, {{ 2, 30 }}, UDEC,		/* CNT2c */
875       "a count (0, 7, 15, or 16)" },
876     { ABS, ins_immu,  ext_immu,  0, {{ 5, 14}}, UDEC,		/* CNT5 */
877       "a 5-bit count (0-31)" },
878     { ABS, ins_immu,  ext_immu,  0, {{ 6, 27}}, UDEC,		/* CNT6 */
879       "a 6-bit count (0-63)" },
880     { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 20}}, UDEC,		/* CPOS6a */
881       "a 6-bit bit pos (0-63)" },
882     { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 14}}, UDEC,		/* CPOS6b */
883       "a 6-bit bit pos (0-63)" },
884     { ABS, ins_cimmu, ext_cimmu, 0, {{ 6, 31}}, UDEC,		/* CPOS6c */
885       "a 6-bit bit pos (0-63)" },
886     { ABS, ins_imms,  ext_imms,  0, {{ 1, 36}}, SDEC,		/* IMM1 */
887       "a 1-bit integer (-1, 0)" },
888     { ABS, ins_immu,  ext_immu,  0, {{ 2, 13}}, UDEC,		/* IMMU2 */
889       "a 2-bit unsigned (0-3)" },
890     { ABS, ins_immu5b,  ext_immu5b,  0, {{ 5, 14}}, UDEC,	/* IMMU5b */
891       "a 5-bit unsigned (32 + (0-31))" },
892     { ABS, ins_immu,  ext_immu,  0, {{ 7, 13}}, 0,		/* IMMU7a */
893       "a 7-bit unsigned (0-127)" },
894     { ABS, ins_immu,  ext_immu,  0, {{ 7, 20}}, 0,		/* IMMU7b */
895       "a 7-bit unsigned (0-127)" },
896     { ABS, ins_immu,  ext_immu,  0, {{ 7, 13}}, UDEC,		/* SOF */
897       "a frame size (register count)" },
898     { ABS, ins_immu,  ext_immu,  0, {{ 7, 20}}, UDEC,		/* SOL */
899       "a local register count" },
900     { ABS, ins_immus8,ext_immus8,0, {{ 4, 27}}, UDEC,		/* SOR */
901       "a rotating register count (integer multiple of 8)" },
902     { ABS, ins_imms,  ext_imms,  0,				/* IMM8 */
903       {{ 7, 13}, { 1, 36}}, SDEC,
904       "an 8-bit integer (-128-127)" },
905     { ABS, ins_immsu4,  ext_imms,  0,				/* IMM8U4 */
906       {{ 7, 13}, { 1, 36}}, SDEC,
907       "an 8-bit signed integer for 32-bit unsigned compare (-128-127)" },
908     { ABS, ins_immsm1,  ext_immsm1,  0,				/* IMM8M1 */
909       {{ 7, 13}, { 1, 36}}, SDEC,
910       "an 8-bit integer (-127-128)" },
911     { ABS, ins_immsm1u4,  ext_immsm1,  0,			/* IMM8M1U4 */
912       {{ 7, 13}, { 1, 36}}, SDEC,
913       "an 8-bit integer for 32-bit unsigned compare (-127-(-1),1-128,0x100000000)" },
914     { ABS, ins_immsm1,  ext_immsm1,  0,				/* IMM8M1U8 */
915       {{ 7, 13}, { 1, 36}}, SDEC,
916       "an 8-bit integer for 64-bit unsigned compare (-127-(-1),1-128,0x10000000000000000)" },
917     { ABS, ins_immu,  ext_immu,  0, {{ 2, 33}, { 7, 20}}, 0,	/* IMMU9 */
918       "a 9-bit unsigned (0-511)" },
919     { ABS, ins_imms,  ext_imms,  0,				/* IMM9a */
920       {{ 7,  6}, { 1, 27}, { 1, 36}}, SDEC,
921       "a 9-bit integer (-256-255)" },
922     { ABS, ins_imms,  ext_imms, 0,				/* IMM9b */
923       {{ 7, 13}, { 1, 27}, { 1, 36}}, SDEC,
924       "a 9-bit integer (-256-255)" },
925     { ABS, ins_imms,  ext_imms, 0,				/* IMM14 */
926       {{ 7, 13}, { 6, 27}, { 1, 36}}, SDEC,
927       "a 14-bit integer (-8192-8191)" },
928     { ABS, ins_imms1, ext_imms1, 0,				/* IMM17 */
929       {{ 7,  6}, { 8, 24}, { 1, 36}}, 0,
930       "a 17-bit integer (-65536-65535)" },
931     { ABS, ins_immu,  ext_immu,  0, {{20,  6}, { 1, 36}}, 0,	/* IMMU21 */
932       "a 21-bit unsigned" },
933     { ABS, ins_imms,  ext_imms,  0,				/* IMM22 */
934       {{ 7, 13}, { 9, 27}, { 5, 22}, { 1, 36}}, SDEC,
935       "a 22-bit signed integer" },
936     { ABS, ins_immu,  ext_immu,  0,				/* IMMU24 */
937       {{21,  6}, { 2, 31}, { 1, 36}}, 0,
938       "a 24-bit unsigned" },
939     { ABS, ins_imms16,ext_imms16,0, {{27,  6}, { 1, 36}}, 0,	/* IMM44 */
940       "a 44-bit unsigned (least 16 bits ignored/zeroes)" },
941     { ABS, ins_rsvd,  ext_rsvd,	0, {{0,  0}}, 0,		/* IMMU62 */
942       "a 62-bit unsigned" },
943     { ABS, ins_rsvd,  ext_rsvd,	0, {{0,  0}}, 0,		/* IMMU64 */
944       "a 64-bit unsigned" },
945     { ABS, ins_inc3,  ext_inc3,  0, {{ 3, 13}}, SDEC,		/* INC3 */
946       "an increment (+/- 1, 4, 8, or 16)" },
947     { ABS, ins_cnt,   ext_cnt,   0, {{ 4, 27}}, UDEC,		/* LEN4 */
948       "a 4-bit length (1-16)" },
949     { ABS, ins_cnt,   ext_cnt,   0, {{ 6, 27}}, UDEC,		/* LEN6 */
950       "a 6-bit length (1-64)" },
951     { ABS, ins_immu,  ext_immu,  0, {{ 4, 20}},	0,		/* MBTYPE4 */
952       "a mix type (@rev, @mix, @shuf, @alt, or @brcst)" },
953     { ABS, ins_immu,  ext_immu,  0, {{ 8, 20}},	0,		/* MBTYPE8 */
954       "an 8-bit mix type" },
955     { ABS, ins_immu,  ext_immu,  0, {{ 6, 14}}, UDEC,		/* POS6 */
956       "a 6-bit bit pos (0-63)" },
957     { REL, ins_imms4, ext_imms4, 0, {{ 7,  6}, { 2, 33}}, 0,	/* TAG13 */
958       "a branch tag" },
959     { REL, ins_imms4, ext_imms4, 0, {{ 9, 24}}, 0,		/* TAG13b */
960       "a branch tag" },
961     { REL, ins_imms4, ext_imms4, 0, {{20,  6}, { 1, 36}}, 0,	/* TGT25 */
962       "a branch target" },
963     { REL, ins_imms4, ext_imms4, 0,				/* TGT25b */
964       {{ 7,  6}, {13, 20}, { 1, 36}}, 0,
965       "a branch target" },
966     { REL, ins_imms4, ext_imms4, 0, {{20, 13}, { 1, 36}}, 0,	/* TGT25c */
967       "a branch target" },
968     { REL, ins_rsvd, ext_rsvd, 0, {{0, 0}}, 0,                  /* TGT64  */
969       "a branch target" },
970 
971     { ABS, ins_const, ext_const, 0, {{0, 0}}, 0,		/* LDXMOV */
972       "ldxmov target" },
973   };
974 
975 
976 /* ia64-asmtab.h -- Header for compacted IA-64 opcode tables.
977    Copyright 1999, 2000 Free Software Foundation, Inc.
978    Contributed by Bob Manson of Cygnus Support <manson@cygnus.com>
979 
980    This file is part of GDB, GAS, and the GNU binutils.
981 
982    GDB, GAS, and the GNU binutils are free software; you can redistribute
983    them and/or modify them under the terms of the GNU General Public
984    License as published by the Free Software Foundation; either version
985    2, or (at your option) any later version.
986 
987    GDB, GAS, and the GNU binutils are distributed in the hope that they
988    will be useful, but WITHOUT ANY WARRANTY; without even the implied
989    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
990    the GNU General Public License for more details.
991 
992    You should have received a copy of the GNU General Public License
993    along with this file; see the file COPYING.  If not, see
994    <http://www.gnu.org/licenses/>. */
995 
996 /* The primary opcode table is made up of the following: */
997 struct ia64_main_table
998 {
999   /* The entry in the string table that corresponds to the name of this
1000      opcode. */
1001   unsigned short name_index;
1002 
1003   /* The type of opcode; corresponds to the TYPE field in
1004      struct ia64_opcode. */
1005   unsigned char opcode_type;
1006 
1007   /* The number of outputs for this opcode. */
1008   unsigned char num_outputs;
1009 
1010   /* The base insn value for this opcode.  It may be modified by completers. */
1011   ia64_insn opcode;
1012 
1013   /* The mask of valid bits in OPCODE. Zeros indicate operand fields. */
1014   ia64_insn mask;
1015 
1016   /* The operands of this instruction.  Corresponds to the OPERANDS field
1017      in struct ia64_opcode. */
1018   unsigned char operands[5];
1019 
1020   /* The flags for this instruction.  Corresponds to the FLAGS field in
1021      struct ia64_opcode. */
1022   short flags;
1023 
1024   /* The tree of completers for this instruction; this is an offset into
1025      completer_table. */
1026   short completers;
1027 };
1028 
1029 /* Each instruction has a set of possible "completers", or additional
1030    suffixes that can alter the instruction's behavior, and which has
1031    potentially different dependencies.
1032 
1033    The completer entries modify certain bits in the instruction opcode.
1034    Which bits are to be modified are marked by the BITS, MASK and
1035    OFFSET fields.  The completer entry may also note dependencies for the
1036    opcode.
1037 
1038    These completers are arranged in a DAG; the pointers are indexes
1039    into the completer_table array.  The completer DAG is searched by
1040    find_completer () and ia64_find_matching_opcode ().
1041 
1042    Note that each completer needs to be applied in turn, so that if we
1043    have the instruction
1044 	cmp.lt.unc
1045    the completer entries for both "lt" and "unc" would need to be applied
1046    to the opcode's value.
1047 
1048    Some instructions do not require any completers; these contain an
1049    empty completer entry.  Instructions that require a completer do
1050    not contain an empty entry.
1051 
1052    Terminal completers (those completers that validly complete an
1053    instruction) are marked by having the TERMINAL_COMPLETER flag set.
1054 
1055    Only dependencies listed in the terminal completer for an opcode are
1056    considered to apply to that opcode instance. */
1057 
1058 struct ia64_completer_table
1059 {
1060   /* The bit value that this completer sets. */
1061   unsigned int bits;
1062 
1063   /* And its mask. 1s are bits that are to be modified in the
1064      instruction. */
1065   unsigned int mask;
1066 
1067   /* The entry in the string table that corresponds to the name of this
1068      completer. */
1069   unsigned short name_index;
1070 
1071   /* An alternative completer, or -1 if this is the end of the chain. */
1072   short alternative;
1073 
1074   /* A pointer to the DAG of completers that can potentially follow
1075      this one, or -1. */
1076   short subentries;
1077 
1078   /* The bit offset in the instruction where BITS and MASK should be
1079      applied. */
1080   unsigned char offset : 7;
1081 
1082   unsigned char terminal_completer : 1;
1083 
1084   /* Index into the dependency list table */
1085   short dependencies;
1086 };
1087 
1088 /* This contains sufficient information for the disassembler to resolve
1089    the complete name of the original instruction.  */
1090 struct ia64_dis_names
1091 {
1092   /* COMPLETER_INDEX represents the tree of completers that make up
1093      the instruction.  The LSB represents the top of the tree for the
1094      specified instruction.
1095 
1096      A 0 bit indicates to go to the next alternate completer via the
1097      alternative field; a 1 bit indicates that the current completer
1098      is part of the instruction, and to go down the subentries index.
1099      We know we've reached the final completer when we run out of 1
1100      bits.
1101 
1102      There is always at least one 1 bit. */
1103   unsigned int completer_index : 20;
1104 
1105   /* The index in the main_table[] array for the instruction. */
1106   unsigned short insn_index : 11;
1107 
1108   /* If set, the next entry in this table is an alternate possibility
1109      for this instruction encoding.  Which one to use is determined by
1110      the instruction type and other factors (see opcode_verify ()).  */
1111   unsigned int next_flag : 1;
1112 
1113   /* The disassembly priority of this entry among instructions. */
1114   unsigned short priority;
1115 };
1116 
1117 static const char * const ia64_strings[] = {
1118   "", "0", "1", "a", "acq", "add", "addl", "addp4", "adds", "alloc", "and",
1119   "andcm", "b", "bias", "br", "break", "brl", "brp", "bsw", "c", "call",
1120   "cexit", "chk", "cloop", "clr", "clrrrb", "cmp", "cmp4", "cmp8xchg16",
1121   "cmpxchg1", "cmpxchg2", "cmpxchg4", "cmpxchg8", "cond", "cover", "ctop",
1122   "czx1", "czx2", "d", "dep", "dpnt", "dptk", "e", "epc", "eq", "excl",
1123   "exit", "exp", "extr", "f", "fabs", "fadd", "famax", "famin", "fand",
1124   "fandcm", "fault", "fc", "fchkf", "fclass", "fclrf", "fcmp", "fcvt",
1125   "fetchadd4", "fetchadd8", "few", "fill", "flushrs", "fma", "fmax",
1126   "fmerge", "fmin", "fmix", "fmpy", "fms", "fneg", "fnegabs", "fnma",
1127   "fnmpy", "fnorm", "for", "fpabs", "fpack", "fpamax", "fpamin", "fpcmp",
1128   "fpcvt", "fpma", "fpmax", "fpmerge", "fpmin", "fpmpy", "fpms", "fpneg",
1129   "fpnegabs", "fpnma", "fpnmpy", "fprcpa", "fprsqrta", "frcpa", "frsqrta",
1130   "fselect", "fsetc", "fsub", "fswap", "fsxt", "fwb", "fx", "fxor", "fxu",
1131   "g", "ga", "ge", "getf", "geu", "gt", "gtu", "h", "hint", "hu", "i", "ia",
1132   "imp", "invala", "itc", "itr", "l", "ld1", "ld16", "ld2", "ld4", "ld8",
1133   "ldf", "ldf8", "ldfd", "ldfe", "ldfp8", "ldfpd", "ldfps", "ldfs", "le",
1134   "leu", "lfetch", "loadrs", "loop", "lr", "lt", "ltu", "lu", "m", "many",
1135   "mf", "mix1", "mix2", "mix4", "mov", "movl", "mux1", "mux2", "nc", "ne",
1136   "neq", "nge", "ngt", "nl", "nle", "nlt", "nm", "nop", "nr", "ns", "nt1",
1137   "nt2", "nta", "nz", "or", "orcm", "ord", "pack2", "pack4", "padd1",
1138   "padd2", "padd4", "pavg1", "pavg2", "pavgsub1", "pavgsub2", "pcmp1",
1139   "pcmp2", "pcmp4", "pmax1", "pmax2", "pmin1", "pmin2", "pmpy2", "pmpyshr2",
1140   "popcnt", "pr", "probe", "psad1", "pshl2", "pshl4", "pshladd2", "pshr2",
1141   "pshr4", "pshradd2", "psub1", "psub2", "psub4", "ptc", "ptr", "r", "raz",
1142   "rel", "ret", "rfi", "rsm", "rum", "rw", "s", "s0", "s1", "s2", "s3",
1143   "sa", "se", "setf", "shl", "shladd", "shladdp4", "shr", "shrp", "sig",
1144   "spill", "spnt", "sptk", "srlz", "ssm", "sss", "st1", "st16", "st2",
1145   "st4", "st8", "stf", "stf8", "stfd", "stfe", "stfs", "sub", "sum", "sxt1",
1146   "sxt2", "sxt4", "sync", "tak", "tbit", "tf", "thash", "tnat", "tpa",
1147   "trunc", "ttag", "u", "unc", "unord", "unpack1", "unpack2", "unpack4",
1148   "uss", "uus", "uuu", "vmsw", "w", "wexit", "wtop", "x", "xchg1", "xchg2",
1149   "xchg4", "xchg8", "xf", "xma", "xmpy", "xor", "xuf", "z", "zxt1", "zxt2",
1150   "zxt4",
1151 };
1152 
1153 static const struct ia64_dependency
1154 dependencies[] = {
1155   { "ALAT", 0, 0, 0, -1, NULL, },
1156   { "AR[BSP]", 26, 0, 2, 17, NULL, },
1157   { "AR[BSPSTORE]", 26, 0, 2, 18, NULL, },
1158   { "AR[CCV]", 26, 0, 2, 32, NULL, },
1159   { "AR[CFLG]", 26, 0, 2, 27, NULL, },
1160   { "AR[CSD]", 26, 0, 2, 25, NULL, },
1161   { "AR[EC]", 26, 0, 2, 66, NULL, },
1162   { "AR[EFLAG]", 26, 0, 2, 24, NULL, },
1163   { "AR[FCR]", 26, 0, 2, 21, NULL, },
1164   { "AR[FDR]", 26, 0, 2, 30, NULL, },
1165   { "AR[FIR]", 26, 0, 2, 29, NULL, },
1166   { "AR[FPSR].sf0.controls", 30, 0, 2, -1, NULL, },
1167   { "AR[FPSR].sf1.controls", 30, 0, 2, -1, NULL, },
1168   { "AR[FPSR].sf2.controls", 30, 0, 2, -1, NULL, },
1169   { "AR[FPSR].sf3.controls", 30, 0, 2, -1, NULL, },
1170   { "AR[FPSR].sf0.flags", 30, 0, 2, -1, NULL, },
1171   { "AR[FPSR].sf1.flags", 30, 0, 2, -1, NULL, },
1172   { "AR[FPSR].sf2.flags", 30, 0, 2, -1, NULL, },
1173   { "AR[FPSR].sf3.flags", 30, 0, 2, -1, NULL, },
1174   { "AR[FPSR].traps", 30, 0, 2, -1, NULL, },
1175   { "AR[FPSR].rv", 30, 0, 2, -1, NULL, },
1176   { "AR[FSR]", 26, 0, 2, 28, NULL, },
1177   { "AR[ITC]", 26, 0, 2, 44, NULL, },
1178   { "AR[K%], % in 0 - 7", 1, 0, 2, -1, NULL, },
1179   { "AR[LC]", 26, 0, 2, 65, NULL, },
1180   { "AR[PFS]", 26, 0, 2, 64, NULL, },
1181   { "AR[PFS]", 26, 0, 2, 64, NULL, },
1182   { "AR[PFS]", 26, 0, 0, 64, NULL, },
1183   { "AR[RNAT]", 26, 0, 2, 19, NULL, },
1184   { "AR[RSC]", 26, 0, 2, 16, NULL, },
1185   { "AR[SSD]", 26, 0, 2, 26, NULL, },
1186   { "AR[UNAT]{%}, % in 0 - 63", 2, 0, 2, -1, NULL, },
1187   { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 0, 0, -1, NULL, },
1188   { "AR%, % in 48-63, 112-127", 4, 0, 2, -1, NULL, },
1189   { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
1190   { "BR%, % in 0 - 7", 5, 0, 0, -1, NULL, },
1191   { "BR%, % in 0 - 7", 5, 0, 2, -1, NULL, },
1192   { "CFM", 6, 0, 2, -1, NULL, },
1193   { "CFM", 6, 0, 2, -1, NULL, },
1194   { "CFM", 6, 0, 2, -1, NULL, },
1195   { "CFM", 6, 0, 2, -1, NULL, },
1196   { "CFM", 6, 0, 0, -1, NULL, },
1197   { "CPUID#", 7, 0, 5, -1, NULL, },
1198   { "CR[CMCV]", 27, 0, 3, 74, NULL, },
1199   { "CR[DCR]", 27, 0, 3, 0, NULL, },
1200   { "CR[EOI]", 27, 0, 7, 67, "SC Section 5.8.3.4, \"End of External Interrupt Register (EOI Ð CR67)\" on page 2:119", },
1201   { "CR[GPTA]", 27, 0, 3, 9, NULL, },
1202   { "CR[IFA]", 27, 0, 1, 20, NULL, },
1203   { "CR[IFA]", 27, 0, 3, 20, NULL, },
1204   { "CR[IFS]", 27, 0, 3, 23, NULL, },
1205   { "CR[IFS]", 27, 0, 1, 23, NULL, },
1206   { "CR[IFS]", 27, 0, 1, 23, NULL, },
1207   { "CR[IHA]", 27, 0, 3, 25, NULL, },
1208   { "CR[IIM]", 27, 0, 3, 24, NULL, },
1209   { "CR[IIP]", 27, 0, 3, 19, NULL, },
1210   { "CR[IIP]", 27, 0, 1, 19, NULL, },
1211   { "CR[IIPA]", 27, 0, 3, 22, NULL, },
1212   { "CR[IPSR]", 27, 0, 3, 16, NULL, },
1213   { "CR[IPSR]", 27, 0, 1, 16, NULL, },
1214   { "CR[IRR%], % in 0 - 3", 8, 0, 3, -1, NULL, },
1215   { "CR[ISR]", 27, 0, 3, 17, NULL, },
1216   { "CR[ITIR]", 27, 0, 3, 21, NULL, },
1217   { "CR[ITIR]", 27, 0, 1, 21, NULL, },
1218   { "CR[ITM]", 27, 0, 3, 1, NULL, },
1219   { "CR[ITV]", 27, 0, 3, 72, NULL, },
1220   { "CR[IVA]", 27, 0, 4, 2, NULL, },
1221   { "CR[IVR]", 27, 0, 7, 65, "SC Section 5.8.3.2, \"External Interrupt Vector Register (IVR Ð CR65)\" on page 2:118", },
1222   { "CR[LID]", 27, 0, 7, 64, "SC Section 5.8.3.1, \"Local ID (LID Ð CR64)\" on page 2:117", },
1223   { "CR[LRR%], % in 0 - 1", 9, 0, 3, -1, NULL, },
1224   { "CR[PMV]", 27, 0, 3, 73, NULL, },
1225   { "CR[PTA]", 27, 0, 3, 8, NULL, },
1226   { "CR[TPR]", 27, 0, 3, 66, NULL, },
1227   { "CR[TPR]", 27, 0, 7, 66, "SC Section 5.8.3.3, \"Task Priority Register (TPR Ð CR66)\" on page 2:119", },
1228   { "CR[TPR]", 27, 0, 1, 66, NULL, },
1229   { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 0, 0, -1, NULL, },
1230   { "DBR#", 11, 0, 2, -1, NULL, },
1231   { "DBR#", 11, 0, 3, -1, NULL, },
1232   { "DTC", 0, 0, 3, -1, NULL, },
1233   { "DTC", 0, 0, 2, -1, NULL, },
1234   { "DTC", 0, 0, 0, -1, NULL, },
1235   { "DTC", 0, 0, 2, -1, NULL, },
1236   { "DTC_LIMIT*", 0, 0, 2, -1, NULL, },
1237   { "DTR", 0, 0, 3, -1, NULL, },
1238   { "DTR", 0, 0, 2, -1, NULL, },
1239   { "DTR", 0, 0, 3, -1, NULL, },
1240   { "DTR", 0, 0, 0, -1, NULL, },
1241   { "DTR", 0, 0, 2, -1, NULL, },
1242   { "FR%, % in 0 - 1", 12, 0, 0, -1, NULL, },
1243   { "FR%, % in 2 - 127", 13, 0, 2, -1, NULL, },
1244   { "FR%, % in 2 - 127", 13, 0, 0, -1, NULL, },
1245   { "GR0", 14, 0, 0, -1, NULL, },
1246   { "GR%, % in 1 - 127", 15, 0, 0, -1, NULL, },
1247   { "GR%, % in 1 - 127", 15, 0, 2, -1, NULL, },
1248   { "IBR#", 16, 0, 2, -1, NULL, },
1249   { "InService*", 17, 0, 3, -1, NULL, },
1250   { "InService*", 17, 0, 2, -1, NULL, },
1251   { "InService*", 17, 0, 2, -1, NULL, },
1252   { "IP", 0, 0, 0, -1, NULL, },
1253   { "ITC", 0, 0, 4, -1, NULL, },
1254   { "ITC", 0, 0, 2, -1, NULL, },
1255   { "ITC", 0, 0, 0, -1, NULL, },
1256   { "ITC", 0, 0, 4, -1, NULL, },
1257   { "ITC", 0, 0, 2, -1, NULL, },
1258   { "ITC_LIMIT*", 0, 0, 2, -1, NULL, },
1259   { "ITR", 0, 0, 2, -1, NULL, },
1260   { "ITR", 0, 0, 4, -1, NULL, },
1261   { "ITR", 0, 0, 2, -1, NULL, },
1262   { "ITR", 0, 0, 0, -1, NULL, },
1263   { "ITR", 0, 0, 4, -1, NULL, },
1264   { "memory", 0, 0, 0, -1, NULL, },
1265   { "MSR#", 18, 0, 5, -1, NULL, },
1266   { "PKR#", 19, 0, 3, -1, NULL, },
1267   { "PKR#", 19, 0, 0, -1, NULL, },
1268   { "PKR#", 19, 0, 2, -1, NULL, },
1269   { "PKR#", 19, 0, 2, -1, NULL, },
1270   { "PMC#", 20, 0, 2, -1, NULL, },
1271   { "PMC#", 20, 0, 7, -1, "SC Section 7.2.1, \"Generic Performance Counter Registers\" for PMC[0].fr on page 2:150", },
1272   { "PMD#", 21, 0, 2, -1, NULL, },
1273   { "PR0", 0, 0, 0, -1, NULL, },
1274   { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
1275   { "PR%, % in 1 - 15", 22, 0, 2, -1, NULL, },
1276   { "PR%, % in 1 - 15", 22, 0, 0, -1, NULL, },
1277   { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
1278   { "PR%, % in 16 - 62", 23, 0, 2, -1, NULL, },
1279   { "PR%, % in 16 - 62", 23, 0, 0, -1, NULL, },
1280   { "PR63", 24, 0, 2, -1, NULL, },
1281   { "PR63", 24, 0, 2, -1, NULL, },
1282   { "PR63", 24, 0, 0, -1, NULL, },
1283   { "PSR.ac", 28, 0, 1, 3, NULL, },
1284   { "PSR.ac", 28, 0, 3, 3, NULL, },
1285   { "PSR.ac", 28, 0, 2, 3, NULL, },
1286   { "PSR.ac", 28, 0, 2, 3, NULL, },
1287   { "PSR.be", 28, 0, 1, 1, NULL, },
1288   { "PSR.be", 28, 0, 3, 1, NULL, },
1289   { "PSR.be", 28, 0, 2, 1, NULL, },
1290   { "PSR.be", 28, 0, 2, 1, NULL, },
1291   { "PSR.bn", 28, 0, 2, 44, NULL, },
1292   { "PSR.cpl", 28, 0, 1, 32, NULL, },
1293   { "PSR.cpl", 28, 0, 2, 32, NULL, },
1294   { "PSR.da", 28, 0, 2, 38, NULL, },
1295   { "PSR.db", 28, 0, 3, 24, NULL, },
1296   { "PSR.db", 28, 0, 2, 24, NULL, },
1297   { "PSR.db", 28, 0, 2, 24, NULL, },
1298   { "PSR.dd", 28, 0, 2, 39, NULL, },
1299   { "PSR.dfh", 28, 0, 3, 19, NULL, },
1300   { "PSR.dfh", 28, 0, 2, 19, NULL, },
1301   { "PSR.dfh", 28, 0, 2, 19, NULL, },
1302   { "PSR.dfl", 28, 0, 3, 18, NULL, },
1303   { "PSR.dfl", 28, 0, 2, 18, NULL, },
1304   { "PSR.dfl", 28, 0, 2, 18, NULL, },
1305   { "PSR.di", 28, 0, 3, 22, NULL, },
1306   { "PSR.di", 28, 0, 2, 22, NULL, },
1307   { "PSR.di", 28, 0, 2, 22, NULL, },
1308   { "PSR.dt", 28, 0, 3, 17, NULL, },
1309   { "PSR.dt", 28, 0, 2, 17, NULL, },
1310   { "PSR.dt", 28, 0, 2, 17, NULL, },
1311   { "PSR.ed", 28, 0, 2, 43, NULL, },
1312   { "PSR.i", 28, 0, 2, 14, NULL, },
1313   { "PSR.ia", 28, 0, 0, 14, NULL, },
1314   { "PSR.ic", 28, 0, 2, 13, NULL, },
1315   { "PSR.ic", 28, 0, 3, 13, NULL, },
1316   { "PSR.ic", 28, 0, 2, 13, NULL, },
1317   { "PSR.id", 28, 0, 0, 14, NULL, },
1318   { "PSR.is", 28, 0, 0, 14, NULL, },
1319   { "PSR.it", 28, 0, 2, 14, NULL, },
1320   { "PSR.lp", 28, 0, 2, 25, NULL, },
1321   { "PSR.lp", 28, 0, 3, 25, NULL, },
1322   { "PSR.lp", 28, 0, 2, 25, NULL, },
1323   { "PSR.mc", 28, 0, 2, 35, NULL, },
1324   { "PSR.mfh", 28, 0, 2, 5, NULL, },
1325   { "PSR.mfl", 28, 0, 2, 4, NULL, },
1326   { "PSR.pk", 28, 0, 3, 15, NULL, },
1327   { "PSR.pk", 28, 0, 2, 15, NULL, },
1328   { "PSR.pk", 28, 0, 2, 15, NULL, },
1329   { "PSR.pp", 28, 0, 2, 21, NULL, },
1330   { "PSR.ri", 28, 0, 0, 41, NULL, },
1331   { "PSR.rt", 28, 0, 2, 27, NULL, },
1332   { "PSR.rt", 28, 0, 3, 27, NULL, },
1333   { "PSR.rt", 28, 0, 2, 27, NULL, },
1334   { "PSR.si", 28, 0, 2, 23, NULL, },
1335   { "PSR.si", 28, 0, 3, 23, NULL, },
1336   { "PSR.si", 28, 0, 2, 23, NULL, },
1337   { "PSR.sp", 28, 0, 2, 20, NULL, },
1338   { "PSR.sp", 28, 0, 3, 20, NULL, },
1339   { "PSR.sp", 28, 0, 2, 20, NULL, },
1340   { "PSR.ss", 28, 0, 2, 40, NULL, },
1341   { "PSR.tb", 28, 0, 3, 26, NULL, },
1342   { "PSR.tb", 28, 0, 2, 26, NULL, },
1343   { "PSR.tb", 28, 0, 2, 26, NULL, },
1344   { "PSR.up", 28, 0, 2, 2, NULL, },
1345   { "PSR.vm", 28, 0, 1, 46, NULL, },
1346   { "PSR.vm", 28, 0, 2, 46, NULL, },
1347   { "RR#", 25, 0, 3, -1, NULL, },
1348   { "RR#", 25, 0, 2, -1, NULL, },
1349   { "RSE", 29, 0, 2, -1, NULL, },
1350   { "ALAT", 0, 1, 0, -1, NULL, },
1351   { "AR[BSP]", 26, 1, 2, 17, NULL, },
1352   { "AR[BSPSTORE]", 26, 1, 2, 18, NULL, },
1353   { "AR[CCV]", 26, 1, 2, 32, NULL, },
1354   { "AR[CFLG]", 26, 1, 2, 27, NULL, },
1355   { "AR[CSD]", 26, 1, 2, 25, NULL, },
1356   { "AR[EC]", 26, 1, 2, 66, NULL, },
1357   { "AR[EFLAG]", 26, 1, 2, 24, NULL, },
1358   { "AR[FCR]", 26, 1, 2, 21, NULL, },
1359   { "AR[FDR]", 26, 1, 2, 30, NULL, },
1360   { "AR[FIR]", 26, 1, 2, 29, NULL, },
1361   { "AR[FPSR].sf0.controls", 30, 1, 2, -1, NULL, },
1362   { "AR[FPSR].sf1.controls", 30, 1, 2, -1, NULL, },
1363   { "AR[FPSR].sf2.controls", 30, 1, 2, -1, NULL, },
1364   { "AR[FPSR].sf3.controls", 30, 1, 2, -1, NULL, },
1365   { "AR[FPSR].sf0.flags", 30, 1, 0, -1, NULL, },
1366   { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
1367   { "AR[FPSR].sf0.flags", 30, 1, 2, -1, NULL, },
1368   { "AR[FPSR].sf1.flags", 30, 1, 0, -1, NULL, },
1369   { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
1370   { "AR[FPSR].sf1.flags", 30, 1, 2, -1, NULL, },
1371   { "AR[FPSR].sf2.flags", 30, 1, 0, -1, NULL, },
1372   { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
1373   { "AR[FPSR].sf2.flags", 30, 1, 2, -1, NULL, },
1374   { "AR[FPSR].sf3.flags", 30, 1, 0, -1, NULL, },
1375   { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
1376   { "AR[FPSR].sf3.flags", 30, 1, 2, -1, NULL, },
1377   { "AR[FPSR].rv", 30, 1, 2, -1, NULL, },
1378   { "AR[FPSR].traps", 30, 1, 2, -1, NULL, },
1379   { "AR[FSR]", 26, 1, 2, 28, NULL, },
1380   { "AR[ITC]", 26, 1, 2, 44, NULL, },
1381   { "AR[K%], % in 0 - 7", 1, 1, 2, -1, NULL, },
1382   { "AR[LC]", 26, 1, 2, 65, NULL, },
1383   { "AR[PFS]", 26, 1, 0, 64, NULL, },
1384   { "AR[PFS]", 26, 1, 2, 64, NULL, },
1385   { "AR[PFS]", 26, 1, 2, 64, NULL, },
1386   { "AR[RNAT]", 26, 1, 2, 19, NULL, },
1387   { "AR[RSC]", 26, 1, 2, 16, NULL, },
1388   { "AR[SSD]", 26, 1, 2, 26, NULL, },
1389   { "AR[UNAT]{%}, % in 0 - 63", 2, 1, 2, -1, NULL, },
1390   { "AR%, % in 8-15, 20, 22-23, 31, 33-35, 37-39, 41-43, 45-47, 67-111", 3, 1, 0, -1, NULL, },
1391   { "AR%, % in 48 - 63, 112-127", 4, 1, 2, -1, NULL, },
1392   { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
1393   { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
1394   { "BR%, % in 0 - 7", 5, 1, 2, -1, NULL, },
1395   { "BR%, % in 0 - 7", 5, 1, 0, -1, NULL, },
1396   { "CFM", 6, 1, 2, -1, NULL, },
1397   { "CPUID#", 7, 1, 0, -1, NULL, },
1398   { "CR[CMCV]", 27, 1, 2, 74, NULL, },
1399   { "CR[DCR]", 27, 1, 2, 0, NULL, },
1400   { "CR[EOI]", 27, 1, 7, 67, "SC Section 5.8.3.4, \"End of External Interrupt Register (EOI Ð CR67)\" on page 2:119", },
1401   { "CR[GPTA]", 27, 1, 2, 9, NULL, },
1402   { "CR[IFA]", 27, 1, 2, 20, NULL, },
1403   { "CR[IFS]", 27, 1, 2, 23, NULL, },
1404   { "CR[IHA]", 27, 1, 2, 25, NULL, },
1405   { "CR[IIM]", 27, 1, 2, 24, NULL, },
1406   { "CR[IIP]", 27, 1, 2, 19, NULL, },
1407   { "CR[IIPA]", 27, 1, 2, 22, NULL, },
1408   { "CR[IPSR]", 27, 1, 2, 16, NULL, },
1409   { "CR[IRR%], % in 0 - 3", 8, 1, 2, -1, NULL, },
1410   { "CR[ISR]", 27, 1, 2, 17, NULL, },
1411   { "CR[ITIR]", 27, 1, 2, 21, NULL, },
1412   { "CR[ITM]", 27, 1, 2, 1, NULL, },
1413   { "CR[ITV]", 27, 1, 2, 72, NULL, },
1414   { "CR[IVA]", 27, 1, 2, 2, NULL, },
1415   { "CR[IVR]", 27, 1, 7, 65, "SC", },
1416   { "CR[LID]", 27, 1, 7, 64, "SC", },
1417   { "CR[LRR%], % in 0 - 1", 9, 1, 2, -1, NULL, },
1418   { "CR[PMV]", 27, 1, 2, 73, NULL, },
1419   { "CR[PTA]", 27, 1, 2, 8, NULL, },
1420   { "CR[TPR]", 27, 1, 2, 66, NULL, },
1421   { "CR%, % in 3-7, 10-15, 18, 26-63, 75-79, 82-127", 10, 1, 0, -1, NULL, },
1422   { "DBR#", 11, 1, 2, -1, NULL, },
1423   { "DTC", 0, 1, 0, -1, NULL, },
1424   { "DTC", 0, 1, 2, -1, NULL, },
1425   { "DTC", 0, 1, 2, -1, NULL, },
1426   { "DTC_LIMIT*", 0, 1, 2, -1, NULL, },
1427   { "DTR", 0, 1, 2, -1, NULL, },
1428   { "DTR", 0, 1, 2, -1, NULL, },
1429   { "DTR", 0, 1, 2, -1, NULL, },
1430   { "DTR", 0, 1, 0, -1, NULL, },
1431   { "FR%, % in 0 - 1", 12, 1, 0, -1, NULL, },
1432   { "FR%, % in 2 - 127", 13, 1, 2, -1, NULL, },
1433   { "GR0", 14, 1, 0, -1, NULL, },
1434   { "GR%, % in 1 - 127", 15, 1, 2, -1, NULL, },
1435   { "IBR#", 16, 1, 2, -1, NULL, },
1436   { "InService*", 17, 1, 7, -1, "SC", },
1437   { "IP", 0, 1, 0, -1, NULL, },
1438   { "ITC", 0, 1, 0, -1, NULL, },
1439   { "ITC", 0, 1, 2, -1, NULL, },
1440   { "ITC", 0, 1, 2, -1, NULL, },
1441   { "ITR", 0, 1, 2, -1, NULL, },
1442   { "ITR", 0, 1, 2, -1, NULL, },
1443   { "ITR", 0, 1, 0, -1, NULL, },
1444   { "memory", 0, 1, 0, -1, NULL, },
1445   { "MSR#", 18, 1, 7, -1, "SC", },
1446   { "PKR#", 19, 1, 0, -1, NULL, },
1447   { "PKR#", 19, 1, 0, -1, NULL, },
1448   { "PKR#", 19, 1, 2, -1, NULL, },
1449   { "PMC#", 20, 1, 2, -1, NULL, },
1450   { "PMD#", 21, 1, 2, -1, NULL, },
1451   { "PR0", 0, 1, 0, -1, NULL, },
1452   { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
1453   { "PR%, % in 1 - 15", 22, 1, 0, -1, NULL, },
1454   { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
1455   { "PR%, % in 1 - 15", 22, 1, 2, -1, NULL, },
1456   { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
1457   { "PR%, % in 16 - 62", 23, 1, 0, -1, NULL, },
1458   { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
1459   { "PR%, % in 16 - 62", 23, 1, 2, -1, NULL, },
1460   { "PR63", 24, 1, 0, -1, NULL, },
1461   { "PR63", 24, 1, 0, -1, NULL, },
1462   { "PR63", 24, 1, 2, -1, NULL, },
1463   { "PR63", 24, 1, 2, -1, NULL, },
1464   { "PSR.ac", 28, 1, 2, 3, NULL, },
1465   { "PSR.be", 28, 1, 2, 1, NULL, },
1466   { "PSR.bn", 28, 1, 2, 44, NULL, },
1467   { "PSR.cpl", 28, 1, 2, 32, NULL, },
1468   { "PSR.da", 28, 1, 2, 38, NULL, },
1469   { "PSR.db", 28, 1, 2, 24, NULL, },
1470   { "PSR.dd", 28, 1, 2, 39, NULL, },
1471   { "PSR.dfh", 28, 1, 2, 19, NULL, },
1472   { "PSR.dfl", 28, 1, 2, 18, NULL, },
1473   { "PSR.di", 28, 1, 2, 22, NULL, },
1474   { "PSR.dt", 28, 1, 2, 17, NULL, },
1475   { "PSR.ed", 28, 1, 2, 43, NULL, },
1476   { "PSR.i", 28, 1, 2, 14, NULL, },
1477   { "PSR.ia", 28, 1, 2, 14, NULL, },
1478   { "PSR.ic", 28, 1, 2, 13, NULL, },
1479   { "PSR.id", 28, 1, 2, 14, NULL, },
1480   { "PSR.is", 28, 1, 2, 14, NULL, },
1481   { "PSR.it", 28, 1, 2, 14, NULL, },
1482   { "PSR.lp", 28, 1, 2, 25, NULL, },
1483   { "PSR.mc", 28, 1, 2, 35, NULL, },
1484   { "PSR.mfh", 28, 1, 0, 5, NULL, },
1485   { "PSR.mfh", 28, 1, 2, 5, NULL, },
1486   { "PSR.mfh", 28, 1, 2, 5, NULL, },
1487   { "PSR.mfl", 28, 1, 0, 4, NULL, },
1488   { "PSR.mfl", 28, 1, 2, 4, NULL, },
1489   { "PSR.mfl", 28, 1, 2, 4, NULL, },
1490   { "PSR.pk", 28, 1, 2, 15, NULL, },
1491   { "PSR.pp", 28, 1, 2, 21, NULL, },
1492   { "PSR.ri", 28, 1, 2, 41, NULL, },
1493   { "PSR.rt", 28, 1, 2, 27, NULL, },
1494   { "PSR.si", 28, 1, 2, 23, NULL, },
1495   { "PSR.sp", 28, 1, 2, 20, NULL, },
1496   { "PSR.ss", 28, 1, 2, 40, NULL, },
1497   { "PSR.tb", 28, 1, 2, 26, NULL, },
1498   { "PSR.up", 28, 1, 2, 2, NULL, },
1499   { "PSR.vm", 28, 1, 2, 46, NULL, },
1500   { "RR#", 25, 1, 2, -1, NULL, },
1501   { "RSE", 29, 1, 2, -1, NULL, },
1502   { "PR63", 24, 2, 6, -1, NULL, },
1503 };
1504 
1505 static const unsigned short dep0[] = {
1506   97, 282, 2140, 2327,
1507 };
1508 
1509 static const unsigned short dep1[] = {
1510   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1511   2327, 4135, 20616,
1512 };
1513 
1514 static const unsigned short dep2[] = {
1515   97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2347, 2348, 2351,
1516   2352, 2355, 2356,
1517 };
1518 
1519 static const unsigned short dep3[] = {
1520   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1521   2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 20616,
1522 };
1523 
1524 static const unsigned short dep4[] = {
1525   97, 282, 22646, 22647, 22649, 22650, 22652, 22653, 22655, 22824, 22827, 22828,
1526   22831, 22832, 22835, 22836,
1527 };
1528 
1529 static const unsigned short dep5[] = {
1530   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1531   4135, 20616, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1532 };
1533 
1534 static const unsigned short dep6[] = {
1535   97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2345, 2347, 2349,
1536   2351, 2353, 2355,
1537 };
1538 
1539 static const unsigned short dep7[] = {
1540   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1541   2344, 2345, 2348, 2349, 2352, 2353, 2356, 4135, 20616,
1542 };
1543 
1544 static const unsigned short dep8[] = {
1545   97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2346, 2348, 2350,
1546   2352, 2354, 2356,
1547 };
1548 
1549 static const unsigned short dep9[] = {
1550   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1551   2344, 2346, 2347, 2350, 2351, 2354, 2355, 4135, 20616,
1552 };
1553 
1554 static const unsigned short dep10[] = {
1555   97, 282, 2166, 2167, 2169, 2170, 2172, 2173, 2175, 2344, 2345, 2346, 2347,
1556   2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356,
1557 };
1558 
1559 static const unsigned short dep11[] = {
1560   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
1561   2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356,
1562   4135, 20616,
1563 };
1564 
1565 static const unsigned short dep12[] = {
1566   97, 282, 2395,
1567 };
1568 
1569 static const unsigned short dep13[] = {
1570   40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2082, 2083, 2166, 2168,
1571   2169, 2171, 2172, 2174, 2175, 4135,
1572 };
1573 
1574 static const unsigned short dep14[] = {
1575   97, 163, 282, 325, 2395, 28866, 29018,
1576 };
1577 
1578 static const unsigned short dep15[] = {
1579   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1580   22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 40, 41, 97, 150, 152, 158, 162,
1581   164, 175, 185, 186, 188, 282, 325, 2082, 2083, 2166, 2168, 2169, 2171, 2172,
1582   2174, 2175, 4135, 28866, 29018,
1583 };
1584 
1585 static const unsigned short dep16[] = {
1586   1, 6, 40, 97, 137, 196, 201, 241, 282, 312, 2395, 28866, 29018,
1587 };
1588 
1589 static const unsigned short dep17[] = {
1590   1, 25, 27, 38, 40, 41, 97, 158, 162, 164, 166, 167, 175, 185, 186, 188, 196,
1591   201, 241, 282, 312, 2082, 2083, 2166, 2168, 2169, 2171, 2172, 2174, 2175,
1592   4135, 28866, 29018,
1593 };
1594 
1595 static const unsigned short dep18[] = {
1596   1, 40, 51, 97, 196, 241, 248, 282, 28866, 29018,
1597 };
1598 
1599 static const unsigned short dep19[] = {
1600   1, 38, 40, 41, 97, 158, 160, 161, 162, 175, 185, 190, 191, 196, 241, 248,
1601   282, 4135, 28866, 29018,
1602 };
1603 
1604 static const unsigned short dep20[] = {
1605   40, 97, 241, 282,
1606 };
1607 
1608 static const unsigned short dep21[] = {
1609   97, 158, 162, 175, 185, 241, 282,
1610 };
1611 
1612 static const unsigned short dep22[] = {
1613   1, 40, 97, 131, 135, 136, 138, 139, 142, 143, 146, 149, 152, 155, 156, 157,
1614   158, 161, 162, 163, 164, 167, 168, 169, 170, 173, 174, 175, 178, 181, 184,
1615   185, 188, 189, 191, 196, 241, 282, 309, 310, 311, 312, 313, 314, 315, 316,
1616   317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333,
1617   334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 28866, 29018,
1618 };
1619 
1620 static const unsigned short dep23[] = {
1621   1, 38, 40, 41, 50, 51, 55, 58, 73, 97, 137, 138, 158, 162, 175, 185, 190,
1622   191, 196, 241, 282, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319,
1623   320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333, 334, 335, 336,
1624   337, 338, 339, 340, 341, 342, 343, 344, 4135, 28866, 29018,
1625 };
1626 
1627 static const unsigned short dep24[] = {
1628   97, 136, 282, 311,
1629 };
1630 
1631 static const unsigned short dep25[] = {
1632   97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 311,
1633 };
1634 
1635 static const unsigned short dep26[] = {
1636   97, 137, 282, 312,
1637 };
1638 
1639 static const unsigned short dep27[] = {
1640   25, 26, 97, 98, 101, 105, 108, 137, 138, 158, 162, 164, 175, 185, 282, 312,
1641 
1642 };
1643 
1644 static const unsigned short dep28[] = {
1645   97, 190, 282, 344,
1646 };
1647 
1648 static const unsigned short dep29[] = {
1649   97, 98, 101, 105, 108, 137, 138, 158, 162, 164, 175, 185, 282, 344,
1650 };
1651 
1652 static const unsigned short dep30[] = {
1653   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2168, 2169, 2171, 2172, 2174, 2175,
1654   4135,
1655 };
1656 
1657 static const unsigned short dep31[] = {
1658   1, 25, 40, 97, 196, 228, 229, 241, 282, 2082, 2285, 2288, 2395, 28866, 29018,
1659 
1660 };
1661 
1662 static const unsigned short dep32[] = {
1663   1, 6, 38, 40, 41, 97, 137, 138, 158, 162, 164, 175, 185, 186, 188, 196, 228,
1664   230, 241, 282, 2082, 2083, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 2286,
1665   2288, 4135, 28866, 29018,
1666 };
1667 
1668 static const unsigned short dep33[] = {
1669   97, 282,
1670 };
1671 
1672 static const unsigned short dep34[] = {
1673   97, 158, 162, 175, 185, 282, 2082, 2084,
1674 };
1675 
1676 static const unsigned short dep35[] = {
1677   40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2168, 2169, 2171,
1678   2172, 2174, 2175, 4135,
1679 };
1680 
1681 static const unsigned short dep36[] = {
1682   6, 37, 38, 39, 97, 125, 126, 201, 241, 282, 307, 308, 2395,
1683 };
1684 
1685 static const unsigned short dep37[] = {
1686   6, 37, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 201, 241, 282, 307,
1687   308, 347, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 4135,
1688 };
1689 
1690 static const unsigned short dep38[] = {
1691   24, 97, 227, 282, 2395,
1692 };
1693 
1694 static const unsigned short dep39[] = {
1695   24, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 227, 282, 2166, 2168, 2169,
1696   2171, 2172, 2174, 2175, 4135,
1697 };
1698 
1699 static const unsigned short dep40[] = {
1700   6, 24, 37, 38, 39, 97, 125, 126, 201, 227, 241, 282, 307, 308, 2395,
1701 };
1702 
1703 static const unsigned short dep41[] = {
1704   6, 24, 37, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 201, 227, 241, 282,
1705   307, 308, 347, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 4135,
1706 };
1707 
1708 static const unsigned short dep42[] = {
1709   1, 6, 38, 40, 41, 97, 137, 138, 158, 162, 164, 175, 185, 186, 188, 196, 228,
1710   230, 241, 282, 2166, 2168, 2169, 2171, 2172, 2174, 2175, 2286, 2288, 4135,
1711   28866, 29018,
1712 };
1713 
1714 static const unsigned short dep43[] = {
1715   97, 158, 162, 175, 185, 282,
1716 };
1717 
1718 static const unsigned short dep44[] = {
1719   15, 97, 210, 211, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1720   22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831,
1721   22832, 22835, 22836,
1722 };
1723 
1724 static const unsigned short dep45[] = {
1725   11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137,
1726   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1727   18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1728 };
1729 
1730 static const unsigned short dep46[] = {
1731   15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2136, 2325,
1732   18601, 18602, 18761, 18762, 18764, 18765, 22646, 22647, 22648, 22650, 22651,
1733   22653, 22654, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1734 };
1735 
1736 static const unsigned short dep47[] = {
1737   11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215,
1738   216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2325, 4135,
1739   16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 22824, 22827, 22828,
1740   22831, 22832, 22835, 22836,
1741 };
1742 
1743 static const unsigned short dep48[] = {
1744   16, 97, 213, 214, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1745   22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831,
1746   22832, 22835, 22836,
1747 };
1748 
1749 static const unsigned short dep49[] = {
1750   12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137,
1751   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1752   18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1753 };
1754 
1755 static const unsigned short dep50[] = {
1756   17, 97, 216, 217, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1757   22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831,
1758   22832, 22835, 22836,
1759 };
1760 
1761 static const unsigned short dep51[] = {
1762   13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137,
1763   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1764   18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1765 };
1766 
1767 static const unsigned short dep52[] = {
1768   18, 97, 219, 220, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1769   22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831,
1770   22832, 22835, 22836,
1771 };
1772 
1773 static const unsigned short dep53[] = {
1774   14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137,
1775   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1776   18764, 18766, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
1777 };
1778 
1779 static const unsigned short dep54[] = {
1780   15, 97, 210, 211, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1781 
1782 };
1783 
1784 static const unsigned short dep55[] = {
1785   11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137,
1786   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1787   18764, 18766,
1788 };
1789 
1790 static const unsigned short dep56[] = {
1791   15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2136, 2325,
1792   18601, 18602, 18761, 18762, 18764, 18765,
1793 };
1794 
1795 static const unsigned short dep57[] = {
1796   11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215,
1797   216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2325, 4135,
1798   16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766,
1799 };
1800 
1801 static const unsigned short dep58[] = {
1802   16, 97, 213, 214, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1803 
1804 };
1805 
1806 static const unsigned short dep59[] = {
1807   12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137,
1808   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1809   18764, 18766,
1810 };
1811 
1812 static const unsigned short dep60[] = {
1813   17, 97, 216, 217, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1814 
1815 };
1816 
1817 static const unsigned short dep61[] = {
1818   13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137,
1819   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1820   18764, 18766,
1821 };
1822 
1823 static const unsigned short dep62[] = {
1824   18, 97, 219, 220, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1825 
1826 };
1827 
1828 static const unsigned short dep63[] = {
1829   14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137,
1830   2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763,
1831   18764, 18766,
1832 };
1833 
1834 static const unsigned short dep64[] = {
1835   97, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
1836 };
1837 
1838 static const unsigned short dep65[] = {
1839   40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173,
1840   2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766,
1841 };
1842 
1843 static const unsigned short dep66[] = {
1844   11, 97, 206, 282,
1845 };
1846 
1847 static const unsigned short dep67[] = {
1848   11, 40, 41, 97, 158, 162, 175, 185, 206, 282, 2166, 2167, 2170, 2173, 4135,
1849 
1850 };
1851 
1852 static const unsigned short dep68[] = {
1853   11, 40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135,
1854 };
1855 
1856 static const unsigned short dep69[] = {
1857   12, 97, 207, 282,
1858 };
1859 
1860 static const unsigned short dep70[] = {
1861   11, 40, 41, 97, 158, 162, 175, 185, 207, 282, 2166, 2167, 2170, 2173, 4135,
1862 
1863 };
1864 
1865 static const unsigned short dep71[] = {
1866   13, 97, 208, 282,
1867 };
1868 
1869 static const unsigned short dep72[] = {
1870   11, 40, 41, 97, 158, 162, 175, 185, 208, 282, 2166, 2167, 2170, 2173, 4135,
1871 
1872 };
1873 
1874 static const unsigned short dep73[] = {
1875   14, 97, 209, 282,
1876 };
1877 
1878 static const unsigned short dep74[] = {
1879   11, 40, 41, 97, 158, 162, 175, 185, 209, 282, 2166, 2167, 2170, 2173, 4135,
1880 
1881 };
1882 
1883 static const unsigned short dep75[] = {
1884   15, 97, 211, 212, 282,
1885 };
1886 
1887 static const unsigned short dep76[] = {
1888   40, 41, 97, 158, 162, 175, 185, 211, 212, 282, 2166, 2167, 2170, 2173, 4135,
1889 
1890 };
1891 
1892 static const unsigned short dep77[] = {
1893   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135,
1894 };
1895 
1896 static const unsigned short dep78[] = {
1897   16, 97, 214, 215, 282,
1898 };
1899 
1900 static const unsigned short dep79[] = {
1901   40, 41, 97, 158, 162, 175, 185, 214, 215, 282, 2166, 2167, 2170, 2173, 4135,
1902 
1903 };
1904 
1905 static const unsigned short dep80[] = {
1906   17, 97, 217, 218, 282,
1907 };
1908 
1909 static const unsigned short dep81[] = {
1910   40, 41, 97, 158, 162, 175, 185, 217, 218, 282, 2166, 2167, 2170, 2173, 4135,
1911 
1912 };
1913 
1914 static const unsigned short dep82[] = {
1915   18, 97, 220, 221, 282,
1916 };
1917 
1918 static const unsigned short dep83[] = {
1919   40, 41, 97, 158, 162, 175, 185, 220, 221, 282, 2166, 2167, 2170, 2173, 4135,
1920 
1921 };
1922 
1923 static const unsigned short dep84[] = {
1924   15, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2167,
1925   2170, 2173, 4135,
1926 };
1927 
1928 static const unsigned short dep85[] = {
1929   15, 16, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166,
1930   2167, 2170, 2173, 4135,
1931 };
1932 
1933 static const unsigned short dep86[] = {
1934   15, 17, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166,
1935   2167, 2170, 2173, 4135,
1936 };
1937 
1938 static const unsigned short dep87[] = {
1939   15, 18, 19, 20, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166,
1940   2167, 2170, 2173, 4135,
1941 };
1942 
1943 static const unsigned short dep88[] = {
1944   15, 97, 210, 211, 282,
1945 };
1946 
1947 static const unsigned short dep89[] = {
1948   11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2166, 2167, 2170,
1949   2173, 4135,
1950 };
1951 
1952 static const unsigned short dep90[] = {
1953   15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282,
1954 };
1955 
1956 static const unsigned short dep91[] = {
1957   11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215,
1958   216, 218, 219, 221, 282, 2166, 2167, 2170, 2173, 4135,
1959 };
1960 
1961 static const unsigned short dep92[] = {
1962   16, 97, 213, 214, 282,
1963 };
1964 
1965 static const unsigned short dep93[] = {
1966   12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2166, 2167, 2170,
1967   2173, 4135,
1968 };
1969 
1970 static const unsigned short dep94[] = {
1971   17, 97, 216, 217, 282,
1972 };
1973 
1974 static const unsigned short dep95[] = {
1975   13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2166, 2167, 2170,
1976   2173, 4135,
1977 };
1978 
1979 static const unsigned short dep96[] = {
1980   18, 97, 219, 220, 282,
1981 };
1982 
1983 static const unsigned short dep97[] = {
1984   14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2166, 2167, 2170,
1985   2173, 4135,
1986 };
1987 
1988 static const unsigned short dep98[] = {
1989   15, 97, 210, 211, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347,
1990   2348, 2351, 2352, 2355, 2356,
1991 };
1992 
1993 static const unsigned short dep99[] = {
1994   11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137,
1995   2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528,
1996   16530, 16531, 16533,
1997 };
1998 
1999 static const unsigned short dep100[] = {
2000   15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 2166, 2167,
2001   2168, 2170, 2171, 2173, 2174, 2344, 2347, 2348, 2351, 2352, 2355, 2356,
2002 };
2003 
2004 static const unsigned short dep101[] = {
2005   11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215,
2006   216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 2344, 2347,
2007   2348, 2351, 2352, 2355, 2356, 4135, 16528, 16530, 16531, 16533,
2008 };
2009 
2010 static const unsigned short dep102[] = {
2011   16, 97, 213, 214, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347,
2012   2348, 2351, 2352, 2355, 2356,
2013 };
2014 
2015 static const unsigned short dep103[] = {
2016   12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137,
2017   2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528,
2018   16530, 16531, 16533,
2019 };
2020 
2021 static const unsigned short dep104[] = {
2022   17, 97, 216, 217, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347,
2023   2348, 2351, 2352, 2355, 2356,
2024 };
2025 
2026 static const unsigned short dep105[] = {
2027   13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137,
2028   2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528,
2029   16530, 16531, 16533,
2030 };
2031 
2032 static const unsigned short dep106[] = {
2033   18, 97, 219, 220, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347,
2034   2348, 2351, 2352, 2355, 2356,
2035 };
2036 
2037 static const unsigned short dep107[] = {
2038   14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137,
2039   2166, 2167, 2170, 2173, 2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528,
2040   16530, 16531, 16533,
2041 };
2042 
2043 static const unsigned short dep108[] = {
2044   15, 97, 210, 211, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824,
2045   22827, 22828, 22831, 22832, 22835, 22836,
2046 };
2047 
2048 static const unsigned short dep109[] = {
2049   11, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 282, 2135, 2136, 2137,
2050   2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828,
2051   22831, 22832, 22835, 22836,
2052 };
2053 
2054 static const unsigned short dep110[] = {
2055   15, 16, 17, 18, 97, 210, 211, 213, 214, 216, 217, 219, 220, 282, 22646, 22647,
2056   22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828, 22831, 22832, 22835,
2057   22836,
2058 };
2059 
2060 static const unsigned short dep111[] = {
2061   11, 12, 13, 14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 210, 212, 213, 215,
2062   216, 218, 219, 221, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173, 4135, 16528,
2063   16530, 16531, 16533, 22824, 22827, 22828, 22831, 22832, 22835, 22836,
2064 };
2065 
2066 static const unsigned short dep112[] = {
2067   16, 97, 213, 214, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824,
2068   22827, 22828, 22831, 22832, 22835, 22836,
2069 };
2070 
2071 static const unsigned short dep113[] = {
2072   12, 19, 20, 40, 41, 97, 158, 162, 175, 185, 213, 215, 282, 2135, 2136, 2137,
2073   2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828,
2074   22831, 22832, 22835, 22836,
2075 };
2076 
2077 static const unsigned short dep114[] = {
2078   17, 97, 216, 217, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824,
2079   22827, 22828, 22831, 22832, 22835, 22836,
2080 };
2081 
2082 static const unsigned short dep115[] = {
2083   13, 19, 20, 40, 41, 97, 158, 162, 175, 185, 216, 218, 282, 2135, 2136, 2137,
2084   2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828,
2085   22831, 22832, 22835, 22836,
2086 };
2087 
2088 static const unsigned short dep116[] = {
2089   18, 97, 219, 220, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824,
2090   22827, 22828, 22831, 22832, 22835, 22836,
2091 };
2092 
2093 static const unsigned short dep117[] = {
2094   14, 19, 20, 40, 41, 97, 158, 162, 175, 185, 219, 221, 282, 2135, 2136, 2137,
2095   2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828,
2096   22831, 22832, 22835, 22836,
2097 };
2098 
2099 static const unsigned short dep118[] = {
2100   97, 282, 2166, 2167, 2168, 2170, 2171, 2173, 2174, 2344, 2347, 2348, 2351,
2101   2352, 2355, 2356,
2102 };
2103 
2104 static const unsigned short dep119[] = {
2105   40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173,
2106   2344, 2347, 2348, 2351, 2352, 2355, 2356, 4135, 16528, 16530, 16531, 16533,
2107 
2108 };
2109 
2110 static const unsigned short dep120[] = {
2111   97, 282, 22646, 22647, 22648, 22650, 22651, 22653, 22654, 22824, 22827, 22828,
2112   22831, 22832, 22835, 22836,
2113 };
2114 
2115 static const unsigned short dep121[] = {
2116   40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173,
2117   4135, 16528, 16530, 16531, 16533, 22824, 22827, 22828, 22831, 22832, 22835,
2118   22836,
2119 };
2120 
2121 static const unsigned short dep122[] = {
2122   19, 20, 40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167,
2123   2170, 2173, 2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766,
2124 
2125 };
2126 
2127 static const unsigned short dep123[] = {
2128   40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2138, 2139, 2140, 2166,
2129   2167, 2170, 2173, 4135, 20616,
2130 };
2131 
2132 static const unsigned short dep124[] = {
2133   97, 282, 2083, 2084, 2286, 2287,
2134 };
2135 
2136 static const unsigned short dep125[] = {
2137   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
2138   2285, 2287, 4135, 20616,
2139 };
2140 
2141 static const unsigned short dep126[] = {
2142   40, 41, 97, 158, 162, 175, 185, 282, 2082, 2084, 2166, 2167, 2170, 2173, 2327,
2143   4135, 20616,
2144 };
2145 
2146 static const unsigned short dep127[] = {
2147   97, 282, 14455, 14457, 14458, 14460, 14461, 14463, 14635, 14636, 14639, 14640,
2148   14643, 14644,
2149 };
2150 
2151 static const unsigned short dep128[] = {
2152   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 4135, 14635, 14636,
2153   14639, 14640, 14643, 14644, 20616, 24694, 24695, 24698, 24701,
2154 };
2155 
2156 static const unsigned short dep129[] = {
2157   97, 122, 124, 125, 127, 282, 303, 304, 307, 308,
2158 };
2159 
2160 static const unsigned short dep130[] = {
2161   40, 41, 97, 158, 162, 175, 185, 282, 303, 304, 307, 308, 4135, 24694, 24695,
2162   24698, 24701,
2163 };
2164 
2165 static const unsigned short dep131[] = {
2166   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2167 
2168 };
2169 
2170 static const unsigned short dep132[] = {
2171   40, 41, 97, 119, 122, 125, 158, 162, 175, 185, 282, 2327, 4135, 20616, 24694,
2172 
2173 };
2174 
2175 static const unsigned short dep133[] = {
2176   6, 24, 26, 27, 97, 201, 227, 230, 282, 2081, 2284,
2177 };
2178 
2179 static const unsigned short dep134[] = {
2180   40, 41, 97, 158, 162, 175, 185, 201, 227, 229, 282, 2138, 2139, 2140, 2166,
2181   2167, 2170, 2173, 2284, 4135, 20616,
2182 };
2183 
2184 static const unsigned short dep135[] = {
2185   6, 24, 25, 26, 40, 41, 97, 158, 162, 175, 185, 282, 2081, 2166, 2167, 2170,
2186   2173, 2327, 4135, 20616,
2187 };
2188 
2189 static const unsigned short dep136[] = {
2190   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2347, 2348,
2191   2351, 2352, 2355, 2356, 4135,
2192 };
2193 
2194 static const unsigned short dep137[] = {
2195   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 4135, 22824,
2196   22827, 22828, 22831, 22832, 22835, 22836,
2197 };
2198 
2199 static const unsigned short dep138[] = {
2200   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2345, 2348,
2201   2349, 2352, 2353, 2356, 4135,
2202 };
2203 
2204 static const unsigned short dep139[] = {
2205   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2346, 2347,
2206   2350, 2351, 2354, 2355, 4135,
2207 };
2208 
2209 static const unsigned short dep140[] = {
2210   40, 41, 97, 158, 162, 175, 185, 282, 2166, 2167, 2170, 2173, 2344, 2345, 2346,
2211   2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 4135,
2212 };
2213 
2214 static const unsigned short dep141[] = {
2215   0, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2166, 2167, 2170, 2173,
2216   4135,
2217 };
2218 
2219 static const unsigned short dep142[] = {
2220   0, 97, 195, 282,
2221 };
2222 
2223 static const unsigned short dep143[] = {
2224   0, 40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 195, 282, 2166, 2167, 2170,
2225   2173, 4135,
2226 };
2227 
2228 static const unsigned short dep144[] = {
2229   40, 41, 97, 158, 162, 175, 185, 195, 282, 2166, 2167, 2170, 2173, 4135,
2230 };
2231 
2232 static const unsigned short dep145[] = {
2233   2, 28, 97, 197, 231, 282, 28866, 29018,
2234 };
2235 
2236 static const unsigned short dep146[] = {
2237   1, 2, 28, 29, 97, 158, 162, 175, 177, 178, 185, 197, 231, 282, 28866, 29018,
2238 
2239 };
2240 
2241 static const unsigned short dep147[] = {
2242   1, 28, 29, 38, 40, 41, 97, 158, 162, 175, 177, 178, 185, 197, 231, 282, 4135,
2243   28866, 29018,
2244 };
2245 
2246 static const unsigned short dep148[] = {
2247   0, 40, 41, 97, 158, 162, 175, 185, 195, 282, 2166, 2167, 2170, 2173, 4135,
2248 
2249 };
2250 
2251 static const unsigned short dep149[] = {
2252   1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2253   28, 29, 30, 31, 97, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207,
2254   208, 209, 211, 212, 214, 215, 217, 218, 220, 221, 222, 223, 224, 225, 231,
2255   232, 233, 234, 282, 2071, 2081, 2274, 2284, 28866, 29018,
2256 };
2257 
2258 static const unsigned short dep150[] = {
2259   29, 40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 196, 197, 198, 199,
2260   200, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 214, 215, 217, 218,
2261   220, 221, 222, 223, 224, 225, 231, 232, 233, 234, 282, 2138, 2139, 2140, 2166,
2262   2167, 2170, 2173, 2274, 2284, 4135, 20616, 28866, 29018,
2263 };
2264 
2265 static const unsigned short dep151[] = {
2266   97, 282, 14464, 14466, 14468, 14470, 14505, 14506, 14525, 14645, 14646, 14666,
2267   14667, 14669, 14670, 14679,
2268 };
2269 
2270 static const unsigned short dep152[] = {
2271   40, 41, 97, 158, 162, 175, 183, 184, 185, 282, 2166, 2167, 2170, 2173, 4135,
2272   14645, 14646, 14666, 14667, 14669, 14670, 14679,
2273 };
2274 
2275 static const unsigned short dep153[] = {
2276   14464, 14466, 14468, 14470, 14505, 14506, 14525, 14645, 14646, 14666, 14667,
2277   14669, 14670, 14679,
2278 };
2279 
2280 static const unsigned short dep154[] = {
2281   183, 184, 14645, 14646, 14666, 14667, 14669, 14670, 14679,
2282 };
2283 
2284 static const unsigned short dep155[] = {
2285   97, 282, 14465, 14466, 14469, 14470, 14480, 14481, 14483, 14484, 14486, 14487,
2286   14489, 14490, 14493, 14495, 14496, 14505, 14506, 14507, 14508, 14510, 14515,
2287   14516, 14518, 14519, 14525, 14645, 14646, 14652, 14653, 14654, 14655, 14657,
2288   14659, 14666, 14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679,
2289 };
2290 
2291 static const unsigned short dep156[] = {
2292   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2166, 2167, 2170,
2293   2173, 4135, 14645, 14646, 14652, 14653, 14654, 14655, 14657, 14659, 14666,
2294   14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679, 34888,
2295 };
2296 
2297 static const unsigned short dep157[] = {
2298   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2166, 2167, 2170,
2299   2173, 4135, 14645, 14646, 14652, 14653, 14654, 14655, 14657, 14659, 14666,
2300   14667, 14669, 14670, 14671, 14672, 14675, 14676, 14679,
2301 };
2302 
2303 static const unsigned short dep158[] = {
2304   1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2305   28, 29, 30, 31, 40, 41, 97, 137, 138, 158, 162, 175, 180, 181, 185, 190, 191,
2306   282, 2071, 2081, 2166, 2167, 2170, 2173, 2327, 4135, 20616, 28866,
2307 };
2308 
2309 static const unsigned short dep159[] = {
2310   43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63,
2311   64, 65, 67, 69, 70, 71, 72, 73, 94, 96, 97, 243, 244, 245, 246, 247, 248,
2312   249, 250, 251, 252, 253, 255, 256, 257, 258, 259, 261, 263, 264, 265, 281,
2313   282, 2116, 2310,
2314 };
2315 
2316 static const unsigned short dep160[] = {
2317   40, 41, 96, 97, 137, 138, 158, 160, 161, 162, 175, 185, 190, 191, 243, 244,
2318   245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 256, 257, 258, 259, 261,
2319   263, 264, 265, 281, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2310, 4135,
2320   20616,
2321 };
2322 
2323 static const unsigned short dep161[] = {
2324   59, 95, 97, 254, 281, 282, 2140, 2327,
2325 };
2326 
2327 static const unsigned short dep162[] = {
2328   40, 41, 43, 44, 46, 48, 49, 51, 52, 53, 54, 56, 57, 60, 61, 63, 64, 65, 66,
2329   67, 69, 70, 71, 94, 95, 97, 137, 138, 158, 160, 161, 162, 175, 185, 190, 191,
2330   254, 281, 282, 2107, 2116, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2331 };
2332 
2333 static const unsigned short dep163[] = {
2334   2, 28, 41, 97, 197, 231, 241, 282, 2140, 2327, 28866, 29018,
2335 };
2336 
2337 static const unsigned short dep164[] = {
2338   2, 25, 26, 28, 29, 38, 40, 41, 97, 158, 162, 175, 177, 178, 185, 197, 231,
2339   241, 282, 2327, 4135, 20616, 28866, 29018,
2340 };
2341 
2342 static const unsigned short dep165[] = {
2343   97, 129, 130, 133, 134, 140, 141, 144, 145, 147, 148, 150, 151, 153, 154,
2344   157, 159, 160, 165, 166, 169, 170, 171, 172, 174, 176, 177, 179, 180, 182,
2345   183, 186, 187, 189, 282, 309, 310, 314, 316, 317, 318, 319, 321, 323, 327,
2346   330, 331, 333, 334, 335, 336, 338, 339, 340, 342, 343,
2347 };
2348 
2349 static const unsigned short dep166[] = {
2350   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 309, 310, 314, 316,
2351   317, 318, 319, 321, 323, 327, 330, 331, 333, 334, 335, 336, 338, 339, 340,
2352   342, 343, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616, 34888,
2353 };
2354 
2355 static const unsigned short dep167[] = {
2356   97, 128, 130, 132, 134, 169, 170, 189, 282, 309, 310, 330, 331, 333, 334,
2357   343,
2358 };
2359 
2360 static const unsigned short dep168[] = {
2361   40, 41, 97, 158, 162, 175, 183, 184, 185, 282, 309, 310, 330, 331, 333, 334,
2362   343, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2363 };
2364 
2365 static const unsigned short dep169[] = {
2366   40, 41, 97, 130, 131, 134, 135, 137, 138, 141, 142, 145, 146, 148, 149, 151,
2367   152, 154, 155, 157, 158, 159, 161, 162, 164, 165, 167, 168, 169, 170, 172,
2368   173, 174, 175, 176, 178, 179, 181, 182, 184, 185, 187, 188, 189, 190, 191,
2369   282, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2370 };
2371 
2372 static const unsigned short dep170[] = {
2373   40, 41, 97, 130, 131, 134, 135, 158, 162, 169, 170, 175, 185, 189, 282, 2166,
2374   2167, 2170, 2173, 2327, 4135, 20616,
2375 };
2376 
2377 static const unsigned short dep171[] = {
2378   40, 41, 70, 76, 77, 82, 84, 97, 111, 137, 138, 153, 155, 158, 162, 171, 173,
2379   175, 185, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2380   20616,
2381 };
2382 
2383 static const unsigned short dep172[] = {
2384   40, 41, 70, 76, 77, 82, 84, 97, 111, 137, 138, 139, 140, 142, 143, 153, 155,
2385   158, 162, 171, 173, 175, 185, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170,
2386   2173, 4135, 20616,
2387 };
2388 
2389 static const unsigned short dep173[] = {
2390   77, 78, 97, 101, 102, 269, 270, 282, 284, 285,
2391 };
2392 
2393 static const unsigned short dep174[] = {
2394   40, 41, 47, 62, 78, 80, 86, 97, 99, 102, 137, 138, 158, 160, 161, 162, 175,
2395   185, 190, 191, 192, 269, 270, 282, 284, 285, 2138, 2139, 2140, 2166, 2167,
2396   2170, 2173, 4135, 20616,
2397 };
2398 
2399 static const unsigned short dep175[] = {
2400   40, 41, 47, 62, 78, 80, 97, 99, 102, 104, 106, 137, 138, 158, 160, 161, 162,
2401   175, 185, 190, 191, 192, 269, 270, 282, 284, 285, 2138, 2139, 2140, 2166,
2402   2167, 2170, 2173, 4135, 20616,
2403 };
2404 
2405 static const unsigned short dep176[] = {
2406   97, 282, 12480, 12481, 12633,
2407 };
2408 
2409 static const unsigned short dep177[] = {
2410   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2411   2166, 2167, 2170, 2173, 4135, 12633, 20616,
2412 };
2413 
2414 static const unsigned short dep178[] = {
2415   97, 282, 6219, 6220, 6411,
2416 };
2417 
2418 static const unsigned short dep179[] = {
2419   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2420   2166, 2167, 2170, 2173, 4135, 6411, 20616,
2421 };
2422 
2423 static const unsigned short dep180[] = {
2424   97, 282, 6237, 6424,
2425 };
2426 
2427 static const unsigned short dep181[] = {
2428   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2429   2166, 2167, 2170, 2173, 4135, 6424, 20616,
2430 };
2431 
2432 static const unsigned short dep182[] = {
2433   97, 282, 6255, 6256, 6257, 6258, 6435, 6437, 8484,
2434 };
2435 
2436 static const unsigned short dep183[] = {
2437   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2438   2166, 2167, 2170, 2173, 4135, 6258, 6436, 6437, 8304, 8483, 20616,
2439 };
2440 
2441 static const unsigned short dep184[] = {
2442   97, 282, 6259, 6260, 6438,
2443 };
2444 
2445 static const unsigned short dep185[] = {
2446   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2447   2166, 2167, 2170, 2173, 4135, 6438, 20616,
2448 };
2449 
2450 static const unsigned short dep186[] = {
2451   97, 282, 6261, 6439,
2452 };
2453 
2454 static const unsigned short dep187[] = {
2455   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2456   2166, 2167, 2170, 2173, 4135, 6439, 20616,
2457 };
2458 
2459 static const unsigned short dep188[] = {
2460   97, 282, 10350, 10530,
2461 };
2462 
2463 static const unsigned short dep189[] = {
2464   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2465   2166, 2167, 2170, 2173, 4135, 10530, 20616,
2466 };
2467 
2468 static const unsigned short dep190[] = {
2469   77, 78, 82, 83, 97, 101, 102, 269, 270, 272, 273, 282, 284, 285,
2470 };
2471 
2472 static const unsigned short dep191[] = {
2473   40, 41, 47, 62, 78, 80, 83, 86, 97, 99, 102, 137, 138, 158, 160, 161, 162,
2474   175, 185, 190, 191, 192, 269, 270, 272, 274, 282, 284, 285, 2138, 2139, 2140,
2475   2166, 2167, 2170, 2173, 4135, 20616,
2476 };
2477 
2478 static const unsigned short dep192[] = {
2479   77, 78, 97, 101, 102, 104, 105, 269, 270, 282, 284, 285, 286, 287,
2480 };
2481 
2482 static const unsigned short dep193[] = {
2483   40, 41, 47, 62, 78, 80, 97, 99, 102, 104, 106, 137, 138, 158, 160, 161, 162,
2484   175, 185, 190, 191, 192, 269, 270, 282, 284, 285, 286, 287, 2138, 2139, 2140,
2485   2166, 2167, 2170, 2173, 4135, 20616,
2486 };
2487 
2488 static const unsigned short dep194[] = {
2489   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2490   2166, 2167, 2170, 2173, 2327, 4135, 12481, 20616,
2491 };
2492 
2493 static const unsigned short dep195[] = {
2494   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2495   2166, 2167, 2170, 2173, 2327, 4135, 6219, 20616,
2496 };
2497 
2498 static const unsigned short dep196[] = {
2499   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2500   2166, 2167, 2170, 2173, 2327, 4135, 6237, 20616,
2501 };
2502 
2503 static const unsigned short dep197[] = {
2504   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2505   2166, 2167, 2170, 2173, 2327, 4135, 6257, 8303, 20616,
2506 };
2507 
2508 static const unsigned short dep198[] = {
2509   40, 41, 97, 137, 138, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140,
2510   2166, 2167, 2170, 2173, 2327, 4135, 6259, 20616,
2511 };
2512 
2513 static const unsigned short dep199[] = {
2514   40, 41, 97, 137, 138, 158, 162, 175, 183, 184, 185, 282, 2138, 2139, 2140,
2515   2166, 2167, 2170, 2173, 2327, 4135, 6260, 6261, 20616,
2516 };
2517 
2518 static const unsigned short dep200[] = {
2519   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
2520   2327, 4135, 10350, 20616,
2521 };
2522 
2523 static const unsigned short dep201[] = {
2524   40, 41, 97, 158, 162, 175, 185, 190, 191, 282, 2138, 2139, 2140, 2166, 2167,
2525   2170, 2173, 2327, 4135, 6186, 20616,
2526 };
2527 
2528 static const unsigned short dep202[] = {
2529   77, 79, 80, 97, 98, 99, 100, 268, 269, 282, 283, 284,
2530 };
2531 
2532 static const unsigned short dep203[] = {
2533   40, 41, 78, 79, 83, 85, 97, 100, 102, 104, 107, 137, 138, 158, 162, 175, 185,
2534   190, 191, 192, 268, 270, 282, 283, 285, 2138, 2139, 2140, 2166, 2167, 2170,
2535   2173, 4135, 20616,
2536 };
2537 
2538 static const unsigned short dep204[] = {
2539   77, 79, 80, 81, 97, 98, 99, 100, 103, 268, 269, 271, 282, 283, 284,
2540 };
2541 
2542 static const unsigned short dep205[] = {
2543   40, 41, 78, 79, 81, 83, 85, 97, 100, 102, 103, 104, 107, 137, 138, 158, 162,
2544   175, 185, 190, 191, 192, 268, 270, 271, 282, 283, 285, 2138, 2139, 2140, 2166,
2545   2167, 2170, 2173, 4135, 20616,
2546 };
2547 
2548 static const unsigned short dep206[] = {
2549   77, 79, 80, 84, 85, 86, 97, 98, 99, 100, 268, 269, 274, 275, 282, 283, 284,
2550 
2551 };
2552 
2553 static const unsigned short dep207[] = {
2554   40, 41, 78, 79, 83, 85, 97, 100, 102, 137, 138, 158, 162, 175, 185, 190, 191,
2555   192, 268, 270, 273, 275, 282, 283, 285, 2138, 2139, 2140, 2166, 2167, 2170,
2556   2173, 4135, 20616,
2557 };
2558 
2559 static const unsigned short dep208[] = {
2560   77, 79, 80, 97, 98, 99, 100, 106, 107, 108, 268, 269, 282, 283, 284, 287,
2561   288,
2562 };
2563 
2564 static const unsigned short dep209[] = {
2565   40, 41, 78, 79, 97, 100, 102, 104, 107, 137, 138, 158, 162, 175, 185, 190,
2566   191, 192, 268, 270, 282, 283, 285, 286, 288, 2138, 2139, 2140, 2166, 2167,
2567   2170, 2173, 4135, 20616,
2568 };
2569 
2570 static const unsigned short dep210[] = {
2571   40, 41, 46, 70, 97, 158, 162, 175, 185, 190, 191, 192, 282, 2138, 2139, 2140,
2572   2166, 2167, 2170, 2173, 2327, 4135, 20616,
2573 };
2574 
2575 static const unsigned short dep211[] = {
2576   40, 41, 97, 158, 162, 175, 185, 190, 191, 192, 282, 2138, 2139, 2140, 2166,
2577   2167, 2170, 2173, 2327, 4135, 20616,
2578 };
2579 
2580 static const unsigned short dep212[] = {
2581   40, 41, 70, 77, 82, 84, 97, 137, 138, 153, 155, 158, 162, 175, 185, 190, 191,
2582   192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2583 };
2584 
2585 static const unsigned short dep213[] = {
2586   40, 41, 97, 158, 162, 164, 175, 185, 186, 188, 282, 2135, 2136, 2137, 2138,
2587   2139, 2140, 2166, 2167, 2170, 2173, 4135, 16528, 16530, 16531, 16533, 20616,
2588 
2589 };
2590 
2591 static const unsigned short dep214[] = {
2592   40, 41, 70, 77, 82, 84, 97, 153, 155, 158, 162, 175, 185, 192, 282, 2138,
2593   2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2594 };
2595 
2596 static const unsigned short dep215[] = {
2597   40, 41, 78, 79, 97, 100, 137, 138, 158, 162, 175, 185, 190, 191, 268, 270,
2598   282, 283, 285, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2599 };
2600 
2601 static const unsigned short dep216[] = {
2602   40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135, 137,
2603   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2604   192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2605 };
2606 
2607 static const unsigned short dep217[] = {
2608   5, 97, 200, 282, 2140, 2327,
2609 };
2610 
2611 static const unsigned short dep218[] = {
2612   40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135, 137,
2613   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2614   192, 200, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2615 
2616 };
2617 
2618 static const unsigned short dep219[] = {
2619   40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2620   137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175, 185,
2621   190, 191, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2622   20616,
2623 };
2624 
2625 static const unsigned short dep220[] = {
2626   0, 97, 195, 282, 2140, 2327,
2627 };
2628 
2629 static const unsigned short dep221[] = {
2630   0, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2631   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2632   191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2633   20616,
2634 };
2635 
2636 static const unsigned short dep222[] = {
2637   0, 40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133,
2638   135, 137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175,
2639   185, 190, 191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327,
2640   4135, 20616,
2641 };
2642 
2643 static const unsigned short dep223[] = {
2644   31, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2645   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2646   191, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135, 20616,
2647 
2648 };
2649 
2650 static const unsigned short dep224[] = {
2651   0, 97, 195, 282, 2327, 26715,
2652 };
2653 
2654 static const unsigned short dep225[] = {
2655   0, 97, 109, 195, 282, 289,
2656 };
2657 
2658 static const unsigned short dep226[] = {
2659   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2660   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2661   192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2662 
2663 };
2664 
2665 static const unsigned short dep227[] = {
2666   0, 5, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2667   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2668   192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2669 
2670 };
2671 
2672 static const unsigned short dep228[] = {
2673   0, 31, 97, 109, 195, 234, 282, 289,
2674 };
2675 
2676 static const unsigned short dep229[] = {
2677   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2678   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2679   192, 195, 234, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 4135, 20616,
2680 
2681 };
2682 
2683 static const unsigned short dep230[] = {
2684   0, 97, 109, 195, 282, 289, 2140, 2327,
2685 };
2686 
2687 static const unsigned short dep231[] = {
2688   0, 3, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2689   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2690   191, 192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2691   20616,
2692 };
2693 
2694 static const unsigned short dep232[] = {
2695   0, 3, 5, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133,
2696   135, 137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185,
2697   190, 191, 192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327,
2698   4135, 20616,
2699 };
2700 
2701 static const unsigned short dep233[] = {
2702   0, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2703   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2704   191, 192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2705   20616,
2706 };
2707 
2708 static const unsigned short dep234[] = {
2709   40, 41, 97, 158, 162, 175, 185, 282, 2135, 2136, 2137, 2166, 2167, 2170, 2173,
2710   2327, 4135, 16528, 16530, 16531, 16533, 20616,
2711 };
2712 
2713 static const unsigned short dep235[] = {
2714   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2715   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2716   192, 195, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2717   20616,
2718 };
2719 
2720 static const unsigned short dep236[] = {
2721   0, 31, 97, 109, 195, 234, 282, 289, 2140, 2327,
2722 };
2723 
2724 static const unsigned short dep237[] = {
2725   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2726   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2727   192, 195, 234, 282, 289, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2327, 4135,
2728   20616,
2729 };
2730 
2731 static const unsigned short dep238[] = {
2732   40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135, 137,
2733   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2734   192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 4135, 16528, 16530,
2735   16531, 16533, 18761, 18763, 18764, 18766, 20616,
2736 };
2737 
2738 static const unsigned short dep239[] = {
2739   40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2740   137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175, 185,
2741   190, 191, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 4135,
2742   16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2743 };
2744 
2745 static const unsigned short dep240[] = {
2746   0, 97, 195, 282, 2136, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
2747 };
2748 
2749 static const unsigned short dep241[] = {
2750   0, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2751   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2752   191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 4135,
2753   16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2754 };
2755 
2756 static const unsigned short dep242[] = {
2757   0, 40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133,
2758   135, 137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175,
2759   185, 190, 191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325,
2760   4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2761 };
2762 
2763 static const unsigned short dep243[] = {
2764   0, 97, 195, 282, 2137, 2325, 18601, 18602, 18761, 18762, 18764, 18765,
2765 };
2766 
2767 static const unsigned short dep244[] = {
2768   97, 282, 2136, 2140, 2325, 2327, 18601, 18602, 18761, 18762, 18764, 18765,
2769 
2770 };
2771 
2772 static const unsigned short dep245[] = {
2773   40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135, 137,
2774   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2775   192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 2327, 4135, 16528,
2776   16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2777 };
2778 
2779 static const unsigned short dep246[] = {
2780   40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2781   137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175, 185,
2782   190, 191, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 2327,
2783   4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2784 };
2785 
2786 static const unsigned short dep247[] = {
2787   0, 97, 195, 282, 2136, 2140, 2325, 2327, 18601, 18602, 18761, 18762, 18764,
2788   18765,
2789 };
2790 
2791 static const unsigned short dep248[] = {
2792   0, 40, 41, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133, 135,
2793   137, 138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190,
2794   191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325, 2327,
2795   4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2796 };
2797 
2798 static const unsigned short dep249[] = {
2799   0, 40, 41, 44, 70, 76, 77, 82, 84, 97, 109, 111, 128, 129, 131, 132, 133,
2800   135, 137, 138, 139, 140, 142, 143, 153, 155, 156, 158, 162, 171, 173, 175,
2801   185, 190, 191, 192, 195, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173, 2325,
2802   2327, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2803 
2804 };
2805 
2806 static const unsigned short dep250[] = {
2807   0, 97, 195, 282, 2137, 2140, 2325, 2327, 18601, 18602, 18761, 18762, 18764,
2808   18765,
2809 };
2810 
2811 static const unsigned short dep251[] = {
2812   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2813   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2814   192, 195, 282, 289, 2135, 2136, 2137, 2138, 2139, 2140, 2166, 2167, 2170,
2815   2173, 4135, 16528, 16530, 16531, 16533, 20616,
2816 };
2817 
2818 static const unsigned short dep252[] = {
2819   40, 41, 70, 76, 77, 82, 84, 97, 137, 138, 139, 140, 142, 143, 153, 155, 156,
2820   158, 162, 171, 173, 175, 185, 192, 282, 2166, 2167, 2170, 2173, 4135,
2821 };
2822 
2823 static const unsigned short dep253[] = {
2824   40, 41, 70, 76, 77, 82, 84, 97, 137, 138, 139, 140, 142, 143, 153, 155, 156,
2825   158, 162, 171, 173, 175, 185, 192, 282, 2138, 2139, 2140, 2166, 2167, 2170,
2826   2173, 2327, 4135, 20616,
2827 };
2828 
2829 static const unsigned short dep254[] = {
2830   40, 41, 97, 158, 162, 175, 185, 282, 2138, 2139, 2140, 2166, 2167, 2170, 2173,
2831   2325, 4135, 16528, 16530, 16531, 16533, 18761, 18763, 18764, 18766, 20616,
2832 
2833 };
2834 
2835 static const unsigned short dep255[] = {
2836   0, 40, 41, 70, 76, 77, 82, 84, 97, 111, 128, 129, 131, 132, 133, 135, 137,
2837   138, 139, 140, 142, 143, 153, 155, 158, 162, 171, 173, 175, 185, 190, 191,
2838   192, 195, 282, 289, 2135, 2136, 2137, 2138, 2139, 2140, 2166, 2167, 2170,
2839   2173, 2327, 4135, 16528, 16530, 16531, 16533, 20616,
2840 };
2841 
2842 static const unsigned short dep256[] = {
2843   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2844   22, 24, 26, 27, 28, 29, 30, 31, 97, 196, 197, 198, 199, 200, 201, 202, 203,
2845   204, 205, 206, 207, 208, 209, 211, 212, 214, 215, 217, 218, 220, 221, 222,
2846   223, 224, 225, 227, 230, 231, 232, 233, 234, 282, 2071, 2081, 2140, 2274,
2847   2284, 2327, 28866, 29018,
2848 };
2849 
2850 static const unsigned short dep257[] = {
2851   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
2852   22, 24, 25, 26, 28, 29, 30, 31, 40, 41, 97, 137, 138, 158, 162, 175, 180,
2853   181, 185, 190, 191, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
2854   207, 208, 209, 211, 212, 214, 215, 217, 218, 220, 221, 222, 223, 224, 225,
2855   227, 229, 231, 232, 233, 234, 282, 2071, 2081, 2138, 2139, 2140, 2166, 2167,
2856   2170, 2173, 2274, 2284, 2327, 4135, 20616, 28866, 29018,
2857 };
2858 
2859 #define NELS(X) (sizeof(X)/sizeof(X[0]))
2860 static const struct ia64_opcode_dependency
2861 op_dependencies[] = {
2862   { NELS(dep1), dep1, NELS(dep0), dep0, },
2863   { NELS(dep3), dep3, NELS(dep2), dep2, },
2864   { NELS(dep5), dep5, NELS(dep4), dep4, },
2865   { NELS(dep7), dep7, NELS(dep6), dep6, },
2866   { NELS(dep9), dep9, NELS(dep8), dep8, },
2867   { NELS(dep11), dep11, NELS(dep10), dep10, },
2868   { NELS(dep13), dep13, NELS(dep12), dep12, },
2869   { NELS(dep15), dep15, NELS(dep14), dep14, },
2870   { NELS(dep17), dep17, NELS(dep16), dep16, },
2871   { NELS(dep19), dep19, NELS(dep18), dep18, },
2872   { NELS(dep21), dep21, NELS(dep20), dep20, },
2873   { NELS(dep23), dep23, NELS(dep22), dep22, },
2874   { NELS(dep25), dep25, NELS(dep24), dep24, },
2875   { NELS(dep27), dep27, NELS(dep26), dep26, },
2876   { NELS(dep29), dep29, NELS(dep28), dep28, },
2877   { NELS(dep30), dep30, NELS(dep12), dep12, },
2878   { NELS(dep32), dep32, NELS(dep31), dep31, },
2879   { NELS(dep34), dep34, NELS(dep33), dep33, },
2880   { NELS(dep35), dep35, NELS(dep12), dep12, },
2881   { NELS(dep37), dep37, NELS(dep36), dep36, },
2882   { NELS(dep39), dep39, NELS(dep38), dep38, },
2883   { NELS(dep41), dep41, NELS(dep40), dep40, },
2884   { NELS(dep42), dep42, NELS(dep31), dep31, },
2885   { NELS(dep43), dep43, NELS(dep33), dep33, },
2886   { NELS(dep45), dep45, NELS(dep44), dep44, },
2887   { NELS(dep47), dep47, NELS(dep46), dep46, },
2888   { NELS(dep49), dep49, NELS(dep48), dep48, },
2889   { NELS(dep51), dep51, NELS(dep50), dep50, },
2890   { NELS(dep53), dep53, NELS(dep52), dep52, },
2891   { NELS(dep55), dep55, NELS(dep54), dep54, },
2892   { NELS(dep57), dep57, NELS(dep56), dep56, },
2893   { NELS(dep59), dep59, NELS(dep58), dep58, },
2894   { NELS(dep61), dep61, NELS(dep60), dep60, },
2895   { NELS(dep63), dep63, NELS(dep62), dep62, },
2896   { NELS(dep65), dep65, NELS(dep64), dep64, },
2897   { NELS(dep67), dep67, NELS(dep66), dep66, },
2898   { NELS(dep68), dep68, NELS(dep33), dep33, },
2899   { NELS(dep70), dep70, NELS(dep69), dep69, },
2900   { NELS(dep72), dep72, NELS(dep71), dep71, },
2901   { NELS(dep74), dep74, NELS(dep73), dep73, },
2902   { NELS(dep76), dep76, NELS(dep75), dep75, },
2903   { NELS(dep77), dep77, NELS(dep33), dep33, },
2904   { NELS(dep79), dep79, NELS(dep78), dep78, },
2905   { NELS(dep81), dep81, NELS(dep80), dep80, },
2906   { NELS(dep83), dep83, NELS(dep82), dep82, },
2907   { NELS(dep84), dep84, NELS(dep33), dep33, },
2908   { NELS(dep85), dep85, NELS(dep33), dep33, },
2909   { NELS(dep86), dep86, NELS(dep33), dep33, },
2910   { NELS(dep87), dep87, NELS(dep33), dep33, },
2911   { NELS(dep89), dep89, NELS(dep88), dep88, },
2912   { NELS(dep91), dep91, NELS(dep90), dep90, },
2913   { NELS(dep93), dep93, NELS(dep92), dep92, },
2914   { NELS(dep95), dep95, NELS(dep94), dep94, },
2915   { NELS(dep97), dep97, NELS(dep96), dep96, },
2916   { NELS(dep99), dep99, NELS(dep98), dep98, },
2917   { NELS(dep101), dep101, NELS(dep100), dep100, },
2918   { NELS(dep103), dep103, NELS(dep102), dep102, },
2919   { NELS(dep105), dep105, NELS(dep104), dep104, },
2920   { NELS(dep107), dep107, NELS(dep106), dep106, },
2921   { NELS(dep109), dep109, NELS(dep108), dep108, },
2922   { NELS(dep111), dep111, NELS(dep110), dep110, },
2923   { NELS(dep113), dep113, NELS(dep112), dep112, },
2924   { NELS(dep115), dep115, NELS(dep114), dep114, },
2925   { NELS(dep117), dep117, NELS(dep116), dep116, },
2926   { NELS(dep119), dep119, NELS(dep118), dep118, },
2927   { NELS(dep121), dep121, NELS(dep120), dep120, },
2928   { NELS(dep122), dep122, NELS(dep64), dep64, },
2929   { NELS(dep123), dep123, NELS(dep33), dep33, },
2930   { NELS(dep125), dep125, NELS(dep124), dep124, },
2931   { NELS(dep126), dep126, NELS(dep0), dep0, },
2932   { NELS(dep128), dep128, NELS(dep127), dep127, },
2933   { NELS(dep130), dep130, NELS(dep129), dep129, },
2934   { NELS(dep131), dep131, NELS(dep0), dep0, },
2935   { NELS(dep132), dep132, NELS(dep0), dep0, },
2936   { NELS(dep134), dep134, NELS(dep133), dep133, },
2937   { NELS(dep135), dep135, NELS(dep0), dep0, },
2938   { NELS(dep136), dep136, NELS(dep2), dep2, },
2939   { NELS(dep137), dep137, NELS(dep4), dep4, },
2940   { NELS(dep138), dep138, NELS(dep6), dep6, },
2941   { NELS(dep139), dep139, NELS(dep8), dep8, },
2942   { NELS(dep140), dep140, NELS(dep10), dep10, },
2943   { NELS(dep141), dep141, NELS(dep33), dep33, },
2944   { NELS(dep143), dep143, NELS(dep142), dep142, },
2945   { NELS(dep144), dep144, NELS(dep142), dep142, },
2946   { NELS(dep146), dep146, NELS(dep145), dep145, },
2947   { NELS(dep147), dep147, NELS(dep145), dep145, },
2948   { NELS(dep148), dep148, NELS(dep142), dep142, },
2949   { NELS(dep150), dep150, NELS(dep149), dep149, },
2950   { NELS(dep152), dep152, NELS(dep151), dep151, },
2951   { NELS(dep154), dep154, NELS(dep153), dep153, },
2952   { NELS(dep156), dep156, NELS(dep155), dep155, },
2953   { NELS(dep157), dep157, NELS(dep155), dep155, },
2954   { NELS(dep158), dep158, NELS(dep0), dep0, },
2955   { NELS(dep160), dep160, NELS(dep159), dep159, },
2956   { NELS(dep162), dep162, NELS(dep161), dep161, },
2957   { NELS(dep164), dep164, NELS(dep163), dep163, },
2958   { NELS(dep166), dep166, NELS(dep165), dep165, },
2959   { NELS(dep168), dep168, NELS(dep167), dep167, },
2960   { NELS(dep169), dep169, NELS(dep0), dep0, },
2961   { NELS(dep170), dep170, NELS(dep0), dep0, },
2962   { NELS(dep171), dep171, NELS(dep0), dep0, },
2963   { NELS(dep172), dep172, NELS(dep33), dep33, },
2964   { NELS(dep174), dep174, NELS(dep173), dep173, },
2965   { NELS(dep175), dep175, NELS(dep173), dep173, },
2966   { NELS(dep177), dep177, NELS(dep176), dep176, },
2967   { NELS(dep179), dep179, NELS(dep178), dep178, },
2968   { NELS(dep181), dep181, NELS(dep180), dep180, },
2969   { NELS(dep183), dep183, NELS(dep182), dep182, },
2970   { NELS(dep185), dep185, NELS(dep184), dep184, },
2971   { NELS(dep187), dep187, NELS(dep186), dep186, },
2972   { NELS(dep189), dep189, NELS(dep188), dep188, },
2973   { NELS(dep191), dep191, NELS(dep190), dep190, },
2974   { NELS(dep193), dep193, NELS(dep192), dep192, },
2975   { NELS(dep194), dep194, NELS(dep0), dep0, },
2976   { NELS(dep195), dep195, NELS(dep0), dep0, },
2977   { NELS(dep196), dep196, NELS(dep0), dep0, },
2978   { NELS(dep197), dep197, NELS(dep0), dep0, },
2979   { NELS(dep198), dep198, NELS(dep0), dep0, },
2980   { NELS(dep199), dep199, NELS(dep0), dep0, },
2981   { NELS(dep200), dep200, NELS(dep0), dep0, },
2982   { NELS(dep201), dep201, NELS(dep0), dep0, },
2983   { NELS(dep203), dep203, NELS(dep202), dep202, },
2984   { NELS(dep205), dep205, NELS(dep204), dep204, },
2985   { NELS(dep207), dep207, NELS(dep206), dep206, },
2986   { NELS(dep209), dep209, NELS(dep208), dep208, },
2987   { NELS(dep210), dep210, NELS(dep0), dep0, },
2988   { NELS(dep211), dep211, NELS(dep0), dep0, },
2989   { NELS(dep212), dep212, NELS(dep0), dep0, },
2990   { NELS(dep213), dep213, NELS(dep33), dep33, },
2991   { NELS(dep214), dep214, NELS(dep33), dep33, },
2992   { NELS(dep215), dep215, NELS(dep202), dep202, },
2993   { NELS(dep216), dep216, NELS(dep0), dep0, },
2994   { NELS(dep218), dep218, NELS(dep217), dep217, },
2995   { NELS(dep219), dep219, NELS(dep0), dep0, },
2996   { NELS(dep221), dep221, NELS(dep220), dep220, },
2997   { NELS(dep222), dep222, NELS(dep220), dep220, },
2998   { NELS(dep223), dep223, NELS(dep0), dep0, },
2999   { NELS(dep221), dep221, NELS(dep224), dep224, },
3000   { NELS(dep226), dep226, NELS(dep225), dep225, },
3001   { NELS(dep227), dep227, NELS(dep225), dep225, },
3002   { NELS(dep229), dep229, NELS(dep228), dep228, },
3003   { NELS(dep231), dep231, NELS(dep230), dep230, },
3004   { NELS(dep232), dep232, NELS(dep230), dep230, },
3005   { NELS(dep233), dep233, NELS(dep230), dep230, },
3006   { NELS(dep234), dep234, NELS(dep0), dep0, },
3007   { NELS(dep235), dep235, NELS(dep230), dep230, },
3008   { NELS(dep237), dep237, NELS(dep236), dep236, },
3009   { NELS(dep238), dep238, NELS(dep64), dep64, },
3010   { NELS(dep239), dep239, NELS(dep64), dep64, },
3011   { NELS(dep241), dep241, NELS(dep240), dep240, },
3012   { NELS(dep242), dep242, NELS(dep240), dep240, },
3013   { NELS(dep241), dep241, NELS(dep243), dep243, },
3014   { NELS(dep245), dep245, NELS(dep244), dep244, },
3015   { NELS(dep246), dep246, NELS(dep244), dep244, },
3016   { NELS(dep248), dep248, NELS(dep247), dep247, },
3017   { NELS(dep249), dep249, NELS(dep247), dep247, },
3018   { NELS(dep248), dep248, NELS(dep250), dep250, },
3019   { NELS(dep251), dep251, NELS(dep225), dep225, },
3020   { NELS(dep252), dep252, NELS(dep33), dep33, },
3021   { NELS(dep253), dep253, NELS(dep0), dep0, },
3022   { NELS(dep254), dep254, NELS(dep64), dep64, },
3023   { NELS(dep255), dep255, NELS(dep230), dep230, },
3024   { 0, NULL, 0, NULL, },
3025   { NELS(dep257), dep257, NELS(dep256), dep256, },
3026 };
3027 
3028 static const struct ia64_completer_table
3029 completer_table[] = {
3030   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3031   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3032   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3033   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3034   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3035   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3036   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3037   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3038   { 0x0, 0x0, 0, -1, -1, 0, 1, 95 },
3039   { 0x0, 0x0, 0, -1, -1, 0, 1, 95 },
3040   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3041   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3042   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3043   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3044   { 0x0, 0x0, 0, 594, -1, 0, 1, 6 },
3045   { 0x0, 0x0, 0, 657, -1, 0, 1, 18 },
3046   { 0x0, 0x0, 0, -1, -1, 0, 1, 162 },
3047   { 0x0, 0x0, 0, 756, -1, 0, 1, 18 },
3048   { 0x0, 0x0, 0, 2198, -1, 0, 1, 10 },
3049   { 0x0, 0x0, 0, -1, -1, 0, 1, 9 },
3050   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3051   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3052   { 0x0, 0x0, 0, -1, -1, 0, 1, 13 },
3053   { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
3054   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3055   { 0x0, 0x0, 0, 2406, -1, 0, 1, 30 },
3056   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3057   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3058   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3059   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3060   { 0x0, 0x0, 0, 1140, -1, 0, 1, 129 },
3061   { 0x0, 0x0, 0, -1, -1, 0, 1, 45 },
3062   { 0x0, 0x0, 0, -1, -1, 0, 1, 41 },
3063   { 0x0, 0x0, 0, -1, -1, 0, 1, 84 },
3064   { 0x0, 0x0, 0, 2246, -1, 0, 1, 30 },
3065   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3066   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3067   { 0x0, 0x0, 0, 2473, -1, 0, 1, 30 },
3068   { 0x0, 0x0, 0, 2250, -1, 0, 1, 30 },
3069   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3070   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3071   { 0x0, 0x0, 0, 2252, -1, 0, 1, 30 },
3072   { 0x0, 0x0, 0, 2482, -1, 0, 1, 30 },
3073   { 0x0, 0x0, 0, 2485, -1, 0, 1, 30 },
3074   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3075   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3076   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3077   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3078   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3079   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3080   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3081   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3082   { 0x0, 0x0, 0, 2507, -1, 0, 1, 30 },
3083   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3084   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3085   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3086   { 0x0, 0x0, 0, -1, -1, 0, 1, 30 },
3087   { 0x0, 0x0, 0, 2510, -1, 0, 1, 30 },
3088   { 0x0, 0x0, 0, -1, -1, 0, 1, 25 },
3089   { 0x0, 0x0, 0, -1, -1, 0, 1, 25 },
3090   { 0x0, 0x0, 0, -1, -1, 0, 1, 25 },
3091   { 0x0, 0x0, 0, -1, -1, 0, 1, 25 },
3092   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3093   { 0x0, 0x0, 0, -1, -1, 0, 1, 36 },
3094   { 0x0, 0x0, 0, 2518, -1, 0, 1, 30 },
3095   { 0x0, 0x0, 0, 1409, -1, 0, 1, 34 },
3096   { 0x0, 0x0, 0, -1, -1, 0, 1, 41 },
3097   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3098   { 0x0, 0x0, 0, -1, -1, 0, 1, 162 },
3099   { 0x0, 0x0, 0, -1, -1, 0, 1, 83 },
3100   { 0x0, 0x0, 0, 1457, -1, 0, 1, 131 },
3101   { 0x0, 0x0, 0, 1466, -1, 0, 1, 131 },
3102   { 0x0, 0x0, 0, 1475, -1, 0, 1, 131 },
3103   { 0x0, 0x0, 0, 1477, -1, 0, 1, 132 },
3104   { 0x0, 0x0, 0, 1479, -1, 0, 1, 132 },
3105   { 0x0, 0x0, 0, 1488, -1, 0, 1, 131 },
3106   { 0x0, 0x0, 0, 1497, -1, 0, 1, 131 },
3107   { 0x0, 0x0, 0, 1506, -1, 0, 1, 131 },
3108   { 0x0, 0x0, 0, 1515, -1, 0, 1, 131 },
3109   { 0x0, 0x0, 0, 1524, -1, 0, 1, 131 },
3110   { 0x0, 0x0, 0, 1533, -1, 0, 1, 131 },
3111   { 0x0, 0x0, 0, 1543, -1, 0, 1, 131 },
3112   { 0x0, 0x0, 0, 1553, -1, 0, 1, 131 },
3113   { 0x0, 0x0, 0, 1563, -1, 0, 1, 131 },
3114   { 0x0, 0x0, 0, 1572, -1, 0, 1, 147 },
3115   { 0x0, 0x0, 0, 1578, -1, 0, 1, 152 },
3116   { 0x0, 0x0, 0, 1584, -1, 0, 1, 152 },
3117   { 0x0, 0x0, 0, 1590, -1, 0, 1, 147 },
3118   { 0x0, 0x0, 0, 1596, -1, 0, 1, 152 },
3119   { 0x0, 0x0, 0, 1602, -1, 0, 1, 152 },
3120   { 0x0, 0x0, 0, 1608, -1, 0, 1, 147 },
3121   { 0x0, 0x0, 0, 1614, -1, 0, 1, 152 },
3122   { 0x0, 0x0, 0, 1620, -1, 0, 1, 152 },
3123   { 0x0, 0x0, 0, 1626, -1, 0, 1, 147 },
3124   { 0x0, 0x0, 0, 1632, -1, 0, 1, 152 },
3125   { 0x0, 0x0, 0, 1638, -1, 0, 1, 147 },
3126   { 0x0, 0x0, 0, 1644, -1, 0, 1, 152 },
3127   { 0x0, 0x0, 0, 1650, -1, 0, 1, 147 },
3128   { 0x0, 0x0, 0, 1656, -1, 0, 1, 152 },
3129   { 0x0, 0x0, 0, 1662, -1, 0, 1, 147 },
3130   { 0x0, 0x0, 0, 1668, -1, 0, 1, 152 },
3131   { 0x0, 0x0, 0, 1674, -1, 0, 1, 152 },
3132   { 0x0, 0x0, 0, 1678, -1, 0, 1, 158 },
3133   { 0x0, 0x0, 0, 1682, -1, 0, 1, 159 },
3134   { 0x0, 0x0, 0, 1686, -1, 0, 1, 159 },
3135   { 0x0, 0x0, 0, -1, -1, 0, 1, 85 },
3136   { 0x0, 0x0, 0, 258, -1, 0, 1, 41 },
3137   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3138   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3139   { 0x0, 0x0, 0, -1, -1, 0, 1, 34 },
3140   { 0x0, 0x0, 0, -1, -1, 0, 1, 68 },
3141   { 0x1, 0x1, 0, 1166, -1, 20, 1, 68 },
3142   { 0x0, 0x0, 0, -1, -1, 0, 1, 69 },
3143   { 0x0, 0x0, 0, -1, -1, 0, 1, 70 },
3144   { 0x0, 0x0, 0, -1, -1, 0, 1, 70 },
3145   { 0x0, 0x0, 0, -1, -1, 0, 1, 71 },
3146   { 0x0, 0x0, 0, -1, -1, 0, 1, 72 },
3147   { 0x0, 0x0, 0, -1, -1, 0, 1, 73 },
3148   { 0x0, 0x0, 0, -1, -1, 0, 1, 93 },
3149   { 0x0, 0x0, 0, -1, -1, 0, 1, 94 },
3150   { 0x0, 0x0, 0, -1, -1, 0, 1, 96 },
3151   { 0x0, 0x0, 0, -1, -1, 0, 1, 97 },
3152   { 0x0, 0x0, 0, -1, -1, 0, 1, 98 },
3153   { 0x0, 0x0, 0, -1, -1, 0, 1, 99 },
3154   { 0x0, 0x0, 0, -1, -1, 0, 1, 104 },
3155   { 0x0, 0x0, 0, -1, -1, 0, 1, 105 },
3156   { 0x0, 0x0, 0, -1, -1, 0, 1, 106 },
3157   { 0x0, 0x0, 0, -1, -1, 0, 1, 107 },
3158   { 0x0, 0x0, 0, -1, -1, 0, 1, 108 },
3159   { 0x0, 0x0, 0, -1, -1, 0, 1, 109 },
3160   { 0x0, 0x0, 0, -1, -1, 0, 1, 110 },
3161   { 0x0, 0x0, 0, -1, -1, 0, 1, 113 },
3162   { 0x0, 0x0, 0, -1, -1, 0, 1, 114 },
3163   { 0x0, 0x0, 0, -1, -1, 0, 1, 115 },
3164   { 0x0, 0x0, 0, -1, -1, 0, 1, 116 },
3165   { 0x0, 0x0, 0, -1, -1, 0, 1, 117 },
3166   { 0x0, 0x0, 0, -1, -1, 0, 1, 118 },
3167   { 0x0, 0x0, 0, -1, -1, 0, 1, 119 },
3168   { 0x0, 0x0, 0, -1, -1, 0, 1, 120 },
3169   { 0x0, 0x0, 0, -1, -1, 0, 1, 163 },
3170   { 0x0, 0x0, 0, -1, -1, 0, 1, 163 },
3171   { 0x0, 0x0, 0, -1, -1, 0, 1, 163 },
3172   { 0x0, 0x0, 0, -1, -1, 0, 1, 72 },
3173   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3174   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3175   { 0x0, 0x0, 0, -1, -1, 0, 1, 162 },
3176   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3177   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3178   { 0x0, 0x0, 0, 2858, -1, 0, 1, 0 },
3179   { 0x0, 0x0, 0, 2859, -1, 0, 1, 0 },
3180   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3181   { 0x0, 0x0, 0, 2210, -1, 0, 1, 0 },
3182   { 0x0, 0x0, 0, 2211, -1, 0, 1, 0 },
3183   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3184   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3185   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3186   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3187   { 0x0, 0x0, 0, 2873, -1, 0, 1, 0 },
3188   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3189   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3190   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3191   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3192   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3193   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3194   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3195   { 0x0, 0x0, 0, 2874, -1, 0, 1, 0 },
3196   { 0x0, 0x0, 0, 2875, -1, 0, 1, 0 },
3197   { 0x0, 0x0, 0, 2876, -1, 0, 1, 0 },
3198   { 0x0, 0x0, 0, 2877, -1, 0, 1, 0 },
3199   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3200   { 0x0, 0x0, 0, 2860, -1, 0, 1, 0 },
3201   { 0x0, 0x0, 0, 2861, -1, 0, 1, 0 },
3202   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3203   { 0x0, 0x0, 0, -1, -1, 0, 1, 11 },
3204   { 0x0, 0x0, 0, -1, -1, 0, 1, 91 },
3205   { 0x0, 0x0, 0, -1, -1, 0, 1, 89 },
3206   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3207   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3208   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3209   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3210   { 0x1, 0x1, 0, -1, -1, 13, 1, 0 },
3211   { 0x0, 0x0, 0, 2879, -1, 0, 1, 0 },
3212   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3213   { 0x0, 0x0, 0, -1, -1, 0, 1, 90 },
3214   { 0x0, 0x0, 0, 1966, -1, 0, 1, 138 },
3215   { 0x0, 0x0, 0, 1968, -1, 0, 1, 145 },
3216   { 0x0, 0x0, 0, 1970, -1, 0, 1, 139 },
3217   { 0x0, 0x0, 0, 1972, -1, 0, 1, 139 },
3218   { 0x0, 0x0, 0, 1974, -1, 0, 1, 138 },
3219   { 0x0, 0x0, 0, 1976, -1, 0, 1, 145 },
3220   { 0x0, 0x0, 0, 1978, -1, 0, 1, 138 },
3221   { 0x0, 0x0, 0, 1980, -1, 0, 1, 145 },
3222   { 0x0, 0x0, 0, 1983, -1, 0, 1, 138 },
3223   { 0x0, 0x0, 0, 1986, -1, 0, 1, 145 },
3224   { 0x0, 0x0, 0, 1989, -1, 0, 1, 157 },
3225   { 0x0, 0x0, 0, 1990, -1, 0, 1, 161 },
3226   { 0x0, 0x0, 0, 1991, -1, 0, 1, 157 },
3227   { 0x0, 0x0, 0, 1992, -1, 0, 1, 161 },
3228   { 0x0, 0x0, 0, 1993, -1, 0, 1, 157 },
3229   { 0x0, 0x0, 0, 1994, -1, 0, 1, 161 },
3230   { 0x0, 0x0, 0, 1995, -1, 0, 1, 157 },
3231   { 0x0, 0x0, 0, 1996, -1, 0, 1, 161 },
3232   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3233   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3234   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3235   { 0x0, 0x0, 0, -1, -1, 0, 1, 88 },
3236   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3237   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3238   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3239   { 0x0, 0x0, 0, -1, -1, 0, 1, 127 },
3240   { 0x0, 0x0, 0, -1, -1, 0, 1, 125 },
3241   { 0x0, 0x0, 0, -1, -1, 0, 1, 127 },
3242   { 0x0, 0x0, 0, -1, -1, 0, 1, 126 },
3243   { 0x0, 0x0, 0, 1687, -1, 0, 1, 143 },
3244   { 0x0, 0x0, 0, 1688, -1, 0, 1, 143 },
3245   { 0x0, 0x0, 0, 1689, -1, 0, 1, 143 },
3246   { 0x0, 0x0, 0, 1690, -1, 0, 1, 143 },
3247   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3248   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3249   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3250   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3251   { 0x0, 0x0, 0, -1, -1, 0, 1, 0 },
3252   { 0x0, 0x0, 1, 224, -1, 0, 1, 12 },
3253   { 0x0, 0x0, 1, 225, -1, 0, 1, 14 },
3254   { 0x1, 0x1, 2, -1, -1, 27, 1, 12 },
3255   { 0x1, 0x1, 2, -1, -1, 27, 1, 14 },
3256   { 0x0, 0x0, 3, -1, 1340, 0, 0, -1 },
3257   { 0x0, 0x0, 3, -1, 1341, 0, 0, -1 },
3258   { 0x1, 0x1, 3, 2749, 1450, 33, 1, 134 },
3259   { 0x1, 0x1, 3, 2750, 1459, 33, 1, 134 },
3260   { 0x1, 0x1, 3, 2751, 1468, 33, 1, 134 },
3261   { 0x1, 0x1, 3, 2752, 1481, 33, 1, 134 },
3262   { 0x1, 0x1, 3, 2753, 1490, 33, 1, 134 },
3263   { 0x1, 0x1, 3, 2754, 1499, 33, 1, 134 },
3264   { 0x1, 0x1, 3, 2755, 1508, 33, 1, 134 },
3265   { 0x1, 0x1, 3, 2756, 1517, 33, 1, 134 },
3266   { 0x1, 0x1, 3, 2757, 1526, 33, 1, 134 },
3267   { 0x1, 0x1, 3, 2758, 1535, 33, 1, 134 },
3268   { 0x1, 0x1, 3, 2759, 1545, 33, 1, 134 },
3269   { 0x1, 0x1, 3, 2760, 1555, 33, 1, 134 },
3270   { 0x1, 0x1, 3, 2761, 1568, 33, 1, 149 },
3271   { 0x1, 0x1, 3, 2762, 1574, 33, 1, 154 },
3272   { 0x1, 0x1, 3, 2763, 1580, 33, 1, 154 },
3273   { 0x1, 0x1, 3, 2764, 1586, 33, 1, 149 },
3274   { 0x1, 0x1, 3, 2765, 1592, 33, 1, 154 },
3275   { 0x1, 0x1, 3, 2766, 1598, 33, 1, 154 },
3276   { 0x1, 0x1, 3, 2767, 1604, 33, 1, 149 },
3277   { 0x1, 0x1, 3, 2768, 1610, 33, 1, 154 },
3278   { 0x1, 0x1, 3, 2769, 1616, 33, 1, 154 },
3279   { 0x1, 0x1, 3, 2770, 1622, 33, 1, 149 },
3280   { 0x1, 0x1, 3, 2771, 1628, 33, 1, 154 },
3281   { 0x1, 0x1, 3, 2772, 1634, 33, 1, 149 },
3282   { 0x1, 0x1, 3, 2773, 1640, 33, 1, 154 },
3283   { 0x1, 0x1, 3, 2774, 1646, 33, 1, 149 },
3284   { 0x1, 0x1, 3, 2775, 1652, 33, 1, 154 },
3285   { 0x1, 0x1, 3, 2776, 1658, 33, 1, 149 },
3286   { 0x1, 0x1, 3, 2777, 1664, 33, 1, 154 },
3287   { 0x1, 0x1, 3, 2778, 1670, 33, 1, 154 },
3288   { 0x1, 0x1, 3, -1, -1, 27, 1, 41 },
3289   { 0x0, 0x0, 4, 2212, 1425, 0, 1, 142 },
3290   { 0x0, 0x0, 4, 2213, 1427, 0, 1, 142 },
3291   { 0x0, 0x0, 4, 2214, 1429, 0, 1, 141 },
3292   { 0x0, 0x0, 4, 2215, 1431, 0, 1, 141 },
3293   { 0x0, 0x0, 4, 2216, 1433, 0, 1, 141 },
3294   { 0x0, 0x0, 4, 2217, 1435, 0, 1, 141 },
3295   { 0x0, 0x0, 4, 2218, 1437, 0, 1, 141 },
3296   { 0x0, 0x0, 4, 2219, 1439, 0, 1, 141 },
3297   { 0x0, 0x0, 4, 2220, 1441, 0, 1, 141 },
3298   { 0x0, 0x0, 4, 2221, 1443, 0, 1, 141 },
3299   { 0x0, 0x0, 4, 2222, 1445, 0, 1, 143 },
3300   { 0x0, 0x0, 4, 2223, 1447, 0, 1, 143 },
3301   { 0x1, 0x1, 4, -1, 1454, 33, 1, 137 },
3302   { 0x5, 0x5, 4, 552, 1453, 32, 1, 131 },
3303   { 0x1, 0x1, 4, -1, 1463, 33, 1, 137 },
3304   { 0x5, 0x5, 4, 553, 1462, 32, 1, 131 },
3305   { 0x1, 0x1, 4, -1, 1472, 33, 1, 137 },
3306   { 0x5, 0x5, 4, 554, 1471, 32, 1, 131 },
3307   { 0x1, 0x1, 4, -1, 1476, 32, 1, 132 },
3308   { 0x1, 0x1, 4, -1, 1478, 32, 1, 132 },
3309   { 0x1, 0x1, 4, -1, 1485, 33, 1, 137 },
3310   { 0x5, 0x5, 4, 555, 1484, 32, 1, 131 },
3311   { 0x1, 0x1, 4, -1, 1494, 33, 1, 137 },
3312   { 0x5, 0x5, 4, 556, 1493, 32, 1, 131 },
3313   { 0x1, 0x1, 4, -1, 1503, 33, 1, 137 },
3314   { 0x5, 0x5, 4, 557, 1502, 32, 1, 131 },
3315   { 0x1, 0x1, 4, -1, 1512, 33, 1, 137 },
3316   { 0x5, 0x5, 4, 558, 1511, 32, 1, 131 },
3317   { 0x1, 0x1, 4, -1, 1521, 33, 1, 137 },
3318   { 0x5, 0x5, 4, 559, 1520, 32, 1, 131 },
3319   { 0x1, 0x1, 4, -1, 1530, 33, 1, 137 },
3320   { 0x5, 0x5, 4, 560, 1529, 32, 1, 131 },
3321   { 0x1, 0x1, 4, -1, 1540, 33, 1, 137 },
3322   { 0x5, 0x5, 4, 1036, 1538, 32, 1, 131 },
3323   { 0x1, 0x1, 4, -1, 1550, 33, 1, 137 },
3324   { 0x5, 0x5, 4, 1037, 1548, 32, 1, 131 },
3325   { 0x1, 0x1, 4, -1, 1560, 33, 1, 137 },
3326   { 0x5, 0x5, 4, 1038, 1558, 32, 1, 131 },
3327   { 0x1, 0x21, 10, 2013, -1, 33, 1, 3 },
3328   { 0x200001, 0x200001, 10, 2014, -1, 12, 1, 3 },
3329   { 0x1, 0x21, 10, 420, -1, 33, 1, 3 },
3330   { 0x200001, 0x200001, 10, 2074, -1, 12, 1, 3 },
3331   { 0x0, 0x0, 10, -1, 2075, 0, 0, -1 },
3332   { 0x0, 0x0, 10, -1, 2076, 0, 0, -1 },
3333   { 0x0, 0x0, 10, 2017, -1, 0, 1, 3 },
3334   { 0x1, 0x1, 10, 2018, -1, 12, 1, 3 },
3335   { 0x1, 0x1, 10, 2019, -1, 33, 1, 3 },
3336   { 0x200001, 0x200001, 10, 2020, -1, 12, 1, 3 },
3337   { 0x0, 0x0, 10, 430, -1, 0, 1, 3 },
3338   { 0x1, 0x1, 10, 2080, -1, 12, 1, 3 },
3339   { 0x1, 0x1, 10, 434, -1, 33, 1, 3 },
3340   { 0x200001, 0x200001, 10, 2082, -1, 12, 1, 3 },
3341   { 0x0, 0x0, 10, 438, -1, 0, 1, 3 },
3342   { 0x1, 0x1, 10, 2084, -1, 12, 1, 3 },
3343   { 0x1, 0x1, 10, 442, -1, 33, 1, 3 },
3344   { 0x200001, 0x200001, 10, 2086, -1, 12, 1, 3 },
3345   { 0x0, 0x0, 10, 446, -1, 0, 1, 3 },
3346   { 0x1, 0x1, 10, 2088, -1, 12, 1, 3 },
3347   { 0x1, 0x1, 10, 450, -1, 33, 1, 3 },
3348   { 0x200001, 0x200001, 10, 2090, -1, 12, 1, 3 },
3349   { 0x1, 0x21, 10, 2033, -1, 33, 1, 3 },
3350   { 0x200001, 0x200001, 10, 2034, -1, 12, 1, 3 },
3351   { 0x1, 0x21, 10, 460, -1, 33, 1, 3 },
3352   { 0x200001, 0x200001, 10, 2096, -1, 12, 1, 3 },
3353   { 0x0, 0x0, 10, -1, 2097, 0, 0, -1 },
3354   { 0x0, 0x0, 10, -1, 2098, 0, 0, -1 },
3355   { 0x0, 0x0, 10, -1, 2101, 0, 0, -1 },
3356   { 0x0, 0x0, 10, -1, 2102, 0, 0, -1 },
3357   { 0x0, 0x0, 10, -1, 2103, 0, 0, -1 },
3358   { 0x0, 0x0, 10, -1, 2104, 0, 0, -1 },
3359   { 0x0, 0x0, 10, -1, 2105, 0, 0, -1 },
3360   { 0x0, 0x0, 10, -1, 2106, 0, 0, -1 },
3361   { 0x0, 0x0, 10, -1, 2107, 0, 0, -1 },
3362   { 0x0, 0x0, 10, -1, 2108, 0, 0, -1 },
3363   { 0x0, 0x0, 10, -1, 2109, 0, 0, -1 },
3364   { 0x0, 0x0, 10, -1, 2110, 0, 0, -1 },
3365   { 0x0, 0x0, 10, -1, 2111, 0, 0, -1 },
3366   { 0x0, 0x0, 10, -1, 2112, 0, 0, -1 },
3367   { 0x0, 0x0, 10, -1, 2113, 0, 0, -1 },
3368   { 0x0, 0x0, 10, -1, 2114, 0, 0, -1 },
3369   { 0x0, 0x0, 10, -1, 2115, 0, 0, -1 },
3370   { 0x0, 0x0, 10, -1, 2116, 0, 0, -1 },
3371   { 0x0, 0x0, 10, -1, 2117, 0, 0, -1 },
3372   { 0x0, 0x0, 10, -1, 2118, 0, 0, -1 },
3373   { 0x0, 0x0, 10, -1, 2119, 0, 0, -1 },
3374   { 0x0, 0x0, 10, -1, 2120, 0, 0, -1 },
3375   { 0x1, 0x21, 10, 2037, -1, 33, 1, 3 },
3376   { 0x200001, 0x200001, 10, 2038, -1, 12, 1, 3 },
3377   { 0x1, 0x21, 10, 468, -1, 33, 1, 3 },
3378   { 0x200001, 0x200001, <