+/* condbit: condition bit */
+ { "condbit", 0, 0, { 0, 0|(1<<CGEN_OPERAND_FAKE), { 0 } } },
+/* accum: accumulator */
+ { "accum", 0, 0, { 0, 0|(1<<CGEN_OPERAND_FAKE), { 0 } } },
+/* abort-parallel-execution: abort parallel execution */
+ { "abort-parallel-execution", 0, 0, { 0, 0|(1<<CGEN_OPERAND_FAKE), { 0 } } },
+};
+
+#define OP 1 /* syntax value for mnemonic */
+
+static const CGEN_SYNTAX syntax_table[] = {
+/* <op> $dr,$sr */
+/* 0 */ { OP, ' ', 130, ',', 129, 0 },
+/* <op> $dr,$sr,$slo16 */
+/* 1 */ { OP, ' ', 130, ',', 129, ',', 143, 0 },
+/* <op> $dr,$sr,$uimm16 */
+/* 2 */ { OP, ' ', 130, ',', 129, ',', 139, 0 },
+/* <op> $dr,$sr,$ulo16 */
+/* 3 */ { OP, ' ', 130, ',', 129, ',', 144, 0 },
+/* <op> $dr,$simm8 */
+/* 4 */ { OP, ' ', 130, ',', 135, 0 },
+/* <op> $dr,$sr,$simm16 */
+/* 5 */ { OP, ' ', 130, ',', 129, ',', 136, 0 },
+/* <op> $disp8 */
+/* 6 */ { OP, ' ', 146, 0 },
+/* <op> $disp24 */
+/* 7 */ { OP, ' ', 148, 0 },
+/* <op> $src1,$src2,$disp16 */
+/* 8 */ { OP, ' ', 131, ',', 132, ',', 147, 0 },
+/* <op> $src2,$disp16 */
+/* 9 */ { OP, ' ', 132, ',', 147, 0 },
+/* <op> $src1,$src2 */
+/* 10 */ { OP, ' ', 131, ',', 132, 0 },
+/* <op> $src2,$simm16 */
+/* 11 */ { OP, ' ', 132, ',', 136, 0 },
+/* <op> $src2,$uimm16 */
+/* 12 */ { OP, ' ', 132, ',', 139, 0 },
+/* <op> $src2 */
+/* 13 */ { OP, ' ', 132, 0 },
+/* <op> $sr */
+/* 14 */ { OP, ' ', 129, 0 },
+/* <op> $dr,@$sr */
+/* 15 */ { OP, ' ', 130, ',', '@', 129, 0 },
+/* <op> $dr,@($sr) */
+/* 16 */ { OP, ' ', 130, ',', '@', '(', 129, ')', 0 },
+/* <op> $dr,@($slo16,$sr) */
+/* 17 */ { OP, ' ', 130, ',', '@', '(', 143, ',', 129, ')', 0 },
+/* <op> $dr,@($sr,$slo16) */
+/* 18 */ { OP, ' ', 130, ',', '@', '(', 129, ',', 143, ')', 0 },
+/* <op> $dr,@$sr+ */
+/* 19 */ { OP, ' ', 130, ',', '@', 129, '+', 0 },
+/* <op> $dr,$uimm24 */
+/* 20 */ { OP, ' ', 130, ',', 145, 0 },
+/* <op> $dr,$slo16 */
+/* 21 */ { OP, ' ', 130, ',', 143, 0 },
+/* <op> $src1,$src2,$acc */
+/* 22 */ { OP, ' ', 131, ',', 132, ',', 141, 0 },
+/* <op> $dr */
+/* 23 */ { OP, ' ', 130, 0 },
+/* <op> $dr,$accs */
+/* 24 */ { OP, ' ', 130, ',', 141, 0 },
+/* <op> $dr,$scr */
+/* 25 */ { OP, ' ', 130, ',', 133, 0 },
+/* <op> $src1 */
+/* 26 */ { OP, ' ', 131, 0 },
+/* <op> $src1,$accs */
+/* 27 */ { OP, ' ', 131, ',', 141, 0 },
+/* <op> $sr,$dcr */
+/* 28 */ { OP, ' ', 129, ',', 134, 0 },
+/* <op> */
+/* 29 */ { OP, 0 },
+/* <op> $acc-s */
+/* 30 */ { OP, ' ', 141, 0 },
+/* <op> $dr,$hi16 */
+/* 31 */ { OP, ' ', 130, ',', 142, 0 },
+/* <op> $dr,$uimm5 */
+/* 32 */ { OP, ' ', 130, ',', 138, 0 },
+/* <op> $src1,@$src2 */
+/* 33 */ { OP, ' ', 131, ',', '@', 132, 0 },
+/* <op> $src1,@($src2) */
+/* 34 */ { OP, ' ', 131, ',', '@', '(', 132, ')', 0 },
+/* <op> $src1,@($slo16,$src2) */
+/* 35 */ { OP, ' ', 131, ',', '@', '(', 143, ',', 132, ')', 0 },
+/* <op> $src1,@($src2,$slo16) */
+/* 36 */ { OP, ' ', 131, ',', '@', '(', 132, ',', 143, ')', 0 },
+/* <op> $src1,@+$src2 */
+/* 37 */ { OP, ' ', 131, ',', '@', '+', 132, 0 },
+/* <op> $src1,@-$src2 */
+/* 38 */ { OP, ' ', 131, ',', '@', '-', 132, 0 },
+/* <op> $uimm4 */
+/* 39 */ { OP, ' ', 137, 0 },
+/* <op> $dr,$src2 */
+/* 40 */ { OP, ' ', 130, ',', 132, 0 },
+};
+
+#undef OP
+
+static const CGEN_FORMAT format_table[] = {
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr. */
+/* 0 */ { 16, 16, 0xf0f0 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr.f-simm16.slo16. */
+/* 1 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr.f-uimm16.uimm16. */
+/* 2 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr.f-uimm16.ulo16. */
+/* 3 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.dr.f-simm8.simm8. */
+/* 4 */ { 16, 16, 0xf000 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr.f-simm16.simm16. */
+/* 5 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.number.f-disp8.disp8. */
+/* 6 */ { 16, 16, 0xff00 },
+/* f-op1.number.f-r1.number.f-disp24.disp24. */
+/* 7 */ { 32, 32, 0xff000000 },
+/* f-op1.number.f-r1.src1.f-op2.number.f-r2.src2.f-disp16.disp16. */
+/* 8 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.src2.f-disp16.disp16. */
+/* 9 */ { 32, 32, 0xfff00000 },
+/* f-op1.number.f-r1.src1.f-op2.number.f-r2.src2. */
+/* 10 */ { 16, 16, 0xf0f0 },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.src2.f-simm16.simm16. */
+/* 11 */ { 32, 32, 0xfff00000 },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.src2.f-uimm16.uimm16. */
+/* 12 */ { 32, 32, 0xfff00000 },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.src2. */
+/* 13 */ { 16, 16, 0xfff0 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.sr.f-simm16.number. */
+/* 14 */ { 32, 32, 0xf0f0ffff },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.sr. */
+/* 15 */ { 16, 16, 0xfff0 },
+/* f-op1.number.f-r1.dr.f-uimm24.uimm24. */
+/* 16 */ { 32, 32, 0xf0000000 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.number.f-simm16.slo16. */
+/* 17 */ { 32, 32, 0xf0ff0000 },
+/* f-op1.number.f-r1.src1.f-acc.acc.f-op23.number.f-r2.src2. */
+/* 18 */ { 16, 16, 0xf070 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.number. */
+/* 19 */ { 16, 16, 0xf0ff },
+/* f-op1.number.f-r1.dr.f-op2.number.f-acc-s.acc-s.f-op3.number. */
+/* 20 */ { 16, 16, 0xf0f3 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.scr. */
+/* 21 */ { 16, 16, 0xf0f0 },
+/* f-op1.number.f-r1.src1.f-op2.number.f-r2.number. */
+/* 22 */ { 16, 16, 0xf0ff },
+/* f-op1.number.f-r1.src1.f-op2.number.f-acc-s.acc-s.f-op3.number. */
+/* 23 */ { 16, 16, 0xf0f3 },
+/* f-op1.number.f-r1.dcr.f-op2.number.f-r2.sr. */
+/* 24 */ { 16, 16, 0xf0f0 },
+/* f-op1.number.f-r1.number.f-op2.number.f-r2.number. */
+/* 25 */ { 16, 16, 0xffff },
+/* f-op1.number.f-r1.number.f-op2.number.f-acc-s.acc-s.f-op3.number. */
+/* 26 */ { 16, 16, 0xfff3 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.number.f-hi16.hi16. */
+/* 27 */ { 32, 32, 0xf0ff0000 },
+/* f-op1.number.f-r1.dr.f-shift-op2.number.f-uimm5.uimm5. */
+/* 28 */ { 16, 16, 0xf0e0 },
+/* f-op1.number.f-r1.src1.f-op2.number.f-r2.src2.f-simm16.slo16. */
+/* 29 */ { 32, 32, 0xf0f00000 },
+/* f-op1.number.f-r1.number.f-op2.number.f-uimm4.uimm4. */
+/* 30 */ { 16, 16, 0xfff0 },
+/* f-op1.number.f-r1.dr.f-op2.number.f-r2.src2.f-uimm16.number. */
+/* 31 */ { 32, 32, 0xf0f0ffff },