xref: /netbsd-src/external/gpl3/binutils/dist/opcodes/rl78-decode.c (revision 413d532bcc3f62d122e56d92e13ac64825a40baf)
1 #line 1 "rl78-decode.opc"
2 /* -*- c -*- */
3 #include "sysdep.h"
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include "ansidecl.h"
8 #include "opcode/rl78.h"
9 
10 static int trace = 0;
11 
12 typedef struct
13 {
14   RL78_Opcode_Decoded * rl78;
15   int (* getbyte)(void *);
16   void * ptr;
17   unsigned char * op;
18 } LocalData;
19 
20 #define ID(x) rl78->id = RLO_##x, rl78->lineno = __LINE__
21 #define OP(n,t,r,a) (rl78->op[n].type = t, \
22 		     rl78->op[n].reg = r,	     \
23 		     rl78->op[n].addend = a )
24 #define OPX(n,t,r1,r2,a) \
25 	(rl78->op[n].type = t, \
26 	rl78->op[n].reg = r1, \
27 	rl78->op[n].reg2 = r2, \
28 	rl78->op[n].addend = a )
29 
30 #define W() rl78->size = RL78_Word
31 
32 #define AU ATTRIBUTE_UNUSED
33 #define GETBYTE() (ld->op [ld->rl78->n_bytes++] = ld->getbyte (ld->ptr))
34 #define B ((unsigned long) GETBYTE())
35 
36 #define SYNTAX(x) rl78->syntax = x
37 
38 #define UNSUPPORTED() \
39   rl78->syntax = "*unknown*"
40 
41 #define RB(x) ((x)+RL78_Reg_X)
42 #define RW(x) ((x)+RL78_Reg_AX)
43 
44 #define Fz	rl78->flags = RL78_PSW_Z
45 #define Fza	rl78->flags = RL78_PSW_Z | RL78_PSW_AC
46 #define Fzc	rl78->flags = RL78_PSW_Z | RL78_PSW_CY
47 #define Fzac	rl78->flags = RL78_PSW_Z | RL78_PSW_AC | RL78_PSW_CY
48 #define Fa	rl78->flags = RL78_PSW_AC
49 #define Fc	rl78->flags = RL78_PSW_CY
50 #define Fac	rl78->flags = RL78_PSW_AC | RL78_PSW_CY
51 
52 #define IMMU(bytes)   immediate (bytes, 0, ld)
53 #define IMMS(bytes)   immediate (bytes, 1, ld)
54 
55 static int
56 immediate (int bytes, int sign_extend, LocalData * ld)
57 {
58   unsigned long i = 0;
59 
60   switch (bytes)
61     {
62     case 1:
63       i |= B;
64       if (sign_extend && (i & 0x80))
65 	i -= 0x100;
66       break;
67     case 2:
68       i |= B;
69       i |= B << 8;
70       if (sign_extend && (i & 0x8000))
71 	i -= 0x10000;
72       break;
73     case 3:
74       i |= B;
75       i |= B << 8;
76       i |= B << 16;
77       if (sign_extend && (i & 0x800000))
78 	i -= 0x1000000;
79       break;
80     default:
81       fprintf (stderr, "Programmer error: immediate() called with invalid byte count %d\n", bytes);
82       abort();
83     }
84   return i;
85 }
86 
87 #define DC(c)		OP (0, RL78_Operand_Immediate, 0, c)
88 #define DR(r)		OP (0, RL78_Operand_Register, RL78_Reg_##r, 0)
89 #define DRB(r)		OP (0, RL78_Operand_Register, RB(r), 0)
90 #define DRW(r)		OP (0, RL78_Operand_Register, RW(r), 0)
91 #define DM(r,a)		OP (0, RL78_Operand_Indirect, RL78_Reg_##r, a)
92 #define DM2(r1,r2,a)	OPX (0, RL78_Operand_Indirect, RL78_Reg_##r1, RL78_Reg_##r2, a)
93 #define DE()		rl78->op[0].use_es = 1
94 #define DB(b)		set_bit (rl78->op, b)
95 #define DCY()		DR(PSW); DB(0)
96 #define DPUSH()		OP (0, RL78_Operand_PreDec, RL78_Reg_SP, 0);
97 
98 #define SC(c)		OP (1, RL78_Operand_Immediate, 0, c)
99 #define SR(r)		OP (1, RL78_Operand_Register, RL78_Reg_##r, 0)
100 #define SRB(r)		OP (1, RL78_Operand_Register, RB(r), 0)
101 #define SRW(r)		OP (1, RL78_Operand_Register, RW(r), 0)
102 #define SM(r,a)		OP (1, RL78_Operand_Indirect, RL78_Reg_##r, a)
103 #define SM2(r1,r2,a)	OPX (1, RL78_Operand_Indirect, RL78_Reg_##r1, RL78_Reg_##r2, a)
104 #define SE()		rl78->op[1].use_es = 1
105 #define SB(b)		set_bit (rl78->op+1, b)
106 #define SCY()		SR(PSW); SB(0)
107 #define COND(c)		rl78->op[1].condition = RL78_Condition_##c
108 #define SPOP()		OP (1, RL78_Operand_PostInc, RL78_Reg_SP, 0);
109 
110 static void
111 set_bit (RL78_Opcode_Operand *op, int bit)
112 {
113   op->bit_number = bit;
114   switch (op->type) {
115   case RL78_Operand_Register:
116     op->type = RL78_Operand_Bit;
117     break;
118   case RL78_Operand_Indirect:
119     op->type = RL78_Operand_BitIndirect;
120     break;
121   default:
122     break;
123   }
124 }
125 
126 static int
127 saddr (int x)
128 {
129   if (x < 0x20)
130     return 0xfff00 + x;
131   return 0xffe00 + x;
132 }
133 
134 static int
135 sfr (int x)
136 {
137   return 0xfff00 + x;
138 }
139 
140 #define SADDR saddr (IMMU (1))
141 #define SFR sfr (IMMU (1))
142 
143 int
144 rl78_decode_opcode (unsigned long pc AU,
145 		  RL78_Opcode_Decoded * rl78,
146 		  int (* getbyte)(void *),
147 		  void * ptr)
148 {
149   LocalData lds, * ld = &lds;
150   unsigned char op_buf[20] = {0};
151   unsigned char *op = op_buf;
152   int op0, op1;
153 
154   lds.rl78 = rl78;
155   lds.getbyte = getbyte;
156   lds.ptr = ptr;
157   lds.op = op;
158 
159   memset (rl78, 0, sizeof (*rl78));
160 
161  start_again:
162 
163 /* Byte registers, not including A.  */
164 /* Word registers, not including AX.  */
165 
166 /*----------------------------------------------------------------------*/
167 /* ES: prefix								*/
168 
169   GETBYTE ();
170   switch (op[0] & 0xff)
171   {
172     case 0x00:
173         {
174           /** 0000 0000			nop					*/
175           if (trace)
176             {
177               printf ("\033[33m%s\033[0m  %02x\n",
178                      "/** 0000 0000			nop					*/",
179                      op[0]);
180             }
181           SYNTAX("nop");
182 #line 886 "rl78-decode.opc"
183           ID(nop);
184 
185         /*----------------------------------------------------------------------*/
186 
187         }
188       break;
189     case 0x01:
190     case 0x03:
191     case 0x05:
192     case 0x07:
193         {
194           /** 0000 0rw1			addw	%0, %1				*/
195 #line 252 "rl78-decode.opc"
196           int rw AU = (op[0] >> 1) & 0x03;
197           if (trace)
198             {
199               printf ("\033[33m%s\033[0m  %02x\n",
200                      "/** 0000 0rw1			addw	%0, %1				*/",
201                      op[0]);
202               printf ("  rw = 0x%x\n", rw);
203             }
204           SYNTAX("addw	%0, %1");
205 #line 252 "rl78-decode.opc"
206           ID(add); W(); DR(AX); SRW(rw); Fzac;
207 
208         }
209       break;
210     case 0x02:
211         {
212           /** 0000 0010			addw	%0, %e1%!1			*/
213           if (trace)
214             {
215               printf ("\033[33m%s\033[0m  %02x\n",
216                      "/** 0000 0010			addw	%0, %e1%!1			*/",
217                      op[0]);
218             }
219           SYNTAX("addw	%0, %e1%!1");
220 #line 243 "rl78-decode.opc"
221           ID(add); W(); DR(AX); SM(None, IMMU(2)); Fzac;
222 
223         }
224       break;
225     case 0x04:
226         {
227           /** 0000 0100			addw	%0, #%1				*/
228           if (trace)
229             {
230               printf ("\033[33m%s\033[0m  %02x\n",
231                      "/** 0000 0100			addw	%0, #%1				*/",
232                      op[0]);
233             }
234           SYNTAX("addw	%0, #%1");
235 #line 249 "rl78-decode.opc"
236           ID(add); W(); DR(AX); SC(IMMU(2)); Fzac;
237 
238         }
239       break;
240     case 0x06:
241         {
242           /** 0000 0110			addw	%0, %1				*/
243           if (trace)
244             {
245               printf ("\033[33m%s\033[0m  %02x\n",
246                      "/** 0000 0110			addw	%0, %1				*/",
247                      op[0]);
248             }
249           SYNTAX("addw	%0, %1");
250 #line 255 "rl78-decode.opc"
251           ID(add); W(); DR(AX); SM(None, SADDR); Fzac;
252 
253         }
254       break;
255     case 0x08:
256         {
257           /** 0000 1000			xch	a, x				*/
258           if (trace)
259             {
260               printf ("\033[33m%s\033[0m  %02x\n",
261                      "/** 0000 1000			xch	a, x				*/",
262                      op[0]);
263             }
264           SYNTAX("xch	a, x");
265 #line 1209 "rl78-decode.opc"
266           ID(xch); DR(A); SR(X);
267 
268         /*----------------------------------------------------------------------*/
269 
270         }
271       break;
272     case 0x09:
273         {
274           /** 0000 1001			mov	%0, %e1%1			*/
275           if (trace)
276             {
277               printf ("\033[33m%s\033[0m  %02x\n",
278                      "/** 0000 1001			mov	%0, %e1%1			*/",
279                      op[0]);
280             }
281           SYNTAX("mov	%0, %e1%1");
282 #line 656 "rl78-decode.opc"
283           ID(mov); DR(A); SM(B, IMMU(2));
284 
285         }
286       break;
287     case 0x0a:
288         {
289           /** 0000 1010			add	%0, #%1				*/
290           if (trace)
291             {
292               printf ("\033[33m%s\033[0m  %02x\n",
293                      "/** 0000 1010			add	%0, #%1				*/",
294                      op[0]);
295             }
296           SYNTAX("add	%0, #%1");
297 #line 206 "rl78-decode.opc"
298           ID(add); DM(None, SADDR); SC(IMMU(1)); Fzac;
299 
300         /*----------------------------------------------------------------------*/
301 
302         }
303       break;
304     case 0x0b:
305         {
306           /** 0000 1011			add	%0, %1				*/
307           if (trace)
308             {
309               printf ("\033[33m%s\033[0m  %02x\n",
310                      "/** 0000 1011			add	%0, %1				*/",
311                      op[0]);
312             }
313           SYNTAX("add	%0, %1");
314 #line 200 "rl78-decode.opc"
315           ID(add); DR(A); SM(None, SADDR); Fzac;
316 
317         }
318       break;
319     case 0x0c:
320         {
321           /** 0000 1100			add	%0, #%1				*/
322           if (trace)
323             {
324               printf ("\033[33m%s\033[0m  %02x\n",
325                      "/** 0000 1100			add	%0, #%1				*/",
326                      op[0]);
327             }
328           SYNTAX("add	%0, #%1");
329 #line 194 "rl78-decode.opc"
330           ID(add); DR(A); SC(IMMU(1)); Fzac;
331 
332         }
333       break;
334     case 0x0d:
335         {
336           /** 0000 1101			add	%0, %e1%1			*/
337           if (trace)
338             {
339               printf ("\033[33m%s\033[0m  %02x\n",
340                      "/** 0000 1101			add	%0, %e1%1			*/",
341                      op[0]);
342             }
343           SYNTAX("add	%0, %e1%1");
344 #line 182 "rl78-decode.opc"
345           ID(add); DR(A); SM(HL, 0); Fzac;
346 
347         }
348       break;
349     case 0x0e:
350         {
351           /** 0000 1110			add	%0, %e1%1			*/
352           if (trace)
353             {
354               printf ("\033[33m%s\033[0m  %02x\n",
355                      "/** 0000 1110			add	%0, %e1%1			*/",
356                      op[0]);
357             }
358           SYNTAX("add	%0, %e1%1");
359 #line 188 "rl78-decode.opc"
360           ID(add); DR(A); SM(HL, IMMU(1)); Fzac;
361 
362         }
363       break;
364     case 0x0f:
365         {
366           /** 0000 1111			add	%0, %e1%!1			*/
367           if (trace)
368             {
369               printf ("\033[33m%s\033[0m  %02x\n",
370                      "/** 0000 1111			add	%0, %e1%!1			*/",
371                      op[0]);
372             }
373           SYNTAX("add	%0, %e1%!1");
374 #line 179 "rl78-decode.opc"
375           ID(add); DR(A); SM(None, IMMU(2)); Fzac;
376 
377         }
378       break;
379     case 0x10:
380         {
381           /** 0001 0000			addw	%0, #%1				*/
382           if (trace)
383             {
384               printf ("\033[33m%s\033[0m  %02x\n",
385                      "/** 0001 0000			addw	%0, #%1				*/",
386                      op[0]);
387             }
388           SYNTAX("addw	%0, #%1");
389 #line 258 "rl78-decode.opc"
390           ID(add); W(); DR(SP); SC(IMMU(1)); Fzac;
391 
392         /*----------------------------------------------------------------------*/
393 
394         }
395       break;
396     case 0x11:
397         {
398           /** 0001 0001			es:					*/
399           if (trace)
400             {
401               printf ("\033[33m%s\033[0m  %02x\n",
402                      "/** 0001 0001			es:					*/",
403                      op[0]);
404             }
405           SYNTAX("es:");
406 #line 171 "rl78-decode.opc"
407           DE(); SE();
408           op ++;
409           pc ++;
410           goto start_again;
411 
412         /*----------------------------------------------------------------------*/
413 
414         }
415       break;
416     case 0x12:
417     case 0x14:
418     case 0x16:
419         {
420           /** 0001 0ra0			movw	%0, %1				*/
421 #line 834 "rl78-decode.opc"
422           int ra AU = (op[0] >> 1) & 0x03;
423           if (trace)
424             {
425               printf ("\033[33m%s\033[0m  %02x\n",
426                      "/** 0001 0ra0			movw	%0, %1				*/",
427                      op[0]);
428               printf ("  ra = 0x%x\n", ra);
429             }
430           SYNTAX("movw	%0, %1");
431 #line 834 "rl78-decode.opc"
432           ID(mov); W(); DRW(ra); SR(AX);
433 
434         }
435       break;
436     case 0x13:
437     case 0x15:
438     case 0x17:
439         {
440           /** 0001 0ra1			movw	%0, %1				*/
441 #line 831 "rl78-decode.opc"
442           int ra AU = (op[0] >> 1) & 0x03;
443           if (trace)
444             {
445               printf ("\033[33m%s\033[0m  %02x\n",
446                      "/** 0001 0ra1			movw	%0, %1				*/",
447                      op[0]);
448               printf ("  ra = 0x%x\n", ra);
449             }
450           SYNTAX("movw	%0, %1");
451 #line 831 "rl78-decode.opc"
452           ID(mov); W(); DR(AX); SRW(ra);
453 
454         }
455       break;
456     case 0x18:
457         {
458           /** 0001 1000			mov	%e0%0, %1			*/
459           if (trace)
460             {
461               printf ("\033[33m%s\033[0m  %02x\n",
462                      "/** 0001 1000			mov	%e0%0, %1			*/",
463                      op[0]);
464             }
465           SYNTAX("mov	%e0%0, %1");
466 #line 707 "rl78-decode.opc"
467           ID(mov); DM(B, IMMU(2)); SR(A);
468 
469         }
470       break;
471     case 0x19:
472         {
473           /** 0001 1001			mov	%e0%0, #%1			*/
474           if (trace)
475             {
476               printf ("\033[33m%s\033[0m  %02x\n",
477                      "/** 0001 1001			mov	%e0%0, #%1			*/",
478                      op[0]);
479             }
480           SYNTAX("mov	%e0%0, #%1");
481 #line 704 "rl78-decode.opc"
482           ID(mov); DM(B, IMMU(2)); SC(IMMU(1));
483 
484         }
485       break;
486     case 0x1a:
487         {
488           /** 0001 1010			addc	%0, #%1				*/
489           if (trace)
490             {
491               printf ("\033[33m%s\033[0m  %02x\n",
492                      "/** 0001 1010			addc	%0, #%1				*/",
493                      op[0]);
494             }
495           SYNTAX("addc	%0, #%1");
496 #line 238 "rl78-decode.opc"
497           ID(addc); DM(None, SADDR); SC(IMMU(1)); Fzac;
498 
499         /*----------------------------------------------------------------------*/
500 
501         }
502       break;
503     case 0x1b:
504         {
505           /** 0001 1011			addc	%0, %1				*/
506           if (trace)
507             {
508               printf ("\033[33m%s\033[0m  %02x\n",
509                      "/** 0001 1011			addc	%0, %1				*/",
510                      op[0]);
511             }
512           SYNTAX("addc	%0, %1");
513 #line 235 "rl78-decode.opc"
514           ID(addc); DR(A); SM(None, SADDR); Fzac;
515 
516         }
517       break;
518     case 0x1c:
519         {
520           /** 0001 1100			addc	%0, #%1				*/
521           if (trace)
522             {
523               printf ("\033[33m%s\033[0m  %02x\n",
524                      "/** 0001 1100			addc	%0, #%1				*/",
525                      op[0]);
526             }
527           SYNTAX("addc	%0, #%1");
528 #line 226 "rl78-decode.opc"
529           ID(addc); DR(A); SC(IMMU(1)); Fzac;
530 
531         }
532       break;
533     case 0x1d:
534         {
535           /** 0001 1101			addc	%0, %e1%1			*/
536           if (trace)
537             {
538               printf ("\033[33m%s\033[0m  %02x\n",
539                      "/** 0001 1101			addc	%0, %e1%1			*/",
540                      op[0]);
541             }
542           SYNTAX("addc	%0, %e1%1");
543 #line 214 "rl78-decode.opc"
544           ID(addc); DR(A); SM(HL, 0); Fzac;
545 
546         }
547       break;
548     case 0x1e:
549         {
550           /** 0001 1110			addc	%0, %e1%1			*/
551           if (trace)
552             {
553               printf ("\033[33m%s\033[0m  %02x\n",
554                      "/** 0001 1110			addc	%0, %e1%1			*/",
555                      op[0]);
556             }
557           SYNTAX("addc	%0, %e1%1");
558 #line 223 "rl78-decode.opc"
559           ID(addc); DR(A); SM(HL, IMMU(1)); Fzac;
560 
561         }
562       break;
563     case 0x1f:
564         {
565           /** 0001 1111			addc	%0, %e1%!1			*/
566           if (trace)
567             {
568               printf ("\033[33m%s\033[0m  %02x\n",
569                      "/** 0001 1111			addc	%0, %e1%!1			*/",
570                      op[0]);
571             }
572           SYNTAX("addc	%0, %e1%!1");
573 #line 211 "rl78-decode.opc"
574           ID(addc); DR(A); SM(None, IMMU(2)); Fzac;
575 
576         }
577       break;
578     case 0x20:
579         {
580           /** 0010 0000			subw	%0, #%1				*/
581           if (trace)
582             {
583               printf ("\033[33m%s\033[0m  %02x\n",
584                      "/** 0010 0000			subw	%0, #%1				*/",
585                      op[0]);
586             }
587           SYNTAX("subw	%0, #%1");
588 #line 1173 "rl78-decode.opc"
589           ID(sub); W(); DR(SP); SC(IMMU(1)); Fzac;
590 
591         /*----------------------------------------------------------------------*/
592 
593         }
594       break;
595     case 0x21:
596     case 0x23:
597     case 0x25:
598     case 0x27:
599         {
600           /** 0010 0rw1			subw	%0, %1				*/
601 #line 1167 "rl78-decode.opc"
602           int rw AU = (op[0] >> 1) & 0x03;
603           if (trace)
604             {
605               printf ("\033[33m%s\033[0m  %02x\n",
606                      "/** 0010 0rw1			subw	%0, %1				*/",
607                      op[0]);
608               printf ("  rw = 0x%x\n", rw);
609             }
610           SYNTAX("subw	%0, %1");
611 #line 1167 "rl78-decode.opc"
612           ID(sub); W(); DR(AX); SRW(rw); Fzac;
613 
614         }
615       break;
616     case 0x22:
617         {
618           /** 0010 0010			subw	%0, %e1%!1			*/
619           if (trace)
620             {
621               printf ("\033[33m%s\033[0m  %02x\n",
622                      "/** 0010 0010			subw	%0, %e1%!1			*/",
623                      op[0]);
624             }
625           SYNTAX("subw	%0, %e1%!1");
626 #line 1158 "rl78-decode.opc"
627           ID(sub); W(); DR(AX); SM(None, IMMU(2)); Fzac;
628 
629         }
630       break;
631     case 0x24:
632         {
633           /** 0010 0100			subw	%0, #%1				*/
634           if (trace)
635             {
636               printf ("\033[33m%s\033[0m  %02x\n",
637                      "/** 0010 0100			subw	%0, #%1				*/",
638                      op[0]);
639             }
640           SYNTAX("subw	%0, #%1");
641 #line 1164 "rl78-decode.opc"
642           ID(sub); W(); DR(AX); SC(IMMU(2)); Fzac;
643 
644         }
645       break;
646     case 0x26:
647         {
648           /** 0010 0110			subw	%0, %1				*/
649           if (trace)
650             {
651               printf ("\033[33m%s\033[0m  %02x\n",
652                      "/** 0010 0110			subw	%0, %1				*/",
653                      op[0]);
654             }
655           SYNTAX("subw	%0, %1");
656 #line 1170 "rl78-decode.opc"
657           ID(sub); W(); DR(AX); SM(None, SADDR); Fzac;
658 
659         }
660       break;
661     case 0x28:
662         {
663           /** 0010 1000			mov	%e0%0, %1			*/
664           if (trace)
665             {
666               printf ("\033[33m%s\033[0m  %02x\n",
667                      "/** 0010 1000			mov	%e0%0, %1			*/",
668                      op[0]);
669             }
670           SYNTAX("mov	%e0%0, %1");
671 #line 719 "rl78-decode.opc"
672           ID(mov); DM(C, IMMU(2)); SR(A);
673 
674         }
675       break;
676     case 0x29:
677         {
678           /** 0010 1001			mov	%0, %e1%1			*/
679           if (trace)
680             {
681               printf ("\033[33m%s\033[0m  %02x\n",
682                      "/** 0010 1001			mov	%0, %e1%1			*/",
683                      op[0]);
684             }
685           SYNTAX("mov	%0, %e1%1");
686 #line 662 "rl78-decode.opc"
687           ID(mov); DR(A); SM(C, IMMU(2));
688 
689         }
690       break;
691     case 0x2a:
692         {
693           /** 0010 1010			sub	%0, #%1				*/
694           if (trace)
695             {
696               printf ("\033[33m%s\033[0m  %02x\n",
697                      "/** 0010 1010			sub	%0, #%1				*/",
698                      op[0]);
699             }
700           SYNTAX("sub	%0, #%1");
701 #line 1121 "rl78-decode.opc"
702           ID(sub); DM(None, SADDR); SC(IMMU(1)); Fzac;
703 
704         /*----------------------------------------------------------------------*/
705 
706         }
707       break;
708     case 0x2b:
709         {
710           /** 0010 1011			sub	%0, %1				*/
711           if (trace)
712             {
713               printf ("\033[33m%s\033[0m  %02x\n",
714                      "/** 0010 1011			sub	%0, %1				*/",
715                      op[0]);
716             }
717           SYNTAX("sub	%0, %1");
718 #line 1115 "rl78-decode.opc"
719           ID(sub); DR(A); SM(None, SADDR); Fzac;
720 
721         }
722       break;
723     case 0x2c:
724         {
725           /** 0010 1100			sub	%0, #%1				*/
726           if (trace)
727             {
728               printf ("\033[33m%s\033[0m  %02x\n",
729                      "/** 0010 1100			sub	%0, #%1				*/",
730                      op[0]);
731             }
732           SYNTAX("sub	%0, #%1");
733 #line 1109 "rl78-decode.opc"
734           ID(sub); DR(A); SC(IMMU(1)); Fzac;
735 
736         }
737       break;
738     case 0x2d:
739         {
740           /** 0010 1101			sub	%0, %e1%1			*/
741           if (trace)
742             {
743               printf ("\033[33m%s\033[0m  %02x\n",
744                      "/** 0010 1101			sub	%0, %e1%1			*/",
745                      op[0]);
746             }
747           SYNTAX("sub	%0, %e1%1");
748 #line 1097 "rl78-decode.opc"
749           ID(sub); DR(A); SM(HL, 0); Fzac;
750 
751         }
752       break;
753     case 0x2e:
754         {
755           /** 0010 1110			sub	%0, %e1%1			*/
756           if (trace)
757             {
758               printf ("\033[33m%s\033[0m  %02x\n",
759                      "/** 0010 1110			sub	%0, %e1%1			*/",
760                      op[0]);
761             }
762           SYNTAX("sub	%0, %e1%1");
763 #line 1103 "rl78-decode.opc"
764           ID(sub); DR(A); SM(HL, IMMU(1)); Fzac;
765 
766         }
767       break;
768     case 0x2f:
769         {
770           /** 0010 1111			sub	%0, %e1%!1			*/
771           if (trace)
772             {
773               printf ("\033[33m%s\033[0m  %02x\n",
774                      "/** 0010 1111			sub	%0, %e1%!1			*/",
775                      op[0]);
776             }
777           SYNTAX("sub	%0, %e1%!1");
778 #line 1094 "rl78-decode.opc"
779           ID(sub); DR(A); SM(None, IMMU(2)); Fzac;
780 
781         }
782       break;
783     case 0x30:
784     case 0x32:
785     case 0x34:
786     case 0x36:
787         {
788           /** 0011 0rg0			movw	%0, #%1				*/
789 #line 828 "rl78-decode.opc"
790           int rg AU = (op[0] >> 1) & 0x03;
791           if (trace)
792             {
793               printf ("\033[33m%s\033[0m  %02x\n",
794                      "/** 0011 0rg0			movw	%0, #%1				*/",
795                      op[0]);
796               printf ("  rg = 0x%x\n", rg);
797             }
798           SYNTAX("movw	%0, #%1");
799 #line 828 "rl78-decode.opc"
800           ID(mov); W(); DRW(rg); SC(IMMU(2));
801 
802         }
803       break;
804     case 0x31:
805         GETBYTE ();
806         switch (op[1] & 0x8f)
807         {
808           case 0x00:
809               {
810                 /** 0011 0001 0bit 0000		btclr	%s1, $%a0			*/
811 #line 394 "rl78-decode.opc"
812                 int bit AU = (op[1] >> 4) & 0x07;
813                 if (trace)
814                   {
815                     printf ("\033[33m%s\033[0m  %02x %02x\n",
816                            "/** 0011 0001 0bit 0000		btclr	%s1, $%a0			*/",
817                            op[0], op[1]);
818                     printf ("  bit = 0x%x\n", bit);
819                   }
820                 SYNTAX("btclr	%s1, $%a0");
821 #line 394 "rl78-decode.opc"
822                 ID(branch_cond_clear); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
823 
824               /*----------------------------------------------------------------------*/
825 
826               }
827             break;
828           case 0x01:
829               {
830                 /** 0011 0001 0bit 0001		btclr	%1, $%a0			*/
831 #line 388 "rl78-decode.opc"
832                 int bit AU = (op[1] >> 4) & 0x07;
833                 if (trace)
834                   {
835                     printf ("\033[33m%s\033[0m  %02x %02x\n",
836                            "/** 0011 0001 0bit 0001		btclr	%1, $%a0			*/",
837                            op[0], op[1]);
838                     printf ("  bit = 0x%x\n", bit);
839                   }
840                 SYNTAX("btclr	%1, $%a0");
841 #line 388 "rl78-decode.opc"
842                 ID(branch_cond_clear); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(T);
843 
844               }
845             break;
846           case 0x02:
847               {
848                 /** 0011 0001 0bit 0010		bt	%s1, $%a0			*/
849 #line 380 "rl78-decode.opc"
850                 int bit AU = (op[1] >> 4) & 0x07;
851                 if (trace)
852                   {
853                     printf ("\033[33m%s\033[0m  %02x %02x\n",
854                            "/** 0011 0001 0bit 0010		bt	%s1, $%a0			*/",
855                            op[0], op[1]);
856                     printf ("  bit = 0x%x\n", bit);
857                   }
858                 SYNTAX("bt	%s1, $%a0");
859 #line 380 "rl78-decode.opc"
860                 ID(branch_cond); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
861 
862               /*----------------------------------------------------------------------*/
863 
864               }
865             break;
866           case 0x03:
867               {
868                 /** 0011 0001 0bit 0011		bt	%1, $%a0			*/
869 #line 374 "rl78-decode.opc"
870                 int bit AU = (op[1] >> 4) & 0x07;
871                 if (trace)
872                   {
873                     printf ("\033[33m%s\033[0m  %02x %02x\n",
874                            "/** 0011 0001 0bit 0011		bt	%1, $%a0			*/",
875                            op[0], op[1]);
876                     printf ("  bit = 0x%x\n", bit);
877                   }
878                 SYNTAX("bt	%1, $%a0");
879 #line 374 "rl78-decode.opc"
880                 ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(T);
881 
882               }
883             break;
884           case 0x04:
885               {
886                 /** 0011 0001 0bit 0100		bf	%s1, $%a0			*/
887 #line 341 "rl78-decode.opc"
888                 int bit AU = (op[1] >> 4) & 0x07;
889                 if (trace)
890                   {
891                     printf ("\033[33m%s\033[0m  %02x %02x\n",
892                            "/** 0011 0001 0bit 0100		bf	%s1, $%a0			*/",
893                            op[0], op[1]);
894                     printf ("  bit = 0x%x\n", bit);
895                   }
896                 SYNTAX("bf	%s1, $%a0");
897 #line 341 "rl78-decode.opc"
898                 ID(branch_cond); SM(None, SADDR); SB(bit); DC(pc+IMMS(1)+4); COND(F);
899 
900               /*----------------------------------------------------------------------*/
901 
902               }
903             break;
904           case 0x05:
905               {
906                 /** 0011 0001 0bit 0101		bf	%1, $%a0			*/
907 #line 335 "rl78-decode.opc"
908                 int bit AU = (op[1] >> 4) & 0x07;
909                 if (trace)
910                   {
911                     printf ("\033[33m%s\033[0m  %02x %02x\n",
912                            "/** 0011 0001 0bit 0101		bf	%1, $%a0			*/",
913                            op[0], op[1]);
914                     printf ("  bit = 0x%x\n", bit);
915                   }
916                 SYNTAX("bf	%1, $%a0");
917 #line 335 "rl78-decode.opc"
918                 ID(branch_cond); DC(pc+IMMS(1)+3); SR(A); SB(bit); COND(F);
919 
920               }
921             break;
922           case 0x07:
923               {
924                 /** 0011 0001 0cnt 0111		shl	%0, %1				*/
925 #line 1050 "rl78-decode.opc"
926                 int cnt AU = (op[1] >> 4) & 0x07;
927                 if (trace)
928                   {
929                     printf ("\033[33m%s\033[0m  %02x %02x\n",
930                            "/** 0011 0001 0cnt 0111		shl	%0, %1				*/",
931                            op[0], op[1]);
932                     printf ("  cnt = 0x%x\n", cnt);
933                   }
934                 SYNTAX("shl	%0, %1");
935 #line 1050 "rl78-decode.opc"
936                 ID(shl); DR(C); SC(cnt);
937 
938               }
939             break;
940           case 0x08:
941               {
942                 /** 0011 0001 0cnt 1000		shl	%0, %1				*/
943 #line 1047 "rl78-decode.opc"
944                 int cnt AU = (op[1] >> 4) & 0x07;
945                 if (trace)
946                   {
947                     printf ("\033[33m%s\033[0m  %02x %02x\n",
948                            "/** 0011 0001 0cnt 1000		shl	%0, %1				*/",
949                            op[0], op[1]);
950                     printf ("  cnt = 0x%x\n", cnt);
951                   }
952                 SYNTAX("shl	%0, %1");
953 #line 1047 "rl78-decode.opc"
954                 ID(shl); DR(B); SC(cnt);
955 
956               }
957             break;
958           case 0x09:
959               {
960                 /** 0011 0001 0cnt 1001		shl	%0, %1				*/
961 #line 1044 "rl78-decode.opc"
962                 int cnt AU = (op[1] >> 4) & 0x07;
963                 if (trace)
964                   {
965                     printf ("\033[33m%s\033[0m  %02x %02x\n",
966                            "/** 0011 0001 0cnt 1001		shl	%0, %1				*/",
967                            op[0], op[1]);
968                     printf ("  cnt = 0x%x\n", cnt);
969                   }
970                 SYNTAX("shl	%0, %1");
971 #line 1044 "rl78-decode.opc"
972                 ID(shl); DR(A); SC(cnt);
973 
974               }
975             break;
976           case 0x0a:
977               {
978                 /** 0011 0001 0cnt 1010		shr	%0, %1				*/
979 #line 1061 "rl78-decode.opc"
980                 int cnt AU = (op[1] >> 4) & 0x07;
981                 if (trace)
982                   {
983                     printf ("\033[33m%s\033[0m  %02x %02x\n",
984                            "/** 0011 0001 0cnt 1010		shr	%0, %1				*/",
985                            op[0], op[1]);
986                     printf ("  cnt = 0x%x\n", cnt);
987                   }
988                 SYNTAX("shr	%0, %1");
989 #line 1061 "rl78-decode.opc"
990                 ID(shr); DR(A); SC(cnt);
991 
992               }
993             break;
994           case 0x0b:
995               {
996                 /** 0011 0001 0cnt 1011		sar	%0, %1				*/
997 #line 1008 "rl78-decode.opc"
998                 int cnt AU = (op[1] >> 4) & 0x07;
999                 if (trace)
1000                   {
1001                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1002                            "/** 0011 0001 0cnt 1011		sar	%0, %1				*/",
1003                            op[0], op[1]);
1004                     printf ("  cnt = 0x%x\n", cnt);
1005                   }
1006                 SYNTAX("sar	%0, %1");
1007 #line 1008 "rl78-decode.opc"
1008                 ID(sar); DR(A); SC(cnt);
1009 
1010               }
1011             break;
1012           case 0x0c:
1013           case 0x8c:
1014               {
1015                 /** 0011 0001 wcnt 1100		shlw	%0, %1				*/
1016 #line 1056 "rl78-decode.opc"
1017                 int wcnt AU = (op[1] >> 4) & 0x0f;
1018                 if (trace)
1019                   {
1020                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1021                            "/** 0011 0001 wcnt 1100		shlw	%0, %1				*/",
1022                            op[0], op[1]);
1023                     printf ("  wcnt = 0x%x\n", wcnt);
1024                   }
1025                 SYNTAX("shlw	%0, %1");
1026 #line 1056 "rl78-decode.opc"
1027                 ID(shl); W(); DR(BC); SC(wcnt);
1028 
1029               /*----------------------------------------------------------------------*/
1030 
1031               }
1032             break;
1033           case 0x0d:
1034           case 0x8d:
1035               {
1036                 /** 0011 0001 wcnt 1101		shlw	%0, %1				*/
1037 #line 1053 "rl78-decode.opc"
1038                 int wcnt AU = (op[1] >> 4) & 0x0f;
1039                 if (trace)
1040                   {
1041                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1042                            "/** 0011 0001 wcnt 1101		shlw	%0, %1				*/",
1043                            op[0], op[1]);
1044                     printf ("  wcnt = 0x%x\n", wcnt);
1045                   }
1046                 SYNTAX("shlw	%0, %1");
1047 #line 1053 "rl78-decode.opc"
1048                 ID(shl); W(); DR(AX); SC(wcnt);
1049 
1050               }
1051             break;
1052           case 0x0e:
1053           case 0x8e:
1054               {
1055                 /** 0011 0001 wcnt 1110		shrw	%0, %1				*/
1056 #line 1064 "rl78-decode.opc"
1057                 int wcnt AU = (op[1] >> 4) & 0x0f;
1058                 if (trace)
1059                   {
1060                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1061                            "/** 0011 0001 wcnt 1110		shrw	%0, %1				*/",
1062                            op[0], op[1]);
1063                     printf ("  wcnt = 0x%x\n", wcnt);
1064                   }
1065                 SYNTAX("shrw	%0, %1");
1066 #line 1064 "rl78-decode.opc"
1067                 ID(shr); W(); DR(AX); SC(wcnt);
1068 
1069               /*----------------------------------------------------------------------*/
1070 
1071               }
1072             break;
1073           case 0x0f:
1074           case 0x8f:
1075               {
1076                 /** 0011 0001 wcnt 1111		sarw	%0, %1				*/
1077 #line 1011 "rl78-decode.opc"
1078                 int wcnt AU = (op[1] >> 4) & 0x0f;
1079                 if (trace)
1080                   {
1081                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1082                            "/** 0011 0001 wcnt 1111		sarw	%0, %1				*/",
1083                            op[0], op[1]);
1084                     printf ("  wcnt = 0x%x\n", wcnt);
1085                   }
1086                 SYNTAX("sarw	%0, %1");
1087 #line 1011 "rl78-decode.opc"
1088                 ID(sar); W(); DR(AX); SC(wcnt);
1089 
1090               /*----------------------------------------------------------------------*/
1091 
1092               }
1093             break;
1094           case 0x80:
1095               {
1096                 /** 0011 0001 1bit 0000		btclr	%s1, $%a0			*/
1097 #line 391 "rl78-decode.opc"
1098                 int bit AU = (op[1] >> 4) & 0x07;
1099                 if (trace)
1100                   {
1101                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1102                            "/** 0011 0001 1bit 0000		btclr	%s1, $%a0			*/",
1103                            op[0], op[1]);
1104                     printf ("  bit = 0x%x\n", bit);
1105                   }
1106                 SYNTAX("btclr	%s1, $%a0");
1107 #line 391 "rl78-decode.opc"
1108                 ID(branch_cond_clear); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
1109 
1110               }
1111             break;
1112           case 0x81:
1113               {
1114                 /** 0011 0001 1bit 0001		btclr	%e1%1, $%a0			*/
1115 #line 385 "rl78-decode.opc"
1116                 int bit AU = (op[1] >> 4) & 0x07;
1117                 if (trace)
1118                   {
1119                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1120                            "/** 0011 0001 1bit 0001		btclr	%e1%1, $%a0			*/",
1121                            op[0], op[1]);
1122                     printf ("  bit = 0x%x\n", bit);
1123                   }
1124                 SYNTAX("btclr	%e1%1, $%a0");
1125 #line 385 "rl78-decode.opc"
1126                 ID(branch_cond_clear); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T);
1127 
1128               }
1129             break;
1130           case 0x82:
1131               {
1132                 /** 0011 0001 1bit 0010		bt	%s1, $%a0			*/
1133 #line 377 "rl78-decode.opc"
1134                 int bit AU = (op[1] >> 4) & 0x07;
1135                 if (trace)
1136                   {
1137                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1138                            "/** 0011 0001 1bit 0010		bt	%s1, $%a0			*/",
1139                            op[0], op[1]);
1140                     printf ("  bit = 0x%x\n", bit);
1141                   }
1142                 SYNTAX("bt	%s1, $%a0");
1143 #line 377 "rl78-decode.opc"
1144                 ID(branch_cond); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(T);
1145 
1146               }
1147             break;
1148           case 0x83:
1149               {
1150                 /** 0011 0001 1bit 0011		bt	%e1%1, $%a0			*/
1151 #line 371 "rl78-decode.opc"
1152                 int bit AU = (op[1] >> 4) & 0x07;
1153                 if (trace)
1154                   {
1155                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1156                            "/** 0011 0001 1bit 0011		bt	%e1%1, $%a0			*/",
1157                            op[0], op[1]);
1158                     printf ("  bit = 0x%x\n", bit);
1159                   }
1160                 SYNTAX("bt	%e1%1, $%a0");
1161 #line 371 "rl78-decode.opc"
1162                 ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(T);
1163 
1164               }
1165             break;
1166           case 0x84:
1167               {
1168                 /** 0011 0001 1bit 0100		bf	%s1, $%a0			*/
1169 #line 338 "rl78-decode.opc"
1170                 int bit AU = (op[1] >> 4) & 0x07;
1171                 if (trace)
1172                   {
1173                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1174                            "/** 0011 0001 1bit 0100		bf	%s1, $%a0			*/",
1175                            op[0], op[1]);
1176                     printf ("  bit = 0x%x\n", bit);
1177                   }
1178                 SYNTAX("bf	%s1, $%a0");
1179 #line 338 "rl78-decode.opc"
1180                 ID(branch_cond); SM(None, SFR); SB(bit); DC(pc+IMMS(1)+4); COND(F);
1181 
1182               }
1183             break;
1184           case 0x85:
1185               {
1186                 /** 0011 0001 1bit 0101		bf	%e1%1, $%a0			*/
1187 #line 332 "rl78-decode.opc"
1188                 int bit AU = (op[1] >> 4) & 0x07;
1189                 if (trace)
1190                   {
1191                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1192                            "/** 0011 0001 1bit 0101		bf	%e1%1, $%a0			*/",
1193                            op[0], op[1]);
1194                     printf ("  bit = 0x%x\n", bit);
1195                   }
1196                 SYNTAX("bf	%e1%1, $%a0");
1197 #line 332 "rl78-decode.opc"
1198                 ID(branch_cond); DC(pc+IMMS(1)+3); SM(HL,0); SB(bit); COND(F);
1199 
1200               }
1201             break;
1202           default: UNSUPPORTED(); break;
1203         }
1204       break;
1205     case 0x33:
1206     case 0x35:
1207     case 0x37:
1208         {
1209           /** 0011 0ra1			xchw	%0, %1				*/
1210 #line 1214 "rl78-decode.opc"
1211           int ra AU = (op[0] >> 1) & 0x03;
1212           if (trace)
1213             {
1214               printf ("\033[33m%s\033[0m  %02x\n",
1215                      "/** 0011 0ra1			xchw	%0, %1				*/",
1216                      op[0]);
1217               printf ("  ra = 0x%x\n", ra);
1218             }
1219           SYNTAX("xchw	%0, %1");
1220 #line 1214 "rl78-decode.opc"
1221           ID(xch); W(); DR(AX); SRW(ra);
1222 
1223         /*----------------------------------------------------------------------*/
1224 
1225         }
1226       break;
1227     case 0x38:
1228         {
1229           /** 0011 1000			mov	%e0%0, #%1			*/
1230           if (trace)
1231             {
1232               printf ("\033[33m%s\033[0m  %02x\n",
1233                      "/** 0011 1000			mov	%e0%0, #%1			*/",
1234                      op[0]);
1235             }
1236           SYNTAX("mov	%e0%0, #%1");
1237 #line 716 "rl78-decode.opc"
1238           ID(mov); DM(C, IMMU(2)); SC(IMMU(1));
1239 
1240         }
1241       break;
1242     case 0x39:
1243         {
1244           /** 0011 1001			mov	%e0%0, #%1			*/
1245           if (trace)
1246             {
1247               printf ("\033[33m%s\033[0m  %02x\n",
1248                      "/** 0011 1001			mov	%e0%0, #%1			*/",
1249                      op[0]);
1250             }
1251           SYNTAX("mov	%e0%0, #%1");
1252 #line 710 "rl78-decode.opc"
1253           ID(mov); DM(BC, IMMU(2)); SC(IMMU(1));
1254 
1255         }
1256       break;
1257     case 0x3a:
1258         {
1259           /** 0011 1010			subc	%0, #%1				*/
1260           if (trace)
1261             {
1262               printf ("\033[33m%s\033[0m  %02x\n",
1263                      "/** 0011 1010			subc	%0, #%1				*/",
1264                      op[0]);
1265             }
1266           SYNTAX("subc	%0, #%1");
1267 #line 1153 "rl78-decode.opc"
1268           ID(subc); DM(None, SADDR); SC(IMMU(1)); Fzac;
1269 
1270         /*----------------------------------------------------------------------*/
1271 
1272         }
1273       break;
1274     case 0x3b:
1275         {
1276           /** 0011 1011			subc	%0, %1				*/
1277           if (trace)
1278             {
1279               printf ("\033[33m%s\033[0m  %02x\n",
1280                      "/** 0011 1011			subc	%0, %1				*/",
1281                      op[0]);
1282             }
1283           SYNTAX("subc	%0, %1");
1284 #line 1150 "rl78-decode.opc"
1285           ID(subc); DR(A); SM(None, SADDR); Fzac;
1286 
1287         }
1288       break;
1289     case 0x3c:
1290         {
1291           /** 0011 1100			subc	%0, #%1				*/
1292           if (trace)
1293             {
1294               printf ("\033[33m%s\033[0m  %02x\n",
1295                      "/** 0011 1100			subc	%0, #%1				*/",
1296                      op[0]);
1297             }
1298           SYNTAX("subc	%0, #%1");
1299 #line 1141 "rl78-decode.opc"
1300           ID(subc); DR(A); SC(IMMU(1)); Fzac;
1301 
1302         }
1303       break;
1304     case 0x3d:
1305         {
1306           /** 0011 1101			subc	%0, %e1%1			*/
1307           if (trace)
1308             {
1309               printf ("\033[33m%s\033[0m  %02x\n",
1310                      "/** 0011 1101			subc	%0, %e1%1			*/",
1311                      op[0]);
1312             }
1313           SYNTAX("subc	%0, %e1%1");
1314 #line 1129 "rl78-decode.opc"
1315           ID(subc); DR(A); SM(HL, 0); Fzac;
1316 
1317         }
1318       break;
1319     case 0x3e:
1320         {
1321           /** 0011 1110			subc	%0, %e1%1			*/
1322           if (trace)
1323             {
1324               printf ("\033[33m%s\033[0m  %02x\n",
1325                      "/** 0011 1110			subc	%0, %e1%1			*/",
1326                      op[0]);
1327             }
1328           SYNTAX("subc	%0, %e1%1");
1329 #line 1138 "rl78-decode.opc"
1330           ID(subc); DR(A); SM(HL, IMMU(1)); Fzac;
1331 
1332         }
1333       break;
1334     case 0x3f:
1335         {
1336           /** 0011 1111			subc	%0, %e1%!1			*/
1337           if (trace)
1338             {
1339               printf ("\033[33m%s\033[0m  %02x\n",
1340                      "/** 0011 1111			subc	%0, %e1%!1			*/",
1341                      op[0]);
1342             }
1343           SYNTAX("subc	%0, %e1%!1");
1344 #line 1126 "rl78-decode.opc"
1345           ID(subc); DR(A); SM(None, IMMU(2)); Fzac;
1346 
1347         }
1348       break;
1349     case 0x40:
1350         {
1351           /** 0100 0000			cmp	%e0%!0, #%1			*/
1352           if (trace)
1353             {
1354               printf ("\033[33m%s\033[0m  %02x\n",
1355                      "/** 0100 0000			cmp	%e0%!0, #%1			*/",
1356                      op[0]);
1357             }
1358           SYNTAX("cmp	%e0%!0, #%1");
1359 #line 458 "rl78-decode.opc"
1360           ID(cmp); DM(None, IMMU(2)); SC(IMMU(1)); Fzac;
1361 
1362         }
1363       break;
1364     case 0x41:
1365         {
1366           /** 0100 0001			mov	%0, #%1				*/
1367           if (trace)
1368             {
1369               printf ("\033[33m%s\033[0m  %02x\n",
1370                      "/** 0100 0001			mov	%0, #%1				*/",
1371                      op[0]);
1372             }
1373           SYNTAX("mov	%0, #%1");
1374 #line 695 "rl78-decode.opc"
1375           ID(mov); DR(ES); SC(IMMU(1));
1376 
1377         }
1378       break;
1379     case 0x42:
1380         {
1381           /** 0100 0010			cmpw	%0, %e1%!1			*/
1382           if (trace)
1383             {
1384               printf ("\033[33m%s\033[0m  %02x\n",
1385                      "/** 0100 0010			cmpw	%0, %e1%!1			*/",
1386                      op[0]);
1387             }
1388           SYNTAX("cmpw	%0, %e1%!1");
1389 #line 509 "rl78-decode.opc"
1390           ID(cmp); W(); DR(AX); SM(None, IMMU(2)); Fzac;
1391 
1392         }
1393       break;
1394     case 0x43:
1395     case 0x45:
1396     case 0x47:
1397         {
1398           /** 0100 0ra1			cmpw	%0, %1				*/
1399 #line 518 "rl78-decode.opc"
1400           int ra AU = (op[0] >> 1) & 0x03;
1401           if (trace)
1402             {
1403               printf ("\033[33m%s\033[0m  %02x\n",
1404                      "/** 0100 0ra1			cmpw	%0, %1				*/",
1405                      op[0]);
1406               printf ("  ra = 0x%x\n", ra);
1407             }
1408           SYNTAX("cmpw	%0, %1");
1409 #line 518 "rl78-decode.opc"
1410           ID(cmp); W(); DR(AX); SRW(ra); Fzac;
1411 
1412         }
1413       break;
1414     case 0x44:
1415         {
1416           /** 0100 0100			cmpw	%0, #%1				*/
1417           if (trace)
1418             {
1419               printf ("\033[33m%s\033[0m  %02x\n",
1420                      "/** 0100 0100			cmpw	%0, #%1				*/",
1421                      op[0]);
1422             }
1423           SYNTAX("cmpw	%0, #%1");
1424 #line 515 "rl78-decode.opc"
1425           ID(cmp); W(); DR(AX); SC(IMMU(2)); Fzac;
1426 
1427         }
1428       break;
1429     case 0x46:
1430         {
1431           /** 0100 0110			cmpw	%0, %1				*/
1432           if (trace)
1433             {
1434               printf ("\033[33m%s\033[0m  %02x\n",
1435                      "/** 0100 0110			cmpw	%0, %1				*/",
1436                      op[0]);
1437             }
1438           SYNTAX("cmpw	%0, %1");
1439 #line 521 "rl78-decode.opc"
1440           ID(cmp); W(); DR(AX); SM(None, SADDR); Fzac;
1441 
1442         /*----------------------------------------------------------------------*/
1443 
1444         }
1445       break;
1446     case 0x48:
1447         {
1448           /** 0100 1000			mov	%e0%0, %1			*/
1449           if (trace)
1450             {
1451               printf ("\033[33m%s\033[0m  %02x\n",
1452                      "/** 0100 1000			mov	%e0%0, %1			*/",
1453                      op[0]);
1454             }
1455           SYNTAX("mov	%e0%0, %1");
1456 #line 713 "rl78-decode.opc"
1457           ID(mov); DM(BC, IMMU(2)); SR(A);
1458 
1459         }
1460       break;
1461     case 0x49:
1462         {
1463           /** 0100 1001			mov	%0, %e1%1			*/
1464           if (trace)
1465             {
1466               printf ("\033[33m%s\033[0m  %02x\n",
1467                      "/** 0100 1001			mov	%0, %e1%1			*/",
1468                      op[0]);
1469             }
1470           SYNTAX("mov	%0, %e1%1");
1471 #line 659 "rl78-decode.opc"
1472           ID(mov); DR(A); SM(BC, IMMU(2));
1473 
1474         }
1475       break;
1476     case 0x4a:
1477         {
1478           /** 0100 1010			cmp	%0, #%1				*/
1479           if (trace)
1480             {
1481               printf ("\033[33m%s\033[0m  %02x\n",
1482                      "/** 0100 1010			cmp	%0, #%1				*/",
1483                      op[0]);
1484             }
1485           SYNTAX("cmp	%0, #%1");
1486 #line 461 "rl78-decode.opc"
1487           ID(cmp); DM(None, SADDR); SC(IMMU(1)); Fzac;
1488 
1489         }
1490       break;
1491     case 0x4b:
1492         {
1493           /** 0100 1011			cmp	%0, %1				*/
1494           if (trace)
1495             {
1496               printf ("\033[33m%s\033[0m  %02x\n",
1497                      "/** 0100 1011			cmp	%0, %1				*/",
1498                      op[0]);
1499             }
1500           SYNTAX("cmp	%0, %1");
1501 #line 488 "rl78-decode.opc"
1502           ID(cmp); DR(A); SM(None, SADDR); Fzac;
1503 
1504         /*----------------------------------------------------------------------*/
1505 
1506         }
1507       break;
1508     case 0x4c:
1509         {
1510           /** 0100 1100			cmp	%0, #%1				*/
1511           if (trace)
1512             {
1513               printf ("\033[33m%s\033[0m  %02x\n",
1514                      "/** 0100 1100			cmp	%0, #%1				*/",
1515                      op[0]);
1516             }
1517           SYNTAX("cmp	%0, #%1");
1518 #line 479 "rl78-decode.opc"
1519           ID(cmp); DR(A); SC(IMMU(1)); Fzac;
1520 
1521         }
1522       break;
1523     case 0x4d:
1524         {
1525           /** 0100 1101			cmp	%0, %e1%1			*/
1526           if (trace)
1527             {
1528               printf ("\033[33m%s\033[0m  %02x\n",
1529                      "/** 0100 1101			cmp	%0, %e1%1			*/",
1530                      op[0]);
1531             }
1532           SYNTAX("cmp	%0, %e1%1");
1533 #line 467 "rl78-decode.opc"
1534           ID(cmp); DR(A); SM(HL, 0); Fzac;
1535 
1536         }
1537       break;
1538     case 0x4e:
1539         {
1540           /** 0100 1110			cmp	%0, %e1%1			*/
1541           if (trace)
1542             {
1543               printf ("\033[33m%s\033[0m  %02x\n",
1544                      "/** 0100 1110			cmp	%0, %e1%1			*/",
1545                      op[0]);
1546             }
1547           SYNTAX("cmp	%0, %e1%1");
1548 #line 476 "rl78-decode.opc"
1549           ID(cmp); DR(A); SM(HL, IMMU(1)); Fzac;
1550 
1551         }
1552       break;
1553     case 0x4f:
1554         {
1555           /** 0100 1111			cmp	%0, %e1%!1			*/
1556           if (trace)
1557             {
1558               printf ("\033[33m%s\033[0m  %02x\n",
1559                      "/** 0100 1111			cmp	%0, %e1%!1			*/",
1560                      op[0]);
1561             }
1562           SYNTAX("cmp	%0, %e1%!1");
1563 #line 464 "rl78-decode.opc"
1564           ID(cmp); DR(A); SM(None, IMMU(2)); Fzac;
1565 
1566         }
1567       break;
1568     case 0x50:
1569     case 0x51:
1570     case 0x52:
1571     case 0x53:
1572     case 0x54:
1573     case 0x55:
1574     case 0x56:
1575     case 0x57:
1576         {
1577           /** 0101 0reg			mov	%0, #%1				*/
1578 #line 647 "rl78-decode.opc"
1579           int reg AU = op[0] & 0x07;
1580           if (trace)
1581             {
1582               printf ("\033[33m%s\033[0m  %02x\n",
1583                      "/** 0101 0reg			mov	%0, #%1				*/",
1584                      op[0]);
1585               printf ("  reg = 0x%x\n", reg);
1586             }
1587           SYNTAX("mov	%0, #%1");
1588 #line 647 "rl78-decode.opc"
1589           ID(mov); DRB(reg); SC(IMMU(1));
1590 
1591         }
1592       break;
1593     case 0x58:
1594         {
1595           /** 0101 1000			movw	%e0%0, %1			*/
1596           if (trace)
1597             {
1598               printf ("\033[33m%s\033[0m  %02x\n",
1599                      "/** 0101 1000			movw	%e0%0, %1			*/",
1600                      op[0]);
1601             }
1602           SYNTAX("movw	%e0%0, %1");
1603 #line 846 "rl78-decode.opc"
1604           ID(mov); W(); DM(B, IMMU(2)); SR(AX);
1605 
1606         }
1607       break;
1608     case 0x59:
1609         {
1610           /** 0101 1001			movw	%0, %e1%1			*/
1611           if (trace)
1612             {
1613               printf ("\033[33m%s\033[0m  %02x\n",
1614                      "/** 0101 1001			movw	%0, %e1%1			*/",
1615                      op[0]);
1616             }
1617           SYNTAX("movw	%0, %e1%1");
1618 #line 837 "rl78-decode.opc"
1619           ID(mov); W(); DR(AX); SM(B, IMMU(2));
1620 
1621         }
1622       break;
1623     case 0x5a:
1624         {
1625           /** 0101 1010	       		and	%0, #%1				*/
1626           if (trace)
1627             {
1628               printf ("\033[33m%s\033[0m  %02x\n",
1629                      "/** 0101 1010	       		and	%0, #%1				*/",
1630                      op[0]);
1631             }
1632           SYNTAX("and	%0, #%1");
1633 #line 290 "rl78-decode.opc"
1634           ID(and); DM(None, SADDR); SC(IMMU(1)); Fz;
1635 
1636         /*----------------------------------------------------------------------*/
1637 
1638         }
1639       break;
1640     case 0x5b:
1641         {
1642           /** 0101 1011	       		and	%0, %1				*/
1643           if (trace)
1644             {
1645               printf ("\033[33m%s\033[0m  %02x\n",
1646                      "/** 0101 1011	       		and	%0, %1				*/",
1647                      op[0]);
1648             }
1649           SYNTAX("and	%0, %1");
1650 #line 287 "rl78-decode.opc"
1651           ID(and); DR(A); SM(None, SADDR); Fz;
1652 
1653         }
1654       break;
1655     case 0x5c:
1656         {
1657           /** 0101 1100	       		and	%0, #%1				*/
1658           if (trace)
1659             {
1660               printf ("\033[33m%s\033[0m  %02x\n",
1661                      "/** 0101 1100	       		and	%0, #%1				*/",
1662                      op[0]);
1663             }
1664           SYNTAX("and	%0, #%1");
1665 #line 278 "rl78-decode.opc"
1666           ID(and); DR(A); SC(IMMU(1)); Fz;
1667 
1668         }
1669       break;
1670     case 0x5d:
1671         {
1672           /** 0101 1101			and	%0, %e1%1			*/
1673           if (trace)
1674             {
1675               printf ("\033[33m%s\033[0m  %02x\n",
1676                      "/** 0101 1101			and	%0, %e1%1			*/",
1677                      op[0]);
1678             }
1679           SYNTAX("and	%0, %e1%1");
1680 #line 266 "rl78-decode.opc"
1681           ID(and); DR(A); SM(HL, 0); Fz;
1682 
1683         }
1684       break;
1685     case 0x5e:
1686         {
1687           /** 0101 1110			and	%0, %e1%1			*/
1688           if (trace)
1689             {
1690               printf ("\033[33m%s\033[0m  %02x\n",
1691                      "/** 0101 1110			and	%0, %e1%1			*/",
1692                      op[0]);
1693             }
1694           SYNTAX("and	%0, %e1%1");
1695 #line 272 "rl78-decode.opc"
1696           ID(and); DR(A); SM(HL, IMMU(1)); Fz;
1697 
1698         }
1699       break;
1700     case 0x5f:
1701         {
1702           /** 0101 1111			and	%0, %e1%!1			*/
1703           if (trace)
1704             {
1705               printf ("\033[33m%s\033[0m  %02x\n",
1706                      "/** 0101 1111			and	%0, %e1%!1			*/",
1707                      op[0]);
1708             }
1709           SYNTAX("and	%0, %e1%!1");
1710 #line 263 "rl78-decode.opc"
1711           ID(and); DR(A); SM(None, IMMU(2)); Fz;
1712 
1713         }
1714       break;
1715     case 0x60:
1716     case 0x62:
1717     case 0x63:
1718     case 0x64:
1719     case 0x65:
1720     case 0x66:
1721     case 0x67:
1722         {
1723           /** 0110 0rba			mov	%0, %1				*/
1724 #line 650 "rl78-decode.opc"
1725           int rba AU = op[0] & 0x07;
1726           if (trace)
1727             {
1728               printf ("\033[33m%s\033[0m  %02x\n",
1729                      "/** 0110 0rba			mov	%0, %1				*/",
1730                      op[0]);
1731               printf ("  rba = 0x%x\n", rba);
1732             }
1733           SYNTAX("mov	%0, %1");
1734 #line 650 "rl78-decode.opc"
1735           ID(mov); DR(A); SRB(rba);
1736 
1737         }
1738       break;
1739     case 0x61:
1740         GETBYTE ();
1741         switch (op[1] & 0xff)
1742         {
1743           case 0x00:
1744           case 0x01:
1745           case 0x02:
1746           case 0x03:
1747           case 0x04:
1748           case 0x05:
1749           case 0x06:
1750           case 0x07:
1751               {
1752                 /** 0110 0001 0000 0reg		add	%0, %1				*/
1753 #line 203 "rl78-decode.opc"
1754                 int reg AU = op[1] & 0x07;
1755                 if (trace)
1756                   {
1757                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1758                            "/** 0110 0001 0000 0reg		add	%0, %1				*/",
1759                            op[0], op[1]);
1760                     printf ("  reg = 0x%x\n", reg);
1761                   }
1762                 SYNTAX("add	%0, %1");
1763 #line 203 "rl78-decode.opc"
1764                 ID(add); DRB(reg); SR(A); Fzac;
1765 
1766               }
1767             break;
1768           case 0x08:
1769           case 0x0a:
1770           case 0x0b:
1771           case 0x0c:
1772           case 0x0d:
1773           case 0x0e:
1774           case 0x0f:
1775               {
1776                 /** 0110 0001 0000 1rba		add	%0, %1				*/
1777 #line 197 "rl78-decode.opc"
1778                 int rba AU = op[1] & 0x07;
1779                 if (trace)
1780                   {
1781                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1782                            "/** 0110 0001 0000 1rba		add	%0, %1				*/",
1783                            op[0], op[1]);
1784                     printf ("  rba = 0x%x\n", rba);
1785                   }
1786                 SYNTAX("add	%0, %1");
1787 #line 197 "rl78-decode.opc"
1788                 ID(add); DR(A); SRB(rba); Fzac;
1789 
1790               }
1791             break;
1792           case 0x09:
1793               {
1794                 /** 0110 0001 0000 1001		addw	%0, %e1%1			*/
1795                 if (trace)
1796                   {
1797                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1798                            "/** 0110 0001 0000 1001		addw	%0, %e1%1			*/",
1799                            op[0], op[1]);
1800                   }
1801                 SYNTAX("addw	%0, %e1%1");
1802 #line 246 "rl78-decode.opc"
1803                 ID(add); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
1804 
1805               }
1806             break;
1807           case 0x10:
1808           case 0x11:
1809           case 0x12:
1810           case 0x13:
1811           case 0x14:
1812           case 0x15:
1813           case 0x16:
1814           case 0x17:
1815               {
1816                 /** 0110 0001 0001 0reg		addc	%0, %1				*/
1817 #line 232 "rl78-decode.opc"
1818                 int reg AU = op[1] & 0x07;
1819                 if (trace)
1820                   {
1821                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1822                            "/** 0110 0001 0001 0reg		addc	%0, %1				*/",
1823                            op[0], op[1]);
1824                     printf ("  reg = 0x%x\n", reg);
1825                   }
1826                 SYNTAX("addc	%0, %1");
1827 #line 232 "rl78-decode.opc"
1828                 ID(addc); DRB(reg); SR(A); Fzac;
1829 
1830               }
1831             break;
1832           case 0x18:
1833           case 0x1a:
1834           case 0x1b:
1835           case 0x1c:
1836           case 0x1d:
1837           case 0x1e:
1838           case 0x1f:
1839               {
1840                 /** 0110 0001 0001 1rba		addc	%0, %1				*/
1841 #line 229 "rl78-decode.opc"
1842                 int rba AU = op[1] & 0x07;
1843                 if (trace)
1844                   {
1845                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1846                            "/** 0110 0001 0001 1rba		addc	%0, %1				*/",
1847                            op[0], op[1]);
1848                     printf ("  rba = 0x%x\n", rba);
1849                   }
1850                 SYNTAX("addc	%0, %1");
1851 #line 229 "rl78-decode.opc"
1852                 ID(addc); DR(A); SRB(rba); Fzac;
1853 
1854               }
1855             break;
1856           case 0x20:
1857           case 0x21:
1858           case 0x22:
1859           case 0x23:
1860           case 0x24:
1861           case 0x25:
1862           case 0x26:
1863           case 0x27:
1864               {
1865                 /** 0110 0001 0010 0reg		sub	%0, %1				*/
1866 #line 1118 "rl78-decode.opc"
1867                 int reg AU = op[1] & 0x07;
1868                 if (trace)
1869                   {
1870                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1871                            "/** 0110 0001 0010 0reg		sub	%0, %1				*/",
1872                            op[0], op[1]);
1873                     printf ("  reg = 0x%x\n", reg);
1874                   }
1875                 SYNTAX("sub	%0, %1");
1876 #line 1118 "rl78-decode.opc"
1877                 ID(sub); DRB(reg); SR(A); Fzac;
1878 
1879               }
1880             break;
1881           case 0x28:
1882           case 0x2a:
1883           case 0x2b:
1884           case 0x2c:
1885           case 0x2d:
1886           case 0x2e:
1887           case 0x2f:
1888               {
1889                 /** 0110 0001 0010 1rba		sub	%0, %1				*/
1890 #line 1112 "rl78-decode.opc"
1891                 int rba AU = op[1] & 0x07;
1892                 if (trace)
1893                   {
1894                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1895                            "/** 0110 0001 0010 1rba		sub	%0, %1				*/",
1896                            op[0], op[1]);
1897                     printf ("  rba = 0x%x\n", rba);
1898                   }
1899                 SYNTAX("sub	%0, %1");
1900 #line 1112 "rl78-decode.opc"
1901                 ID(sub); DR(A); SRB(rba); Fzac;
1902 
1903               }
1904             break;
1905           case 0x29:
1906               {
1907                 /** 0110 0001 0010 1001		subw	%0, %e1%1			*/
1908                 if (trace)
1909                   {
1910                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1911                            "/** 0110 0001 0010 1001		subw	%0, %e1%1			*/",
1912                            op[0], op[1]);
1913                   }
1914                 SYNTAX("subw	%0, %e1%1");
1915 #line 1161 "rl78-decode.opc"
1916                 ID(sub); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
1917 
1918               }
1919             break;
1920           case 0x30:
1921           case 0x31:
1922           case 0x32:
1923           case 0x33:
1924           case 0x34:
1925           case 0x35:
1926           case 0x36:
1927           case 0x37:
1928               {
1929                 /** 0110 0001 0011 0reg		subc	%0, %1				*/
1930 #line 1147 "rl78-decode.opc"
1931                 int reg AU = op[1] & 0x07;
1932                 if (trace)
1933                   {
1934                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1935                            "/** 0110 0001 0011 0reg		subc	%0, %1				*/",
1936                            op[0], op[1]);
1937                     printf ("  reg = 0x%x\n", reg);
1938                   }
1939                 SYNTAX("subc	%0, %1");
1940 #line 1147 "rl78-decode.opc"
1941                 ID(subc); DRB(reg); SR(A); Fzac;
1942 
1943               }
1944             break;
1945           case 0x38:
1946           case 0x3a:
1947           case 0x3b:
1948           case 0x3c:
1949           case 0x3d:
1950           case 0x3e:
1951           case 0x3f:
1952               {
1953                 /** 0110 0001 0011 1rba		subc	%0, %1				*/
1954 #line 1144 "rl78-decode.opc"
1955                 int rba AU = op[1] & 0x07;
1956                 if (trace)
1957                   {
1958                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1959                            "/** 0110 0001 0011 1rba		subc	%0, %1				*/",
1960                            op[0], op[1]);
1961                     printf ("  rba = 0x%x\n", rba);
1962                   }
1963                 SYNTAX("subc	%0, %1");
1964 #line 1144 "rl78-decode.opc"
1965                 ID(subc); DR(A); SRB(rba); Fzac;
1966 
1967               }
1968             break;
1969           case 0x40:
1970           case 0x41:
1971           case 0x42:
1972           case 0x43:
1973           case 0x44:
1974           case 0x45:
1975           case 0x46:
1976           case 0x47:
1977               {
1978                 /** 0110 0001 0100 0reg		cmp	%0, %1				*/
1979 #line 485 "rl78-decode.opc"
1980                 int reg AU = op[1] & 0x07;
1981                 if (trace)
1982                   {
1983                     printf ("\033[33m%s\033[0m  %02x %02x\n",
1984                            "/** 0110 0001 0100 0reg		cmp	%0, %1				*/",
1985                            op[0], op[1]);
1986                     printf ("  reg = 0x%x\n", reg);
1987                   }
1988                 SYNTAX("cmp	%0, %1");
1989 #line 485 "rl78-decode.opc"
1990                 ID(cmp); DRB(reg); SR(A); Fzac;
1991 
1992               }
1993             break;
1994           case 0x48:
1995           case 0x4a:
1996           case 0x4b:
1997           case 0x4c:
1998           case 0x4d:
1999           case 0x4e:
2000           case 0x4f:
2001               {
2002                 /** 0110 0001 0100 1rba		cmp	%0, %1				*/
2003 #line 482 "rl78-decode.opc"
2004                 int rba AU = op[1] & 0x07;
2005                 if (trace)
2006                   {
2007                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2008                            "/** 0110 0001 0100 1rba		cmp	%0, %1				*/",
2009                            op[0], op[1]);
2010                     printf ("  rba = 0x%x\n", rba);
2011                   }
2012                 SYNTAX("cmp	%0, %1");
2013 #line 482 "rl78-decode.opc"
2014                 ID(cmp); DR(A); SRB(rba); Fzac;
2015 
2016               }
2017             break;
2018           case 0x49:
2019               {
2020                 /** 0110 0001 0100 1001		cmpw	%0, %e1%1			*/
2021                 if (trace)
2022                   {
2023                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2024                            "/** 0110 0001 0100 1001		cmpw	%0, %e1%1			*/",
2025                            op[0], op[1]);
2026                   }
2027                 SYNTAX("cmpw	%0, %e1%1");
2028 #line 512 "rl78-decode.opc"
2029                 ID(cmp); W(); DR(AX); SM(HL, IMMU(1)); Fzac;
2030 
2031               }
2032             break;
2033           case 0x50:
2034           case 0x51:
2035           case 0x52:
2036           case 0x53:
2037           case 0x54:
2038           case 0x55:
2039           case 0x56:
2040           case 0x57:
2041               {
2042                 /** 0110 0001 0101 0reg		and	%0, %1				*/
2043 #line 284 "rl78-decode.opc"
2044                 int reg AU = op[1] & 0x07;
2045                 if (trace)
2046                   {
2047                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2048                            "/** 0110 0001 0101 0reg		and	%0, %1				*/",
2049                            op[0], op[1]);
2050                     printf ("  reg = 0x%x\n", reg);
2051                   }
2052                 SYNTAX("and	%0, %1");
2053 #line 284 "rl78-decode.opc"
2054                 ID(and); DRB(reg); SR(A); Fz;
2055 
2056               }
2057             break;
2058           case 0x58:
2059           case 0x5a:
2060           case 0x5b:
2061           case 0x5c:
2062           case 0x5d:
2063           case 0x5e:
2064           case 0x5f:
2065               {
2066                 /** 0110 0001 0101 1rba		and	%0, %1				*/
2067 #line 281 "rl78-decode.opc"
2068                 int rba AU = op[1] & 0x07;
2069                 if (trace)
2070                   {
2071                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2072                            "/** 0110 0001 0101 1rba		and	%0, %1				*/",
2073                            op[0], op[1]);
2074                     printf ("  rba = 0x%x\n", rba);
2075                   }
2076                 SYNTAX("and	%0, %1");
2077 #line 281 "rl78-decode.opc"
2078                 ID(and); DR(A); SRB(rba); Fz;
2079 
2080               }
2081             break;
2082           case 0x59:
2083               {
2084                 /** 0110 0001 0101 1001		inc	%e0%0				*/
2085                 if (trace)
2086                   {
2087                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2088                            "/** 0110 0001 0101 1001		inc	%e0%0				*/",
2089                            op[0], op[1]);
2090                   }
2091                 SYNTAX("inc	%e0%0");
2092 #line 562 "rl78-decode.opc"
2093                 ID(add); DM(HL, IMMU(1)); SC(1); Fza;
2094 
2095               }
2096             break;
2097           case 0x60:
2098           case 0x61:
2099           case 0x62:
2100           case 0x63:
2101           case 0x64:
2102           case 0x65:
2103           case 0x66:
2104           case 0x67:
2105               {
2106                 /** 0110 0001 0110 0reg		or	%0, %1				*/
2107 #line 936 "rl78-decode.opc"
2108                 int reg AU = op[1] & 0x07;
2109                 if (trace)
2110                   {
2111                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2112                            "/** 0110 0001 0110 0reg		or	%0, %1				*/",
2113                            op[0], op[1]);
2114                     printf ("  reg = 0x%x\n", reg);
2115                   }
2116                 SYNTAX("or	%0, %1");
2117 #line 936 "rl78-decode.opc"
2118                 ID(or); DRB(reg); SR(A); Fz;
2119 
2120               }
2121             break;
2122           case 0x68:
2123           case 0x6a:
2124           case 0x6b:
2125           case 0x6c:
2126           case 0x6d:
2127           case 0x6e:
2128           case 0x6f:
2129               {
2130                 /** 0110 0001 0110 1rba		or	%0, %1				*/
2131 #line 933 "rl78-decode.opc"
2132                 int rba AU = op[1] & 0x07;
2133                 if (trace)
2134                   {
2135                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2136                            "/** 0110 0001 0110 1rba		or	%0, %1				*/",
2137                            op[0], op[1]);
2138                     printf ("  rba = 0x%x\n", rba);
2139                   }
2140                 SYNTAX("or	%0, %1");
2141 #line 933 "rl78-decode.opc"
2142                 ID(or); DR(A); SRB(rba); Fz;
2143 
2144               }
2145             break;
2146           case 0x69:
2147               {
2148                 /** 0110 0001 0110 1001		dec	%e0%0				*/
2149                 if (trace)
2150                   {
2151                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2152                            "/** 0110 0001 0110 1001		dec	%e0%0				*/",
2153                            op[0], op[1]);
2154                   }
2155                 SYNTAX("dec	%e0%0");
2156 #line 529 "rl78-decode.opc"
2157                 ID(sub); DM(HL, IMMU(1)); SC(1); Fza;
2158 
2159               }
2160             break;
2161           case 0x70:
2162           case 0x71:
2163           case 0x72:
2164           case 0x73:
2165           case 0x74:
2166           case 0x75:
2167           case 0x76:
2168           case 0x77:
2169               {
2170                 /** 0110 0001 0111 0reg		xor	%0, %1				*/
2171 #line 1240 "rl78-decode.opc"
2172                 int reg AU = op[1] & 0x07;
2173                 if (trace)
2174                   {
2175                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2176                            "/** 0110 0001 0111 0reg		xor	%0, %1				*/",
2177                            op[0], op[1]);
2178                     printf ("  reg = 0x%x\n", reg);
2179                   }
2180                 SYNTAX("xor	%0, %1");
2181 #line 1240 "rl78-decode.opc"
2182                 ID(xor); DRB(reg); SR(A); Fz;
2183 
2184               }
2185             break;
2186           case 0x78:
2187           case 0x7a:
2188           case 0x7b:
2189           case 0x7c:
2190           case 0x7d:
2191           case 0x7e:
2192           case 0x7f:
2193               {
2194                 /** 0110 0001 0111 1rba		xor	%0, %1				*/
2195 #line 1237 "rl78-decode.opc"
2196                 int rba AU = op[1] & 0x07;
2197                 if (trace)
2198                   {
2199                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2200                            "/** 0110 0001 0111 1rba		xor	%0, %1				*/",
2201                            op[0], op[1]);
2202                     printf ("  rba = 0x%x\n", rba);
2203                   }
2204                 SYNTAX("xor	%0, %1");
2205 #line 1237 "rl78-decode.opc"
2206                 ID(xor); DR(A); SRB(rba); Fz;
2207 
2208               }
2209             break;
2210           case 0x79:
2211               {
2212                 /** 0110 0001 0111 1001		incw	%e0%0				*/
2213                 if (trace)
2214                   {
2215                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2216                            "/** 0110 0001 0111 1001		incw	%e0%0				*/",
2217                            op[0], op[1]);
2218                   }
2219                 SYNTAX("incw	%e0%0");
2220 #line 576 "rl78-decode.opc"
2221                 ID(add); W(); DM(HL, IMMU(1)); SC(1);
2222 
2223               }
2224             break;
2225           case 0x80:
2226           case 0x81:
2227               {
2228                 /** 0110 0001 1000 000		add	%0, %e1%1			*/
2229                 if (trace)
2230                   {
2231                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2232                            "/** 0110 0001 1000 000		add	%0, %e1%1			*/",
2233                            op[0], op[1]);
2234                   }
2235                 SYNTAX("add	%0, %e1%1");
2236 #line 185 "rl78-decode.opc"
2237                 ID(add); DR(A); SM2(HL, B, 0); Fzac;
2238 
2239               }
2240             break;
2241           case 0x82:
2242               {
2243                 /** 0110 0001 1000 0010		add	%0, %e1%1			*/
2244                 if (trace)
2245                   {
2246                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2247                            "/** 0110 0001 1000 0010		add	%0, %e1%1			*/",
2248                            op[0], op[1]);
2249                   }
2250                 SYNTAX("add	%0, %e1%1");
2251 #line 191 "rl78-decode.opc"
2252                 ID(add); DR(A); SM2(HL, C, 0); Fzac;
2253 
2254               }
2255             break;
2256           case 0x84:
2257           case 0x85:
2258           case 0x86:
2259           case 0x87:
2260           case 0x94:
2261           case 0x95:
2262           case 0x96:
2263           case 0x97:
2264           case 0xa4:
2265           case 0xa5:
2266           case 0xa6:
2267           case 0xa7:
2268           case 0xb4:
2269           case 0xb5:
2270           case 0xb6:
2271           case 0xb7:
2272           case 0xc4:
2273           case 0xc5:
2274           case 0xc6:
2275           case 0xc7:
2276           case 0xd4:
2277           case 0xd5:
2278           case 0xd6:
2279           case 0xd7:
2280           case 0xe4:
2281           case 0xe5:
2282           case 0xe6:
2283           case 0xe7:
2284           case 0xf4:
2285           case 0xf5:
2286           case 0xf6:
2287           case 0xf7:
2288               {
2289                 /** 0110 0001 1nnn 01mm		callt	[%x0]				*/
2290 #line 411 "rl78-decode.opc"
2291                 int nnn AU = (op[1] >> 4) & 0x07;
2292 #line 411 "rl78-decode.opc"
2293                 int mm AU = op[1] & 0x03;
2294                 if (trace)
2295                   {
2296                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2297                            "/** 0110 0001 1nnn 01mm		callt	[%x0]				*/",
2298                            op[0], op[1]);
2299                     printf ("  nnn = 0x%x,", nnn);
2300                     printf ("  mm = 0x%x\n", mm);
2301                   }
2302                 SYNTAX("callt	[%x0]");
2303 #line 411 "rl78-decode.opc"
2304                 ID(call); DM(None, 0x80 + mm*16 + nnn*2);
2305 
2306               /*----------------------------------------------------------------------*/
2307 
2308               }
2309             break;
2310           case 0x88:
2311           case 0x8a:
2312           case 0x8b:
2313           case 0x8c:
2314           case 0x8d:
2315           case 0x8e:
2316           case 0x8f:
2317               {
2318                 /** 0110 0001 1000 1reg		xch	%0, %1				*/
2319 #line 1199 "rl78-decode.opc"
2320                 int reg AU = op[1] & 0x07;
2321                 if (trace)
2322                   {
2323                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2324                            "/** 0110 0001 1000 1reg		xch	%0, %1				*/",
2325                            op[0], op[1]);
2326                     printf ("  reg = 0x%x\n", reg);
2327                   }
2328                 SYNTAX("xch	%0, %1");
2329 #line 1199 "rl78-decode.opc"
2330                 /* Note: DECW uses reg == X, so this must follow DECW */
2331                 ID(xch); DR(A); SRB(reg);
2332 
2333               }
2334             break;
2335           case 0x89:
2336               {
2337                 /** 0110 0001 1000 1001		decw	%e0%0				*/
2338                 if (trace)
2339                   {
2340                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2341                            "/** 0110 0001 1000 1001		decw	%e0%0				*/",
2342                            op[0], op[1]);
2343                   }
2344                 SYNTAX("decw	%e0%0");
2345 #line 543 "rl78-decode.opc"
2346                 ID(sub); W(); DM(HL, IMMU(1)); SC(1);
2347 
2348               }
2349             break;
2350           case 0x90:
2351               {
2352                 /** 0110 0001 1001 0000		addc	%0, %e1%1			*/
2353                 if (trace)
2354                   {
2355                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2356                            "/** 0110 0001 1001 0000		addc	%0, %e1%1			*/",
2357                            op[0], op[1]);
2358                   }
2359                 SYNTAX("addc	%0, %e1%1");
2360 #line 217 "rl78-decode.opc"
2361                 ID(addc); DR(A); SM2(HL, B, 0); Fzac;
2362 
2363               }
2364             break;
2365           case 0x92:
2366               {
2367                 /** 0110 0001 1001 0010		addc	%0, %e1%1			*/
2368                 if (trace)
2369                   {
2370                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2371                            "/** 0110 0001 1001 0010		addc	%0, %e1%1			*/",
2372                            op[0], op[1]);
2373                   }
2374                 SYNTAX("addc	%0, %e1%1");
2375 #line 220 "rl78-decode.opc"
2376                 ID(addc); DR(A); SM2(HL, C, 0); Fzac;
2377 
2378               }
2379             break;
2380           case 0xa0:
2381           case 0xa1:
2382               {
2383                 /** 0110 0001 1010 000		sub	%0, %e1%1			*/
2384                 if (trace)
2385                   {
2386                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2387                            "/** 0110 0001 1010 000		sub	%0, %e1%1			*/",
2388                            op[0], op[1]);
2389                   }
2390                 SYNTAX("sub	%0, %e1%1");
2391 #line 1100 "rl78-decode.opc"
2392                 ID(sub); DR(A); SM2(HL, B, 0); Fzac;
2393 
2394               }
2395             break;
2396           case 0xa2:
2397               {
2398                 /** 0110 0001 1010 0010		sub	%0, %e1%1			*/
2399                 if (trace)
2400                   {
2401                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2402                            "/** 0110 0001 1010 0010		sub	%0, %e1%1			*/",
2403                            op[0], op[1]);
2404                   }
2405                 SYNTAX("sub	%0, %e1%1");
2406 #line 1106 "rl78-decode.opc"
2407                 ID(sub); DR(A); SM2(HL, C, 0); Fzac;
2408 
2409               }
2410             break;
2411           case 0xa8:
2412               {
2413                 /** 0110 0001 1010 1000	       	xch	%0, %1				*/
2414                 if (trace)
2415                   {
2416                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2417                            "/** 0110 0001 1010 1000	       	xch	%0, %1				*/",
2418                            op[0], op[1]);
2419                   }
2420                 SYNTAX("xch	%0, %1");
2421 #line 1203 "rl78-decode.opc"
2422                 ID(xch); DR(A); SM(None, SADDR);
2423 
2424               }
2425             break;
2426           case 0xa9:
2427               {
2428                 /** 0110 0001 1010 1001		xch	%0, %e1%1			*/
2429                 if (trace)
2430                   {
2431                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2432                            "/** 0110 0001 1010 1001		xch	%0, %e1%1			*/",
2433                            op[0], op[1]);
2434                   }
2435                 SYNTAX("xch	%0, %e1%1");
2436 #line 1196 "rl78-decode.opc"
2437                 ID(xch); DR(A); SM2(HL, C, 0);
2438 
2439               }
2440             break;
2441           case 0xaa:
2442               {
2443                 /** 0110 0001 1010 1010		xch	%0, %e1%!1			*/
2444                 if (trace)
2445                   {
2446                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2447                            "/** 0110 0001 1010 1010		xch	%0, %e1%!1			*/",
2448                            op[0], op[1]);
2449                   }
2450                 SYNTAX("xch	%0, %e1%!1");
2451 #line 1178 "rl78-decode.opc"
2452                 ID(xch); DR(A); SM(None, IMMU(2));
2453 
2454               }
2455             break;
2456           case 0xab:
2457               {
2458                 /** 0110 0001 1010 1011	       	xch	%0, %1				*/
2459                 if (trace)
2460                   {
2461                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2462                            "/** 0110 0001 1010 1011	       	xch	%0, %1				*/",
2463                            op[0], op[1]);
2464                   }
2465                 SYNTAX("xch	%0, %1");
2466 #line 1206 "rl78-decode.opc"
2467                 ID(xch); DR(A); SM(None, SFR);
2468 
2469               }
2470             break;
2471           case 0xac:
2472               {
2473                 /** 0110 0001 1010 1100		xch	%0, %e1%1			*/
2474                 if (trace)
2475                   {
2476                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2477                            "/** 0110 0001 1010 1100		xch	%0, %e1%1			*/",
2478                            op[0], op[1]);
2479                   }
2480                 SYNTAX("xch	%0, %e1%1");
2481 #line 1187 "rl78-decode.opc"
2482                 ID(xch); DR(A); SM(HL, 0);
2483 
2484               }
2485             break;
2486           case 0xad:
2487               {
2488                 /** 0110 0001 1010 1101		xch	%0, %e1%1			*/
2489                 if (trace)
2490                   {
2491                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2492                            "/** 0110 0001 1010 1101		xch	%0, %e1%1			*/",
2493                            op[0], op[1]);
2494                   }
2495                 SYNTAX("xch	%0, %e1%1");
2496 #line 1193 "rl78-decode.opc"
2497                 ID(xch); DR(A); SM(HL, IMMU(1));
2498 
2499               }
2500             break;
2501           case 0xae:
2502               {
2503                 /** 0110 0001 1010 1110		xch	%0, %e1%1			*/
2504                 if (trace)
2505                   {
2506                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2507                            "/** 0110 0001 1010 1110		xch	%0, %e1%1			*/",
2508                            op[0], op[1]);
2509                   }
2510                 SYNTAX("xch	%0, %e1%1");
2511 #line 1181 "rl78-decode.opc"
2512                 ID(xch); DR(A); SM(DE, 0);
2513 
2514               }
2515             break;
2516           case 0xaf:
2517               {
2518                 /** 0110 0001 1010 1111		xch	%0, %e1%1			*/
2519                 if (trace)
2520                   {
2521                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2522                            "/** 0110 0001 1010 1111		xch	%0, %e1%1			*/",
2523                            op[0], op[1]);
2524                   }
2525                 SYNTAX("xch	%0, %e1%1");
2526 #line 1184 "rl78-decode.opc"
2527                 ID(xch); DR(A); SM(DE, IMMU(1));
2528 
2529               }
2530             break;
2531           case 0xb0:
2532               {
2533                 /** 0110 0001 1011 0000		subc	%0, %e1%1			*/
2534                 if (trace)
2535                   {
2536                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2537                            "/** 0110 0001 1011 0000		subc	%0, %e1%1			*/",
2538                            op[0], op[1]);
2539                   }
2540                 SYNTAX("subc	%0, %e1%1");
2541 #line 1132 "rl78-decode.opc"
2542                 ID(subc); DR(A); SM2(HL, B, 0); Fzac;
2543 
2544               }
2545             break;
2546           case 0xb2:
2547               {
2548                 /** 0110 0001 1011 0010		subc	%0, %e1%1			*/
2549                 if (trace)
2550                   {
2551                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2552                            "/** 0110 0001 1011 0010		subc	%0, %e1%1			*/",
2553                            op[0], op[1]);
2554                   }
2555                 SYNTAX("subc	%0, %e1%1");
2556 #line 1135 "rl78-decode.opc"
2557                 ID(subc); DR(A); SM2(HL, C, 0); Fzac;
2558 
2559               }
2560             break;
2561           case 0xb8:
2562               {
2563                 /** 0110 0001 1011 1000		mov	%0, %1				*/
2564                 if (trace)
2565                   {
2566                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2567                            "/** 0110 0001 1011 1000		mov	%0, %1				*/",
2568                            op[0], op[1]);
2569                   }
2570                 SYNTAX("mov	%0, %1");
2571 #line 701 "rl78-decode.opc"
2572                 ID(mov); DR(ES); SM(None, SADDR);
2573 
2574               }
2575             break;
2576           case 0xb9:
2577               {
2578                 /** 0110 0001 1011 1001		xch	%0, %e1%1			*/
2579                 if (trace)
2580                   {
2581                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2582                            "/** 0110 0001 1011 1001		xch	%0, %e1%1			*/",
2583                            op[0], op[1]);
2584                   }
2585                 SYNTAX("xch	%0, %e1%1");
2586 #line 1190 "rl78-decode.opc"
2587                 ID(xch); DR(A); SM2(HL, B, 0);
2588 
2589               }
2590             break;
2591           case 0xc0:
2592               {
2593                 /** 0110 0001 1100 0000		cmp	%0, %e1%1			*/
2594                 if (trace)
2595                   {
2596                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2597                            "/** 0110 0001 1100 0000		cmp	%0, %e1%1			*/",
2598                            op[0], op[1]);
2599                   }
2600                 SYNTAX("cmp	%0, %e1%1");
2601 #line 470 "rl78-decode.opc"
2602                 ID(cmp); DR(A); SM2(HL, B, 0); Fzac;
2603 
2604               }
2605             break;
2606           case 0xc2:
2607               {
2608                 /** 0110 0001 1100 0010		cmp	%0, %e1%1			*/
2609                 if (trace)
2610                   {
2611                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2612                            "/** 0110 0001 1100 0010		cmp	%0, %e1%1			*/",
2613                            op[0], op[1]);
2614                   }
2615                 SYNTAX("cmp	%0, %e1%1");
2616 #line 473 "rl78-decode.opc"
2617                 ID(cmp); DR(A); SM2(HL, C, 0); Fzac;
2618 
2619               }
2620             break;
2621           case 0xc3:
2622               {
2623                 /** 0110 0001 1100 0011		bh	$%a0				*/
2624                 if (trace)
2625                   {
2626                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2627                            "/** 0110 0001 1100 0011		bh	$%a0				*/",
2628                            op[0], op[1]);
2629                   }
2630                 SYNTAX("bh	$%a0");
2631 #line 318 "rl78-decode.opc"
2632                 ID(branch_cond); DC(pc+IMMS(1)+3); SR(None); COND(H);
2633 
2634               }
2635             break;
2636           case 0xc8:
2637               {
2638                 /** 0110 0001 1100 1000		sk%c1					*/
2639                 if (trace)
2640                   {
2641                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2642                            "/** 0110 0001 1100 1000		sk%c1					*/",
2643                            op[0], op[1]);
2644                   }
2645                 SYNTAX("sk%c1");
2646 #line 1069 "rl78-decode.opc"
2647                 ID(skip); COND(C);
2648 
2649               }
2650             break;
2651           case 0xc9:
2652               {
2653                 /** 0110 0001 1100 1001		mov	%0, %e1%1			*/
2654                 if (trace)
2655                   {
2656                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2657                            "/** 0110 0001 1100 1001		mov	%0, %e1%1			*/",
2658                            op[0], op[1]);
2659                   }
2660                 SYNTAX("mov	%0, %e1%1");
2661 #line 638 "rl78-decode.opc"
2662                 ID(mov); DR(A); SM2(HL, B, 0);
2663 
2664               }
2665             break;
2666           case 0xca:
2667           case 0xda:
2668           case 0xea:
2669           case 0xfa:
2670               {
2671                 /** 0110 0001 11rg 1010		call	%0				*/
2672 #line 408 "rl78-decode.opc"
2673                 int rg AU = (op[1] >> 4) & 0x03;
2674                 if (trace)
2675                   {
2676                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2677                            "/** 0110 0001 11rg 1010		call	%0				*/",
2678                            op[0], op[1]);
2679                     printf ("  rg = 0x%x\n", rg);
2680                   }
2681                 SYNTAX("call	%0");
2682 #line 408 "rl78-decode.opc"
2683                 ID(call); DRW(rg);
2684 
2685               }
2686             break;
2687           case 0xcb:
2688               {
2689                 /** 0110 0001 1100 1011		br	ax				*/
2690                 if (trace)
2691                   {
2692                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2693                            "/** 0110 0001 1100 1011		br	ax				*/",
2694                            op[0], op[1]);
2695                   }
2696                 SYNTAX("br	ax");
2697 #line 358 "rl78-decode.opc"
2698                 ID(branch); DR(AX);
2699 
2700               /*----------------------------------------------------------------------*/
2701 
2702               }
2703             break;
2704           case 0xcc:
2705               {
2706                 /** 0110 0001 1100 1100		brk					*/
2707                 if (trace)
2708                   {
2709                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2710                            "/** 0110 0001 1100 1100		brk					*/",
2711                            op[0], op[1]);
2712                   }
2713                 SYNTAX("brk");
2714 #line 366 "rl78-decode.opc"
2715                 ID(break);
2716 
2717               /*----------------------------------------------------------------------*/
2718 
2719               }
2720             break;
2721           case 0xcd:
2722               {
2723                 /** 0110 0001 1100 1101		pop	%s0				*/
2724                 if (trace)
2725                   {
2726                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2727                            "/** 0110 0001 1100 1101		pop	%s0				*/",
2728                            op[0], op[1]);
2729                   }
2730                 SYNTAX("pop	%s0");
2731 #line 964 "rl78-decode.opc"
2732                 ID(mov); W(); DR(PSW); SPOP();
2733 
2734               /*----------------------------------------------------------------------*/
2735 
2736               }
2737             break;
2738           case 0xce:
2739               {
2740                 /** 0110 0001 1100 1110		movs	%e0%0, %1			*/
2741                 if (trace)
2742                   {
2743                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2744                            "/** 0110 0001 1100 1110		movs	%e0%0, %1			*/",
2745                            op[0], op[1]);
2746                   }
2747                 SYNTAX("movs	%e0%0, %1");
2748 #line 786 "rl78-decode.opc"
2749                 ID(mov); DM(HL, IMMU(1)); SR(X); Fzc;
2750 
2751               /*----------------------------------------------------------------------*/
2752 
2753               }
2754             break;
2755           case 0xcf:
2756           case 0xdf:
2757           case 0xef:
2758           case 0xff:
2759               {
2760                 /** 0110 0001 11rb 1111		sel	rb%1				*/
2761 #line 1016 "rl78-decode.opc"
2762                 int rb AU = (op[1] >> 4) & 0x03;
2763                 if (trace)
2764                   {
2765                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2766                            "/** 0110 0001 11rb 1111		sel	rb%1				*/",
2767                            op[0], op[1]);
2768                     printf ("  rb = 0x%x\n", rb);
2769                   }
2770                 SYNTAX("sel	rb%1");
2771 #line 1016 "rl78-decode.opc"
2772                 ID(sel); SC(rb);
2773 
2774               /*----------------------------------------------------------------------*/
2775 
2776               }
2777             break;
2778           case 0xd0:
2779               {
2780                 /** 0110 0001 1101 0000		and	%0, %e1%1			*/
2781                 if (trace)
2782                   {
2783                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2784                            "/** 0110 0001 1101 0000		and	%0, %e1%1			*/",
2785                            op[0], op[1]);
2786                   }
2787                 SYNTAX("and	%0, %e1%1");
2788 #line 269 "rl78-decode.opc"
2789                 ID(and); DR(A); SM2(HL, B, 0); Fz;
2790 
2791               }
2792             break;
2793           case 0xd2:
2794               {
2795                 /** 0110 0001 1101 0010		and	%0, %e1%1			*/
2796                 if (trace)
2797                   {
2798                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2799                            "/** 0110 0001 1101 0010		and	%0, %e1%1			*/",
2800                            op[0], op[1]);
2801                   }
2802                 SYNTAX("and	%0, %e1%1");
2803 #line 275 "rl78-decode.opc"
2804                 ID(and); DR(A); SM2(HL, C, 0); Fz;
2805 
2806               }
2807             break;
2808           case 0xd3:
2809               {
2810                 /** 0110 0001 1101 0011		bnh	$%a0				*/
2811                 if (trace)
2812                   {
2813                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2814                            "/** 0110 0001 1101 0011		bnh	$%a0				*/",
2815                            op[0], op[1]);
2816                   }
2817                 SYNTAX("bnh	$%a0");
2818 #line 321 "rl78-decode.opc"
2819                 ID(branch_cond); DC(pc+IMMS(1)+3); SR(None); COND(NH);
2820 
2821               }
2822             break;
2823           case 0xd8:
2824               {
2825                 /** 0110 0001 1101 1000		sk%c1					*/
2826                 if (trace)
2827                   {
2828                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2829                            "/** 0110 0001 1101 1000		sk%c1					*/",
2830                            op[0], op[1]);
2831                   }
2832                 SYNTAX("sk%c1");
2833 #line 1075 "rl78-decode.opc"
2834                 ID(skip); COND(NC);
2835 
2836               }
2837             break;
2838           case 0xd9:
2839               {
2840                 /** 0110 0001 1101 1001		mov	%e0%0, %1			*/
2841                 if (trace)
2842                   {
2843                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2844                            "/** 0110 0001 1101 1001		mov	%e0%0, %1			*/",
2845                            op[0], op[1]);
2846                   }
2847                 SYNTAX("mov	%e0%0, %1");
2848 #line 605 "rl78-decode.opc"
2849                 ID(mov); DM2(HL, B, 0); SR(A);
2850 
2851               }
2852             break;
2853           case 0xdb:
2854               {
2855                 /** 0110 0001 1101 1011		ror	%0, %1				*/
2856                 if (trace)
2857                   {
2858                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2859                            "/** 0110 0001 1101 1011		ror	%0, %1				*/",
2860                            op[0], op[1]);
2861                   }
2862                 SYNTAX("ror	%0, %1");
2863 #line 997 "rl78-decode.opc"
2864                 ID(ror); DR(A); SC(1);
2865 
2866               }
2867             break;
2868           case 0xdc:
2869               {
2870                 /** 0110 0001 1101 1100		rolc	%0, %1				*/
2871                 if (trace)
2872                   {
2873                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2874                            "/** 0110 0001 1101 1100		rolc	%0, %1				*/",
2875                            op[0], op[1]);
2876                   }
2877                 SYNTAX("rolc	%0, %1");
2878 #line 991 "rl78-decode.opc"
2879                 ID(rolc); DR(A); SC(1);
2880 
2881               }
2882             break;
2883           case 0xdd:
2884               {
2885                 /** 0110 0001 1101 1101		push	%s1				*/
2886                 if (trace)
2887                   {
2888                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2889                            "/** 0110 0001 1101 1101		push	%s1				*/",
2890                            op[0], op[1]);
2891                   }
2892                 SYNTAX("push	%s1");
2893 #line 972 "rl78-decode.opc"
2894                 ID(mov); W(); DPUSH(); SR(PSW);
2895 
2896               /*----------------------------------------------------------------------*/
2897 
2898               }
2899             break;
2900           case 0xde:
2901               {
2902                 /** 0110 0001 1101 1110		cmps	%0, %e1%1			*/
2903                 if (trace)
2904                   {
2905                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2906                            "/** 0110 0001 1101 1110		cmps	%0, %e1%1			*/",
2907                            op[0], op[1]);
2908                   }
2909                 SYNTAX("cmps	%0, %e1%1");
2910 #line 504 "rl78-decode.opc"
2911                 ID(cmp); DR(X); SM(HL, IMMU(1)); Fzac;
2912 
2913               /*----------------------------------------------------------------------*/
2914 
2915               }
2916             break;
2917           case 0xe0:
2918               {
2919                 /** 0110 0001 1110 0000		or	%0, %e1%1			*/
2920                 if (trace)
2921                   {
2922                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2923                            "/** 0110 0001 1110 0000		or	%0, %e1%1			*/",
2924                            op[0], op[1]);
2925                   }
2926                 SYNTAX("or	%0, %e1%1");
2927 #line 921 "rl78-decode.opc"
2928                 ID(or); DR(A); SM2(HL, B, 0); Fz;
2929 
2930               }
2931             break;
2932           case 0xe2:
2933               {
2934                 /** 0110 0001 1110 0010		or	%0, %e1%1			*/
2935                 if (trace)
2936                   {
2937                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2938                            "/** 0110 0001 1110 0010		or	%0, %e1%1			*/",
2939                            op[0], op[1]);
2940                   }
2941                 SYNTAX("or	%0, %e1%1");
2942 #line 927 "rl78-decode.opc"
2943                 ID(or); DR(A); SM2(HL, C, 0); Fz;
2944 
2945               }
2946             break;
2947           case 0xe3:
2948               {
2949                 /** 0110 0001 1110 0011		sk%c1					*/
2950                 if (trace)
2951                   {
2952                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2953                            "/** 0110 0001 1110 0011		sk%c1					*/",
2954                            op[0], op[1]);
2955                   }
2956                 SYNTAX("sk%c1");
2957 #line 1072 "rl78-decode.opc"
2958                 ID(skip); COND(H);
2959 
2960               }
2961             break;
2962           case 0xe8:
2963               {
2964                 /** 0110 0001 1110 1000		sk%c1					*/
2965                 if (trace)
2966                   {
2967                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2968                            "/** 0110 0001 1110 1000		sk%c1					*/",
2969                            op[0], op[1]);
2970                   }
2971                 SYNTAX("sk%c1");
2972 #line 1084 "rl78-decode.opc"
2973                 ID(skip); COND(Z);
2974 
2975               /*----------------------------------------------------------------------*/
2976 
2977               }
2978             break;
2979           case 0xe9:
2980               {
2981                 /** 0110 0001 1110 1001		mov	%0, %e1%1			*/
2982                 if (trace)
2983                   {
2984                     printf ("\033[33m%s\033[0m  %02x %02x\n",
2985                            "/** 0110 0001 1110 1001		mov	%0, %e1%1			*/",
2986                            op[0], op[1]);
2987                   }
2988                 SYNTAX("mov	%0, %e1%1");
2989 #line 641 "rl78-decode.opc"
2990                 ID(mov); DR(A); SM2(HL, C, 0);
2991 
2992               }
2993             break;
2994           case 0xeb:
2995               {
2996                 /** 0110 0001 1110 1011		rol	%0, %1				*/
2997                 if (trace)
2998                   {
2999                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3000                            "/** 0110 0001 1110 1011		rol	%0, %1				*/",
3001                            op[0], op[1]);
3002                   }
3003                 SYNTAX("rol	%0, %1");
3004 #line 988 "rl78-decode.opc"
3005                 ID(rol); DR(A); SC(1);
3006 
3007               }
3008             break;
3009           case 0xec:
3010               {
3011                 /** 0110 0001 1110 1100		retb					*/
3012                 if (trace)
3013                   {
3014                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3015                            "/** 0110 0001 1110 1100		retb					*/",
3016                            op[0], op[1]);
3017                   }
3018                 SYNTAX("retb");
3019 #line 983 "rl78-decode.opc"
3020                 ID(reti);
3021 
3022               /*----------------------------------------------------------------------*/
3023 
3024               }
3025             break;
3026           case 0xed:
3027               {
3028                 /** 0110 0001 1110 1101		halt					*/
3029                 if (trace)
3030                   {
3031                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3032                            "/** 0110 0001 1110 1101		halt					*/",
3033                            op[0], op[1]);
3034                   }
3035                 SYNTAX("halt");
3036 #line 554 "rl78-decode.opc"
3037                 ID(halt);
3038 
3039               /*----------------------------------------------------------------------*/
3040 
3041               }
3042             break;
3043           case 0xee:
3044           case 0xfe:
3045               {
3046                 /** 0110 0001 111r 1110		rolwc	%0, %1				*/
3047 #line 994 "rl78-decode.opc"
3048                 int r AU = (op[1] >> 4) & 0x01;
3049                 if (trace)
3050                   {
3051                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3052                            "/** 0110 0001 111r 1110		rolwc	%0, %1				*/",
3053                            op[0], op[1]);
3054                     printf ("  r = 0x%x\n", r);
3055                   }
3056                 SYNTAX("rolwc	%0, %1");
3057 #line 994 "rl78-decode.opc"
3058                 ID(rolc); W(); DRW(r); SC(1);
3059 
3060               }
3061             break;
3062           case 0xf0:
3063               {
3064                 /** 0110 0001 1111 0000		xor	%0, %e1%1			*/
3065                 if (trace)
3066                   {
3067                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3068                            "/** 0110 0001 1111 0000		xor	%0, %e1%1			*/",
3069                            op[0], op[1]);
3070                   }
3071                 SYNTAX("xor	%0, %e1%1");
3072 #line 1225 "rl78-decode.opc"
3073                 ID(xor); DR(A); SM2(HL, B, 0); Fz;
3074 
3075               }
3076             break;
3077           case 0xf2:
3078               {
3079                 /** 0110 0001 1111 0010		xor	%0, %e1%1			*/
3080                 if (trace)
3081                   {
3082                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3083                            "/** 0110 0001 1111 0010		xor	%0, %e1%1			*/",
3084                            op[0], op[1]);
3085                   }
3086                 SYNTAX("xor	%0, %e1%1");
3087 #line 1231 "rl78-decode.opc"
3088                 ID(xor); DR(A); SM2(HL, C, 0); Fz;
3089 
3090               }
3091             break;
3092           case 0xf3:
3093               {
3094                 /** 0110 0001 1111 0011		sk%c1					*/
3095                 if (trace)
3096                   {
3097                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3098                            "/** 0110 0001 1111 0011		sk%c1					*/",
3099                            op[0], op[1]);
3100                   }
3101                 SYNTAX("sk%c1");
3102 #line 1078 "rl78-decode.opc"
3103                 ID(skip); COND(NH);
3104 
3105               }
3106             break;
3107           case 0xf8:
3108               {
3109                 /** 0110 0001 1111 1000		sk%c1					*/
3110                 if (trace)
3111                   {
3112                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3113                            "/** 0110 0001 1111 1000		sk%c1					*/",
3114                            op[0], op[1]);
3115                   }
3116                 SYNTAX("sk%c1");
3117 #line 1081 "rl78-decode.opc"
3118                 ID(skip); COND(NZ);
3119 
3120               }
3121             break;
3122           case 0xf9:
3123               {
3124                 /** 0110 0001 1111 1001		mov	%e0%0, %1			*/
3125                 if (trace)
3126                   {
3127                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3128                            "/** 0110 0001 1111 1001		mov	%e0%0, %1			*/",
3129                            op[0], op[1]);
3130                   }
3131                 SYNTAX("mov	%e0%0, %1");
3132 #line 614 "rl78-decode.opc"
3133                 ID(mov); DM2(HL, C, 0); SR(A);
3134 
3135               }
3136             break;
3137           case 0xfb:
3138               {
3139                 /** 0110 0001 1111 1011		rorc	%0, %1				*/
3140                 if (trace)
3141                   {
3142                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3143                            "/** 0110 0001 1111 1011		rorc	%0, %1				*/",
3144                            op[0], op[1]);
3145                   }
3146                 SYNTAX("rorc	%0, %1");
3147 #line 1000 "rl78-decode.opc"
3148                 ID(rorc); DR(A); SC(1);
3149 
3150               /*----------------------------------------------------------------------*/
3151 
3152               /* Note that the branch insns need to be listed before the shift
3153                  ones, as "shift count of zero" means "branch insn" */
3154 
3155               }
3156             break;
3157           case 0xfc:
3158               {
3159                 /** 0110 0001 1111 1100		reti					*/
3160                 if (trace)
3161                   {
3162                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3163                            "/** 0110 0001 1111 1100		reti					*/",
3164                            op[0], op[1]);
3165                   }
3166                 SYNTAX("reti");
3167 #line 980 "rl78-decode.opc"
3168                 ID(reti);
3169 
3170               }
3171             break;
3172           case 0xfd:
3173               {
3174                 /** 0110 0001 1111 1101	stop					*/
3175                 if (trace)
3176                   {
3177                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3178                            "/** 0110 0001 1111 1101	stop					*/",
3179                            op[0], op[1]);
3180                   }
3181                 SYNTAX("stop");
3182 #line 1089 "rl78-decode.opc"
3183                 ID(stop);
3184 
3185               /*----------------------------------------------------------------------*/
3186 
3187               }
3188             break;
3189           default: UNSUPPORTED(); break;
3190         }
3191       break;
3192     case 0x68:
3193         {
3194           /** 0110 1000			movw	%e0%0, %1			*/
3195           if (trace)
3196             {
3197               printf ("\033[33m%s\033[0m  %02x\n",
3198                      "/** 0110 1000			movw	%e0%0, %1			*/",
3199                      op[0]);
3200             }
3201           SYNTAX("movw	%e0%0, %1");
3202 #line 849 "rl78-decode.opc"
3203           ID(mov); W(); DM(C, IMMU(2)); SR(AX);
3204 
3205         }
3206       break;
3207     case 0x69:
3208         {
3209           /** 0110 1001			movw	%0, %e1%1			*/
3210           if (trace)
3211             {
3212               printf ("\033[33m%s\033[0m  %02x\n",
3213                      "/** 0110 1001			movw	%0, %e1%1			*/",
3214                      op[0]);
3215             }
3216           SYNTAX("movw	%0, %e1%1");
3217 #line 840 "rl78-decode.opc"
3218           ID(mov); W(); DR(AX); SM(C, IMMU(2));
3219 
3220         }
3221       break;
3222     case 0x6a:
3223         {
3224           /** 0110 1010	       		or	%0, #%1				*/
3225           if (trace)
3226             {
3227               printf ("\033[33m%s\033[0m  %02x\n",
3228                      "/** 0110 1010	       		or	%0, #%1				*/",
3229                      op[0]);
3230             }
3231           SYNTAX("or	%0, #%1");
3232 #line 942 "rl78-decode.opc"
3233           ID(or); DM(None, SADDR); SC(IMMU(1)); Fz;
3234 
3235         /*----------------------------------------------------------------------*/
3236 
3237         }
3238       break;
3239     case 0x6b:
3240         {
3241           /** 0110 1011	       		or	%0, %1				*/
3242           if (trace)
3243             {
3244               printf ("\033[33m%s\033[0m  %02x\n",
3245                      "/** 0110 1011	       		or	%0, %1				*/",
3246                      op[0]);
3247             }
3248           SYNTAX("or	%0, %1");
3249 #line 939 "rl78-decode.opc"
3250           ID(or); DR(A); SM(None, SADDR); Fz;
3251 
3252         }
3253       break;
3254     case 0x6c:
3255         {
3256           /** 0110 1100	       		or	%0, #%1				*/
3257           if (trace)
3258             {
3259               printf ("\033[33m%s\033[0m  %02x\n",
3260                      "/** 0110 1100	       		or	%0, #%1				*/",
3261                      op[0]);
3262             }
3263           SYNTAX("or	%0, #%1");
3264 #line 930 "rl78-decode.opc"
3265           ID(or); DR(A); SC(IMMU(1)); Fz;
3266 
3267         }
3268       break;
3269     case 0x6d:
3270         {
3271           /** 0110 1101			or	%0, %e1%1			*/
3272           if (trace)
3273             {
3274               printf ("\033[33m%s\033[0m  %02x\n",
3275                      "/** 0110 1101			or	%0, %e1%1			*/",
3276                      op[0]);
3277             }
3278           SYNTAX("or	%0, %e1%1");
3279 #line 918 "rl78-decode.opc"
3280           ID(or); DR(A); SM(HL, 0); Fz;
3281 
3282         }
3283       break;
3284     case 0x6e:
3285         {
3286           /** 0110 1110			or	%0, %e1%1			*/
3287           if (trace)
3288             {
3289               printf ("\033[33m%s\033[0m  %02x\n",
3290                      "/** 0110 1110			or	%0, %e1%1			*/",
3291                      op[0]);
3292             }
3293           SYNTAX("or	%0, %e1%1");
3294 #line 924 "rl78-decode.opc"
3295           ID(or); DR(A); SM(HL, IMMU(1)); Fz;
3296 
3297         }
3298       break;
3299     case 0x6f:
3300         {
3301           /** 0110 1111			or	%0, %e1%!1			*/
3302           if (trace)
3303             {
3304               printf ("\033[33m%s\033[0m  %02x\n",
3305                      "/** 0110 1111			or	%0, %e1%!1			*/",
3306                      op[0]);
3307             }
3308           SYNTAX("or	%0, %e1%!1");
3309 #line 915 "rl78-decode.opc"
3310           ID(or); DR(A); SM(None, IMMU(2)); Fz;
3311 
3312         }
3313       break;
3314     case 0x70:
3315     case 0x72:
3316     case 0x73:
3317     case 0x74:
3318     case 0x75:
3319     case 0x76:
3320     case 0x77:
3321         {
3322           /** 0111 0rba			mov	%0, %1				*/
3323 #line 674 "rl78-decode.opc"
3324           int rba AU = op[0] & 0x07;
3325           if (trace)
3326             {
3327               printf ("\033[33m%s\033[0m  %02x\n",
3328                      "/** 0111 0rba			mov	%0, %1				*/",
3329                      op[0]);
3330               printf ("  rba = 0x%x\n", rba);
3331             }
3332           SYNTAX("mov	%0, %1");
3333 #line 674 "rl78-decode.opc"
3334           ID(mov); DRB(rba); SR(A);
3335 
3336         }
3337       break;
3338     case 0x71:
3339         GETBYTE ();
3340         switch (op[1] & 0xff)
3341         {
3342           case 0x00:
3343           case 0x10:
3344           case 0x20:
3345           case 0x30:
3346           case 0x40:
3347           case 0x50:
3348           case 0x60:
3349           case 0x70:
3350               {
3351                 /** 0111 0001 0bit 0000		set1	%e0%!0				*/
3352 #line 1021 "rl78-decode.opc"
3353                 int bit AU = (op[1] >> 4) & 0x07;
3354                 if (trace)
3355                   {
3356                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3357                            "/** 0111 0001 0bit 0000		set1	%e0%!0				*/",
3358                            op[0], op[1]);
3359                     printf ("  bit = 0x%x\n", bit);
3360                   }
3361                 SYNTAX("set1	%e0%!0");
3362 #line 1021 "rl78-decode.opc"
3363                 ID(mov); DM(None, IMMU(2)); DB(bit); SC(1);
3364 
3365               }
3366             break;
3367           case 0x01:
3368           case 0x11:
3369           case 0x21:
3370           case 0x31:
3371           case 0x41:
3372           case 0x51:
3373           case 0x61:
3374           case 0x71:
3375               {
3376                 /** 0111 0001 0bit 0001		mov1	%0, cy				*/
3377 #line 778 "rl78-decode.opc"
3378                 int bit AU = (op[1] >> 4) & 0x07;
3379                 if (trace)
3380                   {
3381                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3382                            "/** 0111 0001 0bit 0001		mov1	%0, cy				*/",
3383                            op[0], op[1]);
3384                     printf ("  bit = 0x%x\n", bit);
3385                   }
3386                 SYNTAX("mov1	%0, cy");
3387 #line 778 "rl78-decode.opc"
3388                 ID(mov); DM(None, SADDR); DB(bit); SCY();
3389 
3390               }
3391             break;
3392           case 0x02:
3393           case 0x12:
3394           case 0x22:
3395           case 0x32:
3396           case 0x42:
3397           case 0x52:
3398           case 0x62:
3399           case 0x72:
3400               {
3401                 /** 0111 0001 0bit 0010		set1	%0				*/
3402 #line 1039 "rl78-decode.opc"
3403                 int bit AU = (op[1] >> 4) & 0x07;
3404                 if (trace)
3405                   {
3406                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3407                            "/** 0111 0001 0bit 0010		set1	%0				*/",
3408                            op[0], op[1]);
3409                     printf ("  bit = 0x%x\n", bit);
3410                   }
3411                 SYNTAX("set1	%0");
3412 #line 1039 "rl78-decode.opc"
3413                 ID(mov); DM(None, SADDR); DB(bit); SC(1);
3414 
3415               /*----------------------------------------------------------------------*/
3416 
3417               }
3418             break;
3419           case 0x03:
3420           case 0x13:
3421           case 0x23:
3422           case 0x33:
3423           case 0x43:
3424           case 0x53:
3425           case 0x63:
3426           case 0x73:
3427               {
3428                 /** 0111 0001 0bit 0011		clr1	%0				*/
3429 #line 434 "rl78-decode.opc"
3430                 int bit AU = (op[1] >> 4) & 0x07;
3431                 if (trace)
3432                   {
3433                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3434                            "/** 0111 0001 0bit 0011		clr1	%0				*/",
3435                            op[0], op[1]);
3436                     printf ("  bit = 0x%x\n", bit);
3437                   }
3438                 SYNTAX("clr1	%0");
3439 #line 434 "rl78-decode.opc"
3440                 ID(mov); DM(None, SADDR); DB(bit); SC(0);
3441 
3442               /*----------------------------------------------------------------------*/
3443 
3444               }
3445             break;
3446           case 0x04:
3447           case 0x14:
3448           case 0x24:
3449           case 0x34:
3450           case 0x44:
3451           case 0x54:
3452           case 0x64:
3453           case 0x74:
3454               {
3455                 /** 0111 0001 0bit 0100		mov1	cy, %1				*/
3456 #line 772 "rl78-decode.opc"
3457                 int bit AU = (op[1] >> 4) & 0x07;
3458                 if (trace)
3459                   {
3460                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3461                            "/** 0111 0001 0bit 0100		mov1	cy, %1				*/",
3462                            op[0], op[1]);
3463                     printf ("  bit = 0x%x\n", bit);
3464                   }
3465                 SYNTAX("mov1	cy, %1");
3466 #line 772 "rl78-decode.opc"
3467                 ID(mov); DCY(); SM(None, SADDR); SB(bit);
3468 
3469               }
3470             break;
3471           case 0x05:
3472           case 0x15:
3473           case 0x25:
3474           case 0x35:
3475           case 0x45:
3476           case 0x55:
3477           case 0x65:
3478           case 0x75:
3479               {
3480                 /** 0111 0001 0bit 0101		and1	cy, %s1				*/
3481 #line 304 "rl78-decode.opc"
3482                 int bit AU = (op[1] >> 4) & 0x07;
3483                 if (trace)
3484                   {
3485                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3486                            "/** 0111 0001 0bit 0101		and1	cy, %s1				*/",
3487                            op[0], op[1]);
3488                     printf ("  bit = 0x%x\n", bit);
3489                   }
3490                 SYNTAX("and1	cy, %s1");
3491 #line 304 "rl78-decode.opc"
3492                 ID(and); DCY(); SM(None, SADDR); SB(bit);
3493 
3494               /*----------------------------------------------------------------------*/
3495 
3496               /* Note that the branch insns need to be listed before the shift
3497                  ones, as "shift count of zero" means "branch insn" */
3498 
3499               }
3500             break;
3501           case 0x06:
3502           case 0x16:
3503           case 0x26:
3504           case 0x36:
3505           case 0x46:
3506           case 0x56:
3507           case 0x66:
3508           case 0x76:
3509               {
3510                 /** 0111 0001 0bit 0110		or1	cy, %s1				*/
3511 #line 956 "rl78-decode.opc"
3512                 int bit AU = (op[1] >> 4) & 0x07;
3513                 if (trace)
3514                   {
3515                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3516                            "/** 0111 0001 0bit 0110		or1	cy, %s1				*/",
3517                            op[0], op[1]);
3518                     printf ("  bit = 0x%x\n", bit);
3519                   }
3520                 SYNTAX("or1	cy, %s1");
3521 #line 956 "rl78-decode.opc"
3522                 ID(or); DCY(); SM(None, SADDR); SB(bit);
3523 
3524               /*----------------------------------------------------------------------*/
3525 
3526               }
3527             break;
3528           case 0x07:
3529           case 0x17:
3530           case 0x27:
3531           case 0x37:
3532           case 0x47:
3533           case 0x57:
3534           case 0x67:
3535           case 0x77:
3536               {
3537                 /** 0111 0001 0bit 0111		xor1	cy, %s1				*/
3538 #line 1260 "rl78-decode.opc"
3539                 int bit AU = (op[1] >> 4) & 0x07;
3540                 if (trace)
3541                   {
3542                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3543                            "/** 0111 0001 0bit 0111		xor1	cy, %s1				*/",
3544                            op[0], op[1]);
3545                     printf ("  bit = 0x%x\n", bit);
3546                   }
3547                 SYNTAX("xor1	cy, %s1");
3548 #line 1260 "rl78-decode.opc"
3549                 ID(xor); DCY(); SM(None, SADDR); SB(bit);
3550 
3551               /*----------------------------------------------------------------------*/
3552 
3553               }
3554             break;
3555           case 0x08:
3556           case 0x18:
3557           case 0x28:
3558           case 0x38:
3559           case 0x48:
3560           case 0x58:
3561           case 0x68:
3562           case 0x78:
3563               {
3564                 /** 0111 0001 0bit 1000		clr1	%e0%!0				*/
3565 #line 416 "rl78-decode.opc"
3566                 int bit AU = (op[1] >> 4) & 0x07;
3567                 if (trace)
3568                   {
3569                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3570                            "/** 0111 0001 0bit 1000		clr1	%e0%!0				*/",
3571                            op[0], op[1]);
3572                     printf ("  bit = 0x%x\n", bit);
3573                   }
3574                 SYNTAX("clr1	%e0%!0");
3575 #line 416 "rl78-decode.opc"
3576                 ID(mov); DM(None, IMMU(2)); DB(bit); SC(0);
3577 
3578               }
3579             break;
3580           case 0x09:
3581           case 0x19:
3582           case 0x29:
3583           case 0x39:
3584           case 0x49:
3585           case 0x59:
3586           case 0x69:
3587           case 0x79:
3588               {
3589                 /** 0111 0001 0bit 1001		mov1	%s0, cy				*/
3590 #line 781 "rl78-decode.opc"
3591                 int bit AU = (op[1] >> 4) & 0x07;
3592                 if (trace)
3593                   {
3594                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3595                            "/** 0111 0001 0bit 1001		mov1	%s0, cy				*/",
3596                            op[0], op[1]);
3597                     printf ("  bit = 0x%x\n", bit);
3598                   }
3599                 SYNTAX("mov1	%s0, cy");
3600 #line 781 "rl78-decode.opc"
3601                 ID(mov); DM(None, SFR); DB(bit); SCY();
3602 
3603               /*----------------------------------------------------------------------*/
3604 
3605               }
3606             break;
3607           case 0x0a:
3608           case 0x1a:
3609           case 0x2a:
3610           case 0x3a:
3611           case 0x4a:
3612           case 0x5a:
3613           case 0x6a:
3614           case 0x7a:
3615               {
3616                 /** 0111 0001 0bit 1010		set1	%s0				*/
3617 #line 1033 "rl78-decode.opc"
3618                 int bit AU = (op[1] >> 4) & 0x07;
3619                 if (trace)
3620                   {
3621                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3622                            "/** 0111 0001 0bit 1010		set1	%s0				*/",
3623                            op[0], op[1]);
3624                     printf ("  bit = 0x%x\n", bit);
3625                   }
3626                 SYNTAX("set1	%s0");
3627 #line 1033 "rl78-decode.opc"
3628                 op0 = SFR;
3629                 ID(mov); DM(None, op0); DB(bit); SC(1);
3630                 if (op0 == RL78_SFR_PSW && bit == 7)
3631                   rl78->syntax = "ei";
3632 
3633               }
3634             break;
3635           case 0x0b:
3636           case 0x1b:
3637           case 0x2b:
3638           case 0x3b:
3639           case 0x4b:
3640           case 0x5b:
3641           case 0x6b:
3642           case 0x7b:
3643               {
3644                 /** 0111 0001 0bit 1011		clr1	%s0				*/
3645 #line 428 "rl78-decode.opc"
3646                 int bit AU = (op[1] >> 4) & 0x07;
3647                 if (trace)
3648                   {
3649                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3650                            "/** 0111 0001 0bit 1011		clr1	%s0				*/",
3651                            op[0], op[1]);
3652                     printf ("  bit = 0x%x\n", bit);
3653                   }
3654                 SYNTAX("clr1	%s0");
3655 #line 428 "rl78-decode.opc"
3656                 op0 = SFR;
3657                 ID(mov); DM(None, op0); DB(bit); SC(0);
3658                 if (op0 == RL78_SFR_PSW && bit == 7)
3659                   rl78->syntax = "di";
3660 
3661               }
3662             break;
3663           case 0x0c:
3664           case 0x1c:
3665           case 0x2c:
3666           case 0x3c:
3667           case 0x4c:
3668           case 0x5c:
3669           case 0x6c:
3670           case 0x7c:
3671               {
3672                 /** 0111 0001 0bit 1100		mov1	cy, %s1				*/
3673 #line 775 "rl78-decode.opc"
3674                 int bit AU = (op[1] >> 4) & 0x07;
3675                 if (trace)
3676                   {
3677                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3678                            "/** 0111 0001 0bit 1100		mov1	cy, %s1				*/",
3679                            op[0], op[1]);
3680                     printf ("  bit = 0x%x\n", bit);
3681                   }
3682                 SYNTAX("mov1	cy, %s1");
3683 #line 775 "rl78-decode.opc"
3684                 ID(mov); DCY(); SM(None, SFR); SB(bit);
3685 
3686               }
3687             break;
3688           case 0x0d:
3689           case 0x1d:
3690           case 0x2d:
3691           case 0x3d:
3692           case 0x4d:
3693           case 0x5d:
3694           case 0x6d:
3695           case 0x7d:
3696               {
3697                 /** 0111 0001 0bit 1101		and1	cy, %s1				*/
3698 #line 301 "rl78-decode.opc"
3699                 int bit AU = (op[1] >> 4) & 0x07;
3700                 if (trace)
3701                   {
3702                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3703                            "/** 0111 0001 0bit 1101		and1	cy, %s1				*/",
3704                            op[0], op[1]);
3705                     printf ("  bit = 0x%x\n", bit);
3706                   }
3707                 SYNTAX("and1	cy, %s1");
3708 #line 301 "rl78-decode.opc"
3709                 ID(and); DCY(); SM(None, SFR); SB(bit);
3710 
3711               }
3712             break;
3713           case 0x0e:
3714           case 0x1e:
3715           case 0x2e:
3716           case 0x3e:
3717           case 0x4e:
3718           case 0x5e:
3719           case 0x6e:
3720           case 0x7e:
3721               {
3722                 /** 0111 0001 0bit 1110		or1	cy, %s1				*/
3723 #line 953 "rl78-decode.opc"
3724                 int bit AU = (op[1] >> 4) & 0x07;
3725                 if (trace)
3726                   {
3727                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3728                            "/** 0111 0001 0bit 1110		or1	cy, %s1				*/",
3729                            op[0], op[1]);
3730                     printf ("  bit = 0x%x\n", bit);
3731                   }
3732                 SYNTAX("or1	cy, %s1");
3733 #line 953 "rl78-decode.opc"
3734                 ID(or); DCY(); SM(None, SFR); SB(bit);
3735 
3736               }
3737             break;
3738           case 0x0f:
3739           case 0x1f:
3740           case 0x2f:
3741           case 0x3f:
3742           case 0x4f:
3743           case 0x5f:
3744           case 0x6f:
3745           case 0x7f:
3746               {
3747                 /** 0111 0001 0bit 1111		xor1	cy, %s1				*/
3748 #line 1257 "rl78-decode.opc"
3749                 int bit AU = (op[1] >> 4) & 0x07;
3750                 if (trace)
3751                   {
3752                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3753                            "/** 0111 0001 0bit 1111		xor1	cy, %s1				*/",
3754                            op[0], op[1]);
3755                     printf ("  bit = 0x%x\n", bit);
3756                   }
3757                 SYNTAX("xor1	cy, %s1");
3758 #line 1257 "rl78-decode.opc"
3759                 ID(xor); DCY(); SM(None, SFR); SB(bit);
3760 
3761               }
3762             break;
3763           case 0x80:
3764               {
3765                 /** 0111 0001 1000 0000		set1	cy				*/
3766                 if (trace)
3767                   {
3768                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3769                            "/** 0111 0001 1000 0000		set1	cy				*/",
3770                            op[0], op[1]);
3771                   }
3772                 SYNTAX("set1	cy");
3773 #line 1030 "rl78-decode.opc"
3774                 ID(mov); DCY(); SC(1);
3775 
3776               }
3777             break;
3778           case 0x81:
3779           case 0x91:
3780           case 0xa1:
3781           case 0xb1:
3782           case 0xc1:
3783           case 0xd1:
3784           case 0xe1:
3785           case 0xf1:
3786               {
3787                 /** 0111 0001 1bit 0001		mov1	%e0%0, cy			*/
3788 #line 760 "rl78-decode.opc"
3789                 int bit AU = (op[1] >> 4) & 0x07;
3790                 if (trace)
3791                   {
3792                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3793                            "/** 0111 0001 1bit 0001		mov1	%e0%0, cy			*/",
3794                            op[0], op[1]);
3795                     printf ("  bit = 0x%x\n", bit);
3796                   }
3797                 SYNTAX("mov1	%e0%0, cy");
3798 #line 760 "rl78-decode.opc"
3799                 ID(mov); DM(HL, 0); DB(bit); SCY();
3800 
3801               }
3802             break;
3803           case 0x82:
3804           case 0x92:
3805           case 0xa2:
3806           case 0xb2:
3807           case 0xc2:
3808           case 0xd2:
3809           case 0xe2:
3810           case 0xf2:
3811               {
3812                 /** 0111 0001 1bit 0010		set1	%e0%0				*/
3813 #line 1024 "rl78-decode.opc"
3814                 int bit AU = (op[1] >> 4) & 0x07;
3815                 if (trace)
3816                   {
3817                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3818                            "/** 0111 0001 1bit 0010		set1	%e0%0				*/",
3819                            op[0], op[1]);
3820                     printf ("  bit = 0x%x\n", bit);
3821                   }
3822                 SYNTAX("set1	%e0%0");
3823 #line 1024 "rl78-decode.opc"
3824                 ID(mov); DM(HL, 0); DB(bit); SC(1);
3825 
3826               }
3827             break;
3828           case 0x83:
3829           case 0x93:
3830           case 0xa3:
3831           case 0xb3:
3832           case 0xc3:
3833           case 0xd3:
3834           case 0xe3:
3835           case 0xf3:
3836               {
3837                 /** 0111 0001 1bit 0011		clr1	%e0%0				*/
3838 #line 419 "rl78-decode.opc"
3839                 int bit AU = (op[1] >> 4) & 0x07;
3840                 if (trace)
3841                   {
3842                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3843                            "/** 0111 0001 1bit 0011		clr1	%e0%0				*/",
3844                            op[0], op[1]);
3845                     printf ("  bit = 0x%x\n", bit);
3846                   }
3847                 SYNTAX("clr1	%e0%0");
3848 #line 419 "rl78-decode.opc"
3849                 ID(mov); DM(HL, 0); DB(bit); SC(0);
3850 
3851               }
3852             break;
3853           case 0x84:
3854           case 0x94:
3855           case 0xa4:
3856           case 0xb4:
3857           case 0xc4:
3858           case 0xd4:
3859           case 0xe4:
3860           case 0xf4:
3861               {
3862                 /** 0111 0001 1bit 0100		mov1	cy, %e1%1			*/
3863 #line 766 "rl78-decode.opc"
3864                 int bit AU = (op[1] >> 4) & 0x07;
3865                 if (trace)
3866                   {
3867                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3868                            "/** 0111 0001 1bit 0100		mov1	cy, %e1%1			*/",
3869                            op[0], op[1]);
3870                     printf ("  bit = 0x%x\n", bit);
3871                   }
3872                 SYNTAX("mov1	cy, %e1%1");
3873 #line 766 "rl78-decode.opc"
3874                 ID(mov); DCY(); SM(HL, 0); SB(bit);
3875 
3876               }
3877             break;
3878           case 0x85:
3879           case 0x95:
3880           case 0xa5:
3881           case 0xb5:
3882           case 0xc5:
3883           case 0xd5:
3884           case 0xe5:
3885           case 0xf5:
3886               {
3887                 /** 0111 0001 1bit 0101		and1	cy, %e1%1			*/
3888 #line 295 "rl78-decode.opc"
3889                 int bit AU = (op[1] >> 4) & 0x07;
3890                 if (trace)
3891                   {
3892                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3893                            "/** 0111 0001 1bit 0101		and1	cy, %e1%1			*/",
3894                            op[0], op[1]);
3895                     printf ("  bit = 0x%x\n", bit);
3896                   }
3897                 SYNTAX("and1	cy, %e1%1");
3898 #line 295 "rl78-decode.opc"
3899                 ID(and); DCY(); SM(HL, 0); SB(bit);
3900 
3901               }
3902             break;
3903           case 0x86:
3904           case 0x96:
3905           case 0xa6:
3906           case 0xb6:
3907           case 0xc6:
3908           case 0xd6:
3909           case 0xe6:
3910           case 0xf6:
3911               {
3912                 /** 0111 0001 1bit 0110		or1	cy, %e1%1			*/
3913 #line 947 "rl78-decode.opc"
3914                 int bit AU = (op[1] >> 4) & 0x07;
3915                 if (trace)
3916                   {
3917                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3918                            "/** 0111 0001 1bit 0110		or1	cy, %e1%1			*/",
3919                            op[0], op[1]);
3920                     printf ("  bit = 0x%x\n", bit);
3921                   }
3922                 SYNTAX("or1	cy, %e1%1");
3923 #line 947 "rl78-decode.opc"
3924                 ID(or); DCY(); SM(HL, 0); SB(bit);
3925 
3926               }
3927             break;
3928           case 0x87:
3929           case 0x97:
3930           case 0xa7:
3931           case 0xb7:
3932           case 0xc7:
3933           case 0xd7:
3934           case 0xe7:
3935           case 0xf7:
3936               {
3937                 /** 0111 0001 1bit 0111		xor1	cy, %e1%1			*/
3938 #line 1251 "rl78-decode.opc"
3939                 int bit AU = (op[1] >> 4) & 0x07;
3940                 if (trace)
3941                   {
3942                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3943                            "/** 0111 0001 1bit 0111		xor1	cy, %e1%1			*/",
3944                            op[0], op[1]);
3945                     printf ("  bit = 0x%x\n", bit);
3946                   }
3947                 SYNTAX("xor1	cy, %e1%1");
3948 #line 1251 "rl78-decode.opc"
3949                 ID(xor); DCY(); SM(HL, 0); SB(bit);
3950 
3951               }
3952             break;
3953           case 0x88:
3954               {
3955                 /** 0111 0001 1000 1000		clr1	cy				*/
3956                 if (trace)
3957                   {
3958                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3959                            "/** 0111 0001 1000 1000		clr1	cy				*/",
3960                            op[0], op[1]);
3961                   }
3962                 SYNTAX("clr1	cy");
3963 #line 425 "rl78-decode.opc"
3964                 ID(mov); DCY(); SC(0);
3965 
3966               }
3967             break;
3968           case 0x89:
3969           case 0x99:
3970           case 0xa9:
3971           case 0xb9:
3972           case 0xc9:
3973           case 0xd9:
3974           case 0xe9:
3975           case 0xf9:
3976               {
3977                 /** 0111 0001 1bit 1001		mov1	%e0%0, cy			*/
3978 #line 763 "rl78-decode.opc"
3979                 int bit AU = (op[1] >> 4) & 0x07;
3980                 if (trace)
3981                   {
3982                     printf ("\033[33m%s\033[0m  %02x %02x\n",
3983                            "/** 0111 0001 1bit 1001		mov1	%e0%0, cy			*/",
3984                            op[0], op[1]);
3985                     printf ("  bit = 0x%x\n", bit);
3986                   }
3987                 SYNTAX("mov1	%e0%0, cy");
3988 #line 763 "rl78-decode.opc"
3989                 ID(mov); DR(A); DB(bit); SCY();
3990 
3991               }
3992             break;
3993           case 0x8a:
3994           case 0x9a:
3995           case 0xaa:
3996           case 0xba:
3997           case 0xca:
3998           case 0xda:
3999           case 0xea:
4000           case 0xfa:
4001               {
4002                 /** 0111 0001 1bit 1010		set1	%0				*/
4003 #line 1027 "rl78-decode.opc"
4004                 int bit AU = (op[1] >> 4) & 0x07;
4005                 if (trace)
4006                   {
4007                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4008                            "/** 0111 0001 1bit 1010		set1	%0				*/",
4009                            op[0], op[1]);
4010                     printf ("  bit = 0x%x\n", bit);
4011                   }
4012                 SYNTAX("set1	%0");
4013 #line 1027 "rl78-decode.opc"
4014                 ID(mov); DR(A); DB(bit); SC(1);
4015 
4016               }
4017             break;
4018           case 0x8b:
4019           case 0x9b:
4020           case 0xab:
4021           case 0xbb:
4022           case 0xcb:
4023           case 0xdb:
4024           case 0xeb:
4025           case 0xfb:
4026               {
4027                 /** 0111 0001 1bit 1011		clr1	%0				*/
4028 #line 422 "rl78-decode.opc"
4029                 int bit AU = (op[1] >> 4) & 0x07;
4030                 if (trace)
4031                   {
4032                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4033                            "/** 0111 0001 1bit 1011		clr1	%0				*/",
4034                            op[0], op[1]);
4035                     printf ("  bit = 0x%x\n", bit);
4036                   }
4037                 SYNTAX("clr1	%0");
4038 #line 422 "rl78-decode.opc"
4039                 ID(mov); DR(A); DB(bit); SC(0);
4040 
4041               }
4042             break;
4043           case 0x8c:
4044           case 0x9c:
4045           case 0xac:
4046           case 0xbc:
4047           case 0xcc:
4048           case 0xdc:
4049           case 0xec:
4050           case 0xfc:
4051               {
4052                 /** 0111 0001 1bit 1100		mov1	cy, %e1%1			*/
4053 #line 769 "rl78-decode.opc"
4054                 int bit AU = (op[1] >> 4) & 0x07;
4055                 if (trace)
4056                   {
4057                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4058                            "/** 0111 0001 1bit 1100		mov1	cy, %e1%1			*/",
4059                            op[0], op[1]);
4060                     printf ("  bit = 0x%x\n", bit);
4061                   }
4062                 SYNTAX("mov1	cy, %e1%1");
4063 #line 769 "rl78-decode.opc"
4064                 ID(mov); DCY(); SR(A); SB(bit);
4065 
4066               }
4067             break;
4068           case 0x8d:
4069           case 0x9d:
4070           case 0xad:
4071           case 0xbd:
4072           case 0xcd:
4073           case 0xdd:
4074           case 0xed:
4075           case 0xfd:
4076               {
4077                 /** 0111 0001 1bit 1101		and1	cy, %1				*/
4078 #line 298 "rl78-decode.opc"
4079                 int bit AU = (op[1] >> 4) & 0x07;
4080                 if (trace)
4081                   {
4082                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4083                            "/** 0111 0001 1bit 1101		and1	cy, %1				*/",
4084                            op[0], op[1]);
4085                     printf ("  bit = 0x%x\n", bit);
4086                   }
4087                 SYNTAX("and1	cy, %1");
4088 #line 298 "rl78-decode.opc"
4089                 ID(and); DCY(); SR(A); SB(bit);
4090 
4091               }
4092             break;
4093           case 0x8e:
4094           case 0x9e:
4095           case 0xae:
4096           case 0xbe:
4097           case 0xce:
4098           case 0xde:
4099           case 0xee:
4100           case 0xfe:
4101               {
4102                 /** 0111 0001 1bit 1110		or1	cy, %1				*/
4103 #line 950 "rl78-decode.opc"
4104                 int bit AU = (op[1] >> 4) & 0x07;
4105                 if (trace)
4106                   {
4107                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4108                            "/** 0111 0001 1bit 1110		or1	cy, %1				*/",
4109                            op[0], op[1]);
4110                     printf ("  bit = 0x%x\n", bit);
4111                   }
4112                 SYNTAX("or1	cy, %1");
4113 #line 950 "rl78-decode.opc"
4114                 ID(or); DCY(); SR(A); SB(bit);
4115 
4116               }
4117             break;
4118           case 0x8f:
4119           case 0x9f:
4120           case 0xaf:
4121           case 0xbf:
4122           case 0xcf:
4123           case 0xdf:
4124           case 0xef:
4125           case 0xff:
4126               {
4127                 /** 0111 0001 1bit 1111		xor1	cy, %1				*/
4128 #line 1254 "rl78-decode.opc"
4129                 int bit AU = (op[1] >> 4) & 0x07;
4130                 if (trace)
4131                   {
4132                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4133                            "/** 0111 0001 1bit 1111		xor1	cy, %1				*/",
4134                            op[0], op[1]);
4135                     printf ("  bit = 0x%x\n", bit);
4136                   }
4137                 SYNTAX("xor1	cy, %1");
4138 #line 1254 "rl78-decode.opc"
4139                 ID(xor); DCY(); SR(A); SB(bit);
4140 
4141               }
4142             break;
4143           case 0xc0:
4144               {
4145                 /** 0111 0001 1100 0000		not1	cy				*/
4146                 if (trace)
4147                   {
4148                     printf ("\033[33m%s\033[0m  %02x %02x\n",
4149                            "/** 0111 0001 1100 0000		not1	cy				*/",
4150                            op[0], op[1]);
4151                   }
4152                 SYNTAX("not1	cy");
4153 #line 891 "rl78-decode.opc"
4154                 ID(xor); DCY(); SC(1);
4155 
4156               /*----------------------------------------------------------------------*/
4157 
4158               }
4159             break;
4160           default: UNSUPPORTED(); break;
4161         }
4162       break;
4163     case 0x78:
4164         {
4165           /** 0111 1000			movw	%e0%0, %1			*/
4166           if (trace)
4167             {
4168               printf ("\033[33m%s\033[0m  %02x\n",
4169                      "/** 0111 1000			movw	%e0%0, %1			*/",
4170                      op[0]);
4171             }
4172           SYNTAX("movw	%e0%0, %1");
4173 #line 852 "rl78-decode.opc"
4174           ID(mov); W(); DM(BC, IMMU(2)); SR(AX);
4175 
4176         }
4177       break;
4178     case 0x79:
4179         {
4180           /** 0111 1001			movw	%0, %e1%1			*/
4181           if (trace)
4182             {
4183               printf ("\033[33m%s\033[0m  %02x\n",
4184                      "/** 0111 1001			movw	%0, %e1%1			*/",
4185                      op[0]);
4186             }
4187           SYNTAX("movw	%0, %e1%1");
4188 #line 843 "rl78-decode.opc"
4189           ID(mov); W(); DR(AX); SM(BC, IMMU(2));
4190 
4191         }
4192       break;
4193     case 0x7a:
4194         {
4195           /** 0111 1010	       		xor	%0, #%1				*/
4196           if (trace)
4197             {
4198               printf ("\033[33m%s\033[0m  %02x\n",
4199                      "/** 0111 1010	       		xor	%0, #%1				*/",
4200                      op[0]);
4201             }
4202           SYNTAX("xor	%0, #%1");
4203 #line 1246 "rl78-decode.opc"
4204           ID(xor); DM(None, SADDR); SC(IMMU(1)); Fz;
4205 
4206         /*----------------------------------------------------------------------*/
4207 
4208         }
4209       break;
4210     case 0x7b:
4211         {
4212           /** 0111 1011	       		xor	%0, %1				*/
4213           if (trace)
4214             {
4215               printf ("\033[33m%s\033[0m  %02x\n",
4216                      "/** 0111 1011	       		xor	%0, %1				*/",
4217                      op[0]);
4218             }
4219           SYNTAX("xor	%0, %1");
4220 #line 1243 "rl78-decode.opc"
4221           ID(xor); DR(A); SM(None, SADDR); Fz;
4222 
4223         }
4224       break;
4225     case 0x7c:
4226         {
4227           /** 0111 1100	       		xor	%0, #%1				*/
4228           if (trace)
4229             {
4230               printf ("\033[33m%s\033[0m  %02x\n",
4231                      "/** 0111 1100	       		xor	%0, #%1				*/",
4232                      op[0]);
4233             }
4234           SYNTAX("xor	%0, #%1");
4235 #line 1234 "rl78-decode.opc"
4236           ID(xor); DR(A); SC(IMMU(1)); Fz;
4237 
4238         }
4239       break;
4240     case 0x7d:
4241         {
4242           /** 0111 1101			xor	%0, %e1%1			*/
4243           if (trace)
4244             {
4245               printf ("\033[33m%s\033[0m  %02x\n",
4246                      "/** 0111 1101			xor	%0, %e1%1			*/",
4247                      op[0]);
4248             }
4249           SYNTAX("xor	%0, %e1%1");
4250 #line 1222 "rl78-decode.opc"
4251           ID(xor); DR(A); SM(HL, 0); Fz;
4252 
4253         }
4254       break;
4255     case 0x7e:
4256         {
4257           /** 0111 1110			xor	%0, %e1%1			*/
4258           if (trace)
4259             {
4260               printf ("\033[33m%s\033[0m  %02x\n",
4261                      "/** 0111 1110			xor	%0, %e1%1			*/",
4262                      op[0]);
4263             }
4264           SYNTAX("xor	%0, %e1%1");
4265 #line 1228 "rl78-decode.opc"
4266           ID(xor); DR(A); SM(HL, IMMU(1)); Fz;
4267 
4268         }
4269       break;
4270     case 0x7f:
4271         {
4272           /** 0111 1111			xor	%0, %e1%!1			*/
4273           if (trace)
4274             {
4275               printf ("\033[33m%s\033[0m  %02x\n",
4276                      "/** 0111 1111			xor	%0, %e1%!1			*/",
4277                      op[0]);
4278             }
4279           SYNTAX("xor	%0, %e1%!1");
4280 #line 1219 "rl78-decode.opc"
4281           ID(xor); DR(A); SM(None, IMMU(2)); Fz;
4282 
4283         }
4284       break;
4285     case 0x80:
4286     case 0x81:
4287     case 0x82:
4288     case 0x83:
4289     case 0x84:
4290     case 0x85:
4291     case 0x86:
4292     case 0x87:
4293         {
4294           /** 1000 0reg			inc	%0				*/
4295 #line 565 "rl78-decode.opc"
4296           int reg AU = op[0] & 0x07;
4297           if (trace)
4298             {
4299               printf ("\033[33m%s\033[0m  %02x\n",
4300                      "/** 1000 0reg			inc	%0				*/",
4301                      op[0]);
4302               printf ("  reg = 0x%x\n", reg);
4303             }
4304           SYNTAX("inc	%0");
4305 #line 565 "rl78-decode.opc"
4306           ID(add); DRB(reg); SC(1); Fza;
4307 
4308         }
4309       break;
4310     case 0x88:
4311         {
4312           /** 1000 1000			mov	%0, %e1%1			*/
4313           if (trace)
4314             {
4315               printf ("\033[33m%s\033[0m  %02x\n",
4316                      "/** 1000 1000			mov	%0, %e1%1			*/",
4317                      op[0]);
4318             }
4319           SYNTAX("mov	%0, %e1%1");
4320 #line 644 "rl78-decode.opc"
4321           ID(mov); DR(A); SM(SP, IMMU(1));
4322 
4323         }
4324       break;
4325     case 0x89:
4326         {
4327           /** 1000 1001			mov	%0, %e1%1			*/
4328           if (trace)
4329             {
4330               printf ("\033[33m%s\033[0m  %02x\n",
4331                      "/** 1000 1001			mov	%0, %e1%1			*/",
4332                      op[0]);
4333             }
4334           SYNTAX("mov	%0, %e1%1");
4335 #line 626 "rl78-decode.opc"
4336           ID(mov); DR(A); SM(DE, 0);
4337 
4338         }
4339       break;
4340     case 0x8a:
4341         {
4342           /** 1000 1010			mov	%0, %e1%1			*/
4343           if (trace)
4344             {
4345               printf ("\033[33m%s\033[0m  %02x\n",
4346                      "/** 1000 1010			mov	%0, %e1%1			*/",
4347                      op[0]);
4348             }
4349           SYNTAX("mov	%0, %e1%1");
4350 #line 629 "rl78-decode.opc"
4351           ID(mov); DR(A); SM(DE, IMMU(1));
4352 
4353         }
4354       break;
4355     case 0x8b:
4356         {
4357           /** 1000 1011			mov	%0, %e1%1			*/
4358           if (trace)
4359             {
4360               printf ("\033[33m%s\033[0m  %02x\n",
4361                      "/** 1000 1011			mov	%0, %e1%1			*/",
4362                      op[0]);
4363             }
4364           SYNTAX("mov	%0, %e1%1");
4365 #line 632 "rl78-decode.opc"
4366           ID(mov); DR(A); SM(HL, 0);
4367 
4368         }
4369       break;
4370     case 0x8c:
4371         {
4372           /** 1000 1100			mov	%0, %e1%1			*/
4373           if (trace)
4374             {
4375               printf ("\033[33m%s\033[0m  %02x\n",
4376                      "/** 1000 1100			mov	%0, %e1%1			*/",
4377                      op[0]);
4378             }
4379           SYNTAX("mov	%0, %e1%1");
4380 #line 635 "rl78-decode.opc"
4381           ID(mov); DR(A); SM(HL, IMMU(1));
4382 
4383         }
4384       break;
4385     case 0x8d:
4386         {
4387           /** 1000 1101			mov	%0, %1				*/
4388           if (trace)
4389             {
4390               printf ("\033[33m%s\033[0m  %02x\n",
4391                      "/** 1000 1101			mov	%0, %1				*/",
4392                      op[0]);
4393             }
4394           SYNTAX("mov	%0, %1");
4395 #line 668 "rl78-decode.opc"
4396           ID(mov); DR(A); SM(None, SADDR);
4397 
4398         }
4399       break;
4400     case 0x8e:
4401         {
4402           /** 1000 1110			mov	%0, %s1				*/
4403           if (trace)
4404             {
4405               printf ("\033[33m%s\033[0m  %02x\n",
4406                      "/** 1000 1110			mov	%0, %s1				*/",
4407                      op[0]);
4408             }
4409           SYNTAX("mov	%0, %s1");
4410 #line 665 "rl78-decode.opc"
4411           ID(mov); DR(A); SM(None, SFR);
4412 
4413         }
4414       break;
4415     case 0x8f:
4416         {
4417           /** 1000 1111			mov	%0, %e1%!1			*/
4418           if (trace)
4419             {
4420               printf ("\033[33m%s\033[0m  %02x\n",
4421                      "/** 1000 1111			mov	%0, %e1%!1			*/",
4422                      op[0]);
4423             }
4424           SYNTAX("mov	%0, %e1%!1");
4425 #line 623 "rl78-decode.opc"
4426           ID(mov); DR(A); SM(None, IMMU(2));
4427 
4428         }
4429       break;
4430     case 0x90:
4431     case 0x91:
4432     case 0x92:
4433     case 0x93:
4434     case 0x94:
4435     case 0x95:
4436     case 0x96:
4437     case 0x97:
4438         {
4439           /** 1001 0reg			dec	%0				*/
4440 #line 532 "rl78-decode.opc"
4441           int reg AU = op[0] & 0x07;
4442           if (trace)
4443             {
4444               printf ("\033[33m%s\033[0m  %02x\n",
4445                      "/** 1001 0reg			dec	%0				*/",
4446                      op[0]);
4447               printf ("  reg = 0x%x\n", reg);
4448             }
4449           SYNTAX("dec	%0");
4450 #line 532 "rl78-decode.opc"
4451           ID(sub); DRB(reg); SC(1); Fza;
4452 
4453         }
4454       break;
4455     case 0x98:
4456         {
4457           /** 1001 1000			mov	%0, %1				*/
4458           if (trace)
4459             {
4460               printf ("\033[33m%s\033[0m  %02x\n",
4461                      "/** 1001 1000			mov	%0, %1				*/",
4462                      op[0]);
4463             }
4464           SYNTAX("mov	%0, %1");
4465 #line 620 "rl78-decode.opc"
4466           ID(mov); DM(SP, IMMU(1)); SR(A);
4467 
4468         }
4469       break;
4470     case 0x99:
4471         {
4472           /** 1001 1001			mov	%e0%0,%1			*/
4473           if (trace)
4474             {
4475               printf ("\033[33m%s\033[0m  %02x\n",
4476                      "/** 1001 1001			mov	%e0%0,%1			*/",
4477                      op[0]);
4478             }
4479           SYNTAX("mov	%e0%0,%1");
4480 #line 593 "rl78-decode.opc"
4481           ID(mov); DM(DE, 0); SR(A);
4482 
4483         }
4484       break;
4485     case 0x9a:
4486         {
4487           /** 1001 1010			mov	%e0%0, %1			*/
4488           if (trace)
4489             {
4490               printf ("\033[33m%s\033[0m  %02x\n",
4491                      "/** 1001 1010			mov	%e0%0, %1			*/",
4492                      op[0]);
4493             }
4494           SYNTAX("mov	%e0%0, %1");
4495 #line 599 "rl78-decode.opc"
4496           ID(mov); DM(DE, IMMU(1)); SR(A);
4497 
4498         }
4499       break;
4500     case 0x9b:
4501         {
4502           /** 1001 1011			mov	%e0%0,%1			*/
4503           if (trace)
4504             {
4505               printf ("\033[33m%s\033[0m  %02x\n",
4506                      "/** 1001 1011			mov	%e0%0,%1			*/",
4507                      op[0]);
4508             }
4509           SYNTAX("mov	%e0%0,%1");
4510 #line 602 "rl78-decode.opc"
4511           ID(mov); DM(HL, 0); SR(A);
4512 
4513         }
4514       break;
4515     case 0x9c:
4516         {
4517           /** 1001 1100			mov	%e0%0, %1			*/
4518           if (trace)
4519             {
4520               printf ("\033[33m%s\033[0m  %02x\n",
4521                      "/** 1001 1100			mov	%e0%0, %1			*/",
4522                      op[0]);
4523             }
4524           SYNTAX("mov	%e0%0, %1");
4525 #line 611 "rl78-decode.opc"
4526           ID(mov); DM(HL, IMMU(1)); SR(A);
4527 
4528         }
4529       break;
4530     case 0x9d:
4531         {
4532           /** 1001 1101			mov	%0, %1				*/
4533           if (trace)
4534             {
4535               printf ("\033[33m%s\033[0m  %02x\n",
4536                      "/** 1001 1101			mov	%0, %1				*/",
4537                      op[0]);
4538             }
4539           SYNTAX("mov	%0, %1");
4540 #line 725 "rl78-decode.opc"
4541           ID(mov); DM(None, SADDR); SR(A);
4542 
4543         }
4544       break;
4545     case 0x9e:
4546         {
4547           /** 1001 1110			mov	%0, %1				*/
4548           if (trace)
4549             {
4550               printf ("\033[33m%s\033[0m  %02x\n",
4551                      "/** 1001 1110			mov	%0, %1				*/",
4552                      op[0]);
4553             }
4554           SYNTAX("mov	%0, %1");
4555 #line 755 "rl78-decode.opc"
4556           ID(mov); DM(None, SFR); SR(A);
4557 
4558         /*----------------------------------------------------------------------*/
4559 
4560         }
4561       break;
4562     case 0x9f:
4563         {
4564           /** 1001 1111			mov	%e0%!0, %1			*/
4565           if (trace)
4566             {
4567               printf ("\033[33m%s\033[0m  %02x\n",
4568                      "/** 1001 1111			mov	%e0%!0, %1			*/",
4569                      op[0]);
4570             }
4571           SYNTAX("mov	%e0%!0, %1");
4572 #line 590 "rl78-decode.opc"
4573           ID(mov); DM(None, IMMU(2)); SR(A);
4574 
4575         }
4576       break;
4577     case 0xa0:
4578         {
4579           /** 1010 0000			inc	%e0%!0				*/
4580           if (trace)
4581             {
4582               printf ("\033[33m%s\033[0m  %02x\n",
4583                      "/** 1010 0000			inc	%e0%!0				*/",
4584                      op[0]);
4585             }
4586           SYNTAX("inc	%e0%!0");
4587 #line 559 "rl78-decode.opc"
4588           ID(add); DM(None, IMMU(2)); SC(1); Fza;
4589 
4590         }
4591       break;
4592     case 0xa1:
4593     case 0xa3:
4594     case 0xa5:
4595     case 0xa7:
4596         {
4597           /** 1010 0rg1			incw	%0				*/
4598 #line 579 "rl78-decode.opc"
4599           int rg AU = (op[0] >> 1) & 0x03;
4600           if (trace)
4601             {
4602               printf ("\033[33m%s\033[0m  %02x\n",
4603                      "/** 1010 0rg1			incw	%0				*/",
4604                      op[0]);
4605               printf ("  rg = 0x%x\n", rg);
4606             }
4607           SYNTAX("incw	%0");
4608 #line 579 "rl78-decode.opc"
4609           ID(add); W(); DRW(rg); SC(1);
4610 
4611         }
4612       break;
4613     case 0xa2:
4614         {
4615           /** 1010 0010			incw	%e0%!0				*/
4616           if (trace)
4617             {
4618               printf ("\033[33m%s\033[0m  %02x\n",
4619                      "/** 1010 0010			incw	%e0%!0				*/",
4620                      op[0]);
4621             }
4622           SYNTAX("incw	%e0%!0");
4623 #line 573 "rl78-decode.opc"
4624           ID(add); W(); DM(None, IMMU(2)); SC(1);
4625 
4626         }
4627       break;
4628     case 0xa4:
4629         {
4630           /** 1010 0100			inc	%0				*/
4631           if (trace)
4632             {
4633               printf ("\033[33m%s\033[0m  %02x\n",
4634                      "/** 1010 0100			inc	%0				*/",
4635                      op[0]);
4636             }
4637           SYNTAX("inc	%0");
4638 #line 568 "rl78-decode.opc"
4639           ID(add); DM(None, SADDR); SC(1); Fza;
4640 
4641         /*----------------------------------------------------------------------*/
4642 
4643         }
4644       break;
4645     case 0xa6:
4646         {
4647           /** 1010 0110			incw	%0				*/
4648           if (trace)
4649             {
4650               printf ("\033[33m%s\033[0m  %02x\n",
4651                      "/** 1010 0110			incw	%0				*/",
4652                      op[0]);
4653             }
4654           SYNTAX("incw	%0");
4655 #line 582 "rl78-decode.opc"
4656           ID(add); W(); DM(None, SADDR); SC(1);
4657 
4658         /*----------------------------------------------------------------------*/
4659 
4660         }
4661       break;
4662     case 0xa8:
4663         {
4664           /** 1010 1000			movw	%0, %1				*/
4665           if (trace)
4666             {
4667               printf ("\033[33m%s\033[0m  %02x\n",
4668                      "/** 1010 1000			movw	%0, %1				*/",
4669                      op[0]);
4670             }
4671           SYNTAX("movw	%0, %1");
4672 #line 825 "rl78-decode.opc"
4673           ID(mov); W(); DR(AX); SM(SP, IMMU(1));
4674 
4675         }
4676       break;
4677     case 0xa9:
4678         {
4679           /** 1010 1001			movw	%0, %e1%1			*/
4680           if (trace)
4681             {
4682               printf ("\033[33m%s\033[0m  %02x\n",
4683                      "/** 1010 1001			movw	%0, %e1%1			*/",
4684                      op[0]);
4685             }
4686           SYNTAX("movw	%0, %e1%1");
4687 #line 813 "rl78-decode.opc"
4688           ID(mov); W(); DR(AX); SM(DE, 0);
4689 
4690         }
4691       break;
4692     case 0xaa:
4693         {
4694           /** 1010 1010			movw	%0, %e1%1			*/
4695           if (trace)
4696             {
4697               printf ("\033[33m%s\033[0m  %02x\n",
4698                      "/** 1010 1010			movw	%0, %e1%1			*/",
4699                      op[0]);
4700             }
4701           SYNTAX("movw	%0, %e1%1");
4702 #line 816 "rl78-decode.opc"
4703           ID(mov); W(); DR(AX); SM(DE, IMMU(1));
4704 
4705         }
4706       break;
4707     case 0xab:
4708         {
4709           /** 1010 1011			movw	%0, %e1%1			*/
4710           if (trace)
4711             {
4712               printf ("\033[33m%s\033[0m  %02x\n",
4713                      "/** 1010 1011			movw	%0, %e1%1			*/",
4714                      op[0]);
4715             }
4716           SYNTAX("movw	%0, %e1%1");
4717 #line 819 "rl78-decode.opc"
4718           ID(mov); W(); DR(AX); SM(HL, 0);
4719 
4720         }
4721       break;
4722     case 0xac:
4723         {
4724           /** 1010 1100			movw	%0, %e1%1			*/
4725           if (trace)
4726             {
4727               printf ("\033[33m%s\033[0m  %02x\n",
4728                      "/** 1010 1100			movw	%0, %e1%1			*/",
4729                      op[0]);
4730             }
4731           SYNTAX("movw	%0, %e1%1");
4732 #line 822 "rl78-decode.opc"
4733           ID(mov); W(); DR(AX); SM(HL, IMMU(1));
4734 
4735         }
4736       break;
4737     case 0xad:
4738         {
4739           /** 1010 1101			movw	%0, %1				*/
4740           if (trace)
4741             {
4742               printf ("\033[33m%s\033[0m  %02x\n",
4743                      "/** 1010 1101			movw	%0, %1				*/",
4744                      op[0]);
4745             }
4746           SYNTAX("movw	%0, %1");
4747 #line 855 "rl78-decode.opc"
4748           ID(mov); W(); DR(AX); SM(None, SADDR);
4749 
4750         }
4751       break;
4752     case 0xae:
4753         {
4754           /** 1010 1110			movw	%0, %s1				*/
4755           if (trace)
4756             {
4757               printf ("\033[33m%s\033[0m  %02x\n",
4758                      "/** 1010 1110			movw	%0, %s1				*/",
4759                      op[0]);
4760             }
4761           SYNTAX("movw	%0, %s1");
4762 #line 858 "rl78-decode.opc"
4763           ID(mov); W(); DR(AX); SM(None, SFR);
4764 
4765         }
4766       break;
4767     case 0xaf:
4768         {
4769           /** 1010 1111			movw	%0, %e1%!1			*/
4770           if (trace)
4771             {
4772               printf ("\033[33m%s\033[0m  %02x\n",
4773                      "/** 1010 1111			movw	%0, %e1%!1			*/",
4774                      op[0]);
4775             }
4776           SYNTAX("movw	%0, %e1%!1");
4777 #line 809 "rl78-decode.opc"
4778           ID(mov); W(); DR(AX); SM(None, IMMU(2));
4779 
4780 
4781         }
4782       break;
4783     case 0xb0:
4784         {
4785           /** 1011 0000			dec	%e0%!0				*/
4786           if (trace)
4787             {
4788               printf ("\033[33m%s\033[0m  %02x\n",
4789                      "/** 1011 0000			dec	%e0%!0				*/",
4790                      op[0]);
4791             }
4792           SYNTAX("dec	%e0%!0");
4793 #line 526 "rl78-decode.opc"
4794           ID(sub); DM(None, IMMU(2)); SC(1); Fza;
4795 
4796         }
4797       break;
4798     case 0xb1:
4799     case 0xb3:
4800     case 0xb5:
4801     case 0xb7:
4802         {
4803           /** 1011 0rg1 			decw	%0				*/
4804 #line 546 "rl78-decode.opc"
4805           int rg AU = (op[0] >> 1) & 0x03;
4806           if (trace)
4807             {
4808               printf ("\033[33m%s\033[0m  %02x\n",
4809                      "/** 1011 0rg1 			decw	%0				*/",
4810                      op[0]);
4811               printf ("  rg = 0x%x\n", rg);
4812             }
4813           SYNTAX("decw	%0");
4814 #line 546 "rl78-decode.opc"
4815           ID(sub); W(); DRW(rg); SC(1);
4816 
4817         }
4818       break;
4819     case 0xb2:
4820         {
4821           /** 1011 0010			decw	%e0%!0				*/
4822           if (trace)
4823             {
4824               printf ("\033[33m%s\033[0m  %02x\n",
4825                      "/** 1011 0010			decw	%e0%!0				*/",
4826                      op[0]);
4827             }
4828           SYNTAX("decw	%e0%!0");
4829 #line 540 "rl78-decode.opc"
4830           ID(sub); W(); DM(None, IMMU(2)); SC(1);
4831 
4832         }
4833       break;
4834     case 0xb4:
4835         {
4836           /** 1011 0100			dec	%0				*/
4837           if (trace)
4838             {
4839               printf ("\033[33m%s\033[0m  %02x\n",
4840                      "/** 1011 0100			dec	%0				*/",
4841                      op[0]);
4842             }
4843           SYNTAX("dec	%0");
4844 #line 535 "rl78-decode.opc"
4845           ID(sub); DM(None, SADDR); SC(1); Fza;
4846 
4847         /*----------------------------------------------------------------------*/
4848 
4849         }
4850       break;
4851     case 0xb6:
4852         {
4853           /** 1011 0110			decw	%0				*/
4854           if (trace)
4855             {
4856               printf ("\033[33m%s\033[0m  %02x\n",
4857                      "/** 1011 0110			decw	%0				*/",
4858                      op[0]);
4859             }
4860           SYNTAX("decw	%0");
4861 #line 549 "rl78-decode.opc"
4862           ID(sub); W(); DM(None, SADDR); SC(1);
4863 
4864         /*----------------------------------------------------------------------*/
4865 
4866         }
4867       break;
4868     case 0xb8:
4869         {
4870           /** 1011 1000			movw	%0, %1				*/
4871           if (trace)
4872             {
4873               printf ("\033[33m%s\033[0m  %02x\n",
4874                      "/** 1011 1000			movw	%0, %1				*/",
4875                      op[0]);
4876             }
4877           SYNTAX("movw	%0, %1");
4878 #line 806 "rl78-decode.opc"
4879           ID(mov); W(); DM(SP, IMMU(1)); SR(AX);
4880 
4881         }
4882       break;
4883     case 0xb9:
4884         {
4885           /** 1011 1001			movw	%e0%0, %1			*/
4886           if (trace)
4887             {
4888               printf ("\033[33m%s\033[0m  %02x\n",
4889                      "/** 1011 1001			movw	%e0%0, %1			*/",
4890                      op[0]);
4891             }
4892           SYNTAX("movw	%e0%0, %1");
4893 #line 794 "rl78-decode.opc"
4894           ID(mov); W(); DM(DE, 0); SR(AX);
4895 
4896         }
4897       break;
4898     case 0xba:
4899         {
4900           /** 1011 1010			movw	%e0%0, %1			*/
4901           if (trace)
4902             {
4903               printf ("\033[33m%s\033[0m  %02x\n",
4904                      "/** 1011 1010			movw	%e0%0, %1			*/",
4905                      op[0]);
4906             }
4907           SYNTAX("movw	%e0%0, %1");
4908 #line 797 "rl78-decode.opc"
4909           ID(mov); W(); DM(DE, IMMU(1)); SR(AX);
4910 
4911         }
4912       break;
4913     case 0xbb:
4914         {
4915           /** 1011 1011			movw	%e0%0, %1			*/
4916           if (trace)
4917             {
4918               printf ("\033[33m%s\033[0m  %02x\n",
4919                      "/** 1011 1011			movw	%e0%0, %1			*/",
4920                      op[0]);
4921             }
4922           SYNTAX("movw	%e0%0, %1");
4923 #line 800 "rl78-decode.opc"
4924           ID(mov); W(); DM(HL, 0); SR(AX);
4925 
4926         }
4927       break;
4928     case 0xbc:
4929         {
4930           /** 1011 1100			movw	%e0%0, %1			*/
4931           if (trace)
4932             {
4933               printf ("\033[33m%s\033[0m  %02x\n",
4934                      "/** 1011 1100			movw	%e0%0, %1			*/",
4935                      op[0]);
4936             }
4937           SYNTAX("movw	%e0%0, %1");
4938 #line 803 "rl78-decode.opc"
4939           ID(mov); W(); DM(HL, IMMU(1)); SR(AX);
4940 
4941         }
4942       break;
4943     case 0xbd:
4944         {
4945           /** 1011 1101			movw	%0, %1				*/
4946           if (trace)
4947             {
4948               printf ("\033[33m%s\033[0m  %02x\n",
4949                      "/** 1011 1101			movw	%0, %1				*/",
4950                      op[0]);
4951             }
4952           SYNTAX("movw	%0, %1");
4953 #line 870 "rl78-decode.opc"
4954           ID(mov); W(); DM(None, SADDR); SR(AX);
4955 
4956         }
4957       break;
4958     case 0xbe:
4959         {
4960           /** 1011 1110			movw	%0, %1				*/
4961           if (trace)
4962             {
4963               printf ("\033[33m%s\033[0m  %02x\n",
4964                      "/** 1011 1110			movw	%0, %1				*/",
4965                      op[0]);
4966             }
4967           SYNTAX("movw	%0, %1");
4968 #line 876 "rl78-decode.opc"
4969           ID(mov); W(); DM(None, SFR); SR(AX);
4970 
4971         /*----------------------------------------------------------------------*/
4972 
4973         }
4974       break;
4975     case 0xbf:
4976         {
4977           /** 1011 1111			movw	%e0%!0, %1			*/
4978           if (trace)
4979             {
4980               printf ("\033[33m%s\033[0m  %02x\n",
4981                      "/** 1011 1111			movw	%e0%!0, %1			*/",
4982                      op[0]);
4983             }
4984           SYNTAX("movw	%e0%!0, %1");
4985 #line 791 "rl78-decode.opc"
4986           ID(mov); W(); DM(None, IMMU(2)); SR(AX);
4987 
4988         }
4989       break;
4990     case 0xc0:
4991     case 0xc2:
4992     case 0xc4:
4993     case 0xc6:
4994         {
4995           /** 1100 0rg0			pop	%0				*/
4996 #line 961 "rl78-decode.opc"
4997           int rg AU = (op[0] >> 1) & 0x03;
4998           if (trace)
4999             {
5000               printf ("\033[33m%s\033[0m  %02x\n",
5001                      "/** 1100 0rg0			pop	%0				*/",
5002                      op[0]);
5003               printf ("  rg = 0x%x\n", rg);
5004             }
5005           SYNTAX("pop	%0");
5006 #line 961 "rl78-decode.opc"
5007           ID(mov); W(); DRW(rg); SPOP();
5008 
5009         }
5010       break;
5011     case 0xc1:
5012     case 0xc3:
5013     case 0xc5:
5014     case 0xc7:
5015         {
5016           /** 1100 0rg1			push	%1				*/
5017 #line 969 "rl78-decode.opc"
5018           int rg AU = (op[0] >> 1) & 0x03;
5019           if (trace)
5020             {
5021               printf ("\033[33m%s\033[0m  %02x\n",
5022                      "/** 1100 0rg1			push	%1				*/",
5023                      op[0]);
5024               printf ("  rg = 0x%x\n", rg);
5025             }
5026           SYNTAX("push	%1");
5027 #line 969 "rl78-decode.opc"
5028           ID(mov); W(); DPUSH(); SRW(rg);
5029 
5030         }
5031       break;
5032     case 0xc8:
5033         {
5034           /** 1100 1000			mov	%0, #%1				*/
5035           if (trace)
5036             {
5037               printf ("\033[33m%s\033[0m  %02x\n",
5038                      "/** 1100 1000			mov	%0, #%1				*/",
5039                      op[0]);
5040             }
5041           SYNTAX("mov	%0, #%1");
5042 #line 617 "rl78-decode.opc"
5043           ID(mov); DM(SP, IMMU(1)); SC(IMMU(1));
5044 
5045         }
5046       break;
5047     case 0xc9:
5048         {
5049           /** 1100 1001			movw	%0, #%1				*/
5050           if (trace)
5051             {
5052               printf ("\033[33m%s\033[0m  %02x\n",
5053                      "/** 1100 1001			movw	%0, #%1				*/",
5054                      op[0]);
5055             }
5056           SYNTAX("movw	%0, #%1");
5057 #line 867 "rl78-decode.opc"
5058           ID(mov); W(); DM(None, SADDR); SC(IMMU(2));
5059 
5060         }
5061       break;
5062     case 0xca:
5063         {
5064           /** 1100 1010			mov	%e0%0, #%1			*/
5065           if (trace)
5066             {
5067               printf ("\033[33m%s\033[0m  %02x\n",
5068                      "/** 1100 1010			mov	%e0%0, #%1			*/",
5069                      op[0]);
5070             }
5071           SYNTAX("mov	%e0%0, #%1");
5072 #line 596 "rl78-decode.opc"
5073           ID(mov); DM(DE, IMMU(1)); SC(IMMU(1));
5074 
5075         }
5076       break;
5077     case 0xcb:
5078         {
5079           /** 1100 1011			movw	%0, #%1				*/
5080           if (trace)
5081             {
5082               printf ("\033[33m%s\033[0m  %02x\n",
5083                      "/** 1100 1011			movw	%0, #%1				*/",
5084                      op[0]);
5085             }
5086           SYNTAX("movw	%0, #%1");
5087 #line 873 "rl78-decode.opc"
5088           ID(mov); W(); DM(None, SFR); SC(IMMU(2));
5089 
5090         }
5091       break;
5092     case 0xcc:
5093         {
5094           /** 1100 1100			mov	%e0%0, #%1			*/
5095           if (trace)
5096             {
5097               printf ("\033[33m%s\033[0m  %02x\n",
5098                      "/** 1100 1100			mov	%e0%0, #%1			*/",
5099                      op[0]);
5100             }
5101           SYNTAX("mov	%e0%0, #%1");
5102 #line 608 "rl78-decode.opc"
5103           ID(mov); DM(HL, IMMU(1)); SC(IMMU(1));
5104 
5105         }
5106       break;
5107     case 0xcd:
5108         {
5109           /** 1100 1101			mov	%0, #%1				*/
5110           if (trace)
5111             {
5112               printf ("\033[33m%s\033[0m  %02x\n",
5113                      "/** 1100 1101			mov	%0, #%1				*/",
5114                      op[0]);
5115             }
5116           SYNTAX("mov	%0, #%1");
5117 #line 722 "rl78-decode.opc"
5118           ID(mov); DM(None, SADDR); SC(IMMU(1));
5119 
5120         }
5121       break;
5122     case 0xce:
5123         {
5124           /** 1100 1110			mov	%s0, #%1			*/
5125           if (trace)
5126             {
5127               printf ("\033[33m%s\033[0m  %02x\n",
5128                      "/** 1100 1110			mov	%s0, #%1			*/",
5129                      op[0]);
5130             }
5131           SYNTAX("mov	%s0, #%1");
5132 #line 728 "rl78-decode.opc"
5133           op0 = SFR;
5134           op1 = IMMU(1);
5135           ID(mov); DM(None, op0); SC(op1);
5136           if (op0 == 0xffffb)
5137             switch (op1)
5138               {
5139               case 0x01:
5140         	rl78->syntax = "mulhu"; ID(mulhu);
5141         	break;
5142               case 0x02:
5143         	rl78->syntax = "mulh"; ID(mulh);
5144         	break;
5145               case 0x03:
5146         	rl78->syntax = "divhu"; ID(divhu);
5147         	break;
5148               case 0x04:
5149         	rl78->syntax = "divwu"; ID(divwu);
5150         	break;
5151               case 0x05:
5152         	rl78->syntax = "machu"; ID(machu);
5153         	break;
5154               case 0x06:
5155         	rl78->syntax = "mach"; ID(mach);
5156         	break;
5157               }
5158 
5159         }
5160       break;
5161     case 0xcf:
5162         {
5163           /** 1100 1111			mov	%e0%!0, #%1			*/
5164           if (trace)
5165             {
5166               printf ("\033[33m%s\033[0m  %02x\n",
5167                      "/** 1100 1111			mov	%e0%!0, #%1			*/",
5168                      op[0]);
5169             }
5170           SYNTAX("mov	%e0%!0, #%1");
5171 #line 587 "rl78-decode.opc"
5172           ID(mov); DM(None, IMMU(2)); SC(IMMU(1));
5173 
5174         }
5175       break;
5176     case 0xd0:
5177     case 0xd1:
5178     case 0xd2:
5179     case 0xd3:
5180         {
5181           /** 1101 00rg			cmp0	%0				*/
5182 #line 496 "rl78-decode.opc"
5183           int rg AU = op[0] & 0x03;
5184           if (trace)
5185             {
5186               printf ("\033[33m%s\033[0m  %02x\n",
5187                      "/** 1101 00rg			cmp0	%0				*/",
5188                      op[0]);
5189               printf ("  rg = 0x%x\n", rg);
5190             }
5191           SYNTAX("cmp0	%0");
5192 #line 496 "rl78-decode.opc"
5193           ID(cmp); DRB(rg); SC(0); Fzac;
5194 
5195         }
5196       break;
5197     case 0xd4:
5198         {
5199           /** 1101 0100			cmp0	%0				*/
5200           if (trace)
5201             {
5202               printf ("\033[33m%s\033[0m  %02x\n",
5203                      "/** 1101 0100			cmp0	%0				*/",
5204                      op[0]);
5205             }
5206           SYNTAX("cmp0	%0");
5207 #line 499 "rl78-decode.opc"
5208           ID(cmp); DM(None, SADDR); SC(0); Fzac;
5209 
5210         /*----------------------------------------------------------------------*/
5211 
5212         }
5213       break;
5214     case 0xd5:
5215         {
5216           /** 1101 0101			cmp0	%e0%!0				*/
5217           if (trace)
5218             {
5219               printf ("\033[33m%s\033[0m  %02x\n",
5220                      "/** 1101 0101			cmp0	%e0%!0				*/",
5221                      op[0]);
5222             }
5223           SYNTAX("cmp0	%e0%!0");
5224 #line 493 "rl78-decode.opc"
5225           ID(cmp); DM(None, IMMU(2)); SC(0); Fzac;
5226 
5227         }
5228       break;
5229     case 0xd6:
5230         {
5231           /** 1101 0110			mulu	x				*/
5232           if (trace)
5233             {
5234               printf ("\033[33m%s\033[0m  %02x\n",
5235                      "/** 1101 0110			mulu	x				*/",
5236                      op[0]);
5237             }
5238           SYNTAX("mulu	x");
5239 #line 881 "rl78-decode.opc"
5240           ID(mulu);
5241 
5242         /*----------------------------------------------------------------------*/
5243 
5244         }
5245       break;
5246     case 0xd7:
5247         {
5248           /** 1101 0111			ret					*/
5249           if (trace)
5250             {
5251               printf ("\033[33m%s\033[0m  %02x\n",
5252                      "/** 1101 0111			ret					*/",
5253                      op[0]);
5254             }
5255           SYNTAX("ret");
5256 #line 977 "rl78-decode.opc"
5257           ID(ret);
5258 
5259         }
5260       break;
5261     case 0xd8:
5262         {
5263           /** 1101 1000			mov	%0, %1				*/
5264           if (trace)
5265             {
5266               printf ("\033[33m%s\033[0m  %02x\n",
5267                      "/** 1101 1000			mov	%0, %1				*/",
5268                      op[0]);
5269             }
5270           SYNTAX("mov	%0, %1");
5271 #line 689 "rl78-decode.opc"
5272           ID(mov); DR(X); SM(None, SADDR);
5273 
5274         }
5275       break;
5276     case 0xd9:
5277         {
5278           /** 1101 1001			mov	%0, %e1%!1			*/
5279           if (trace)
5280             {
5281               printf ("\033[33m%s\033[0m  %02x\n",
5282                      "/** 1101 1001			mov	%0, %e1%!1			*/",
5283                      op[0]);
5284             }
5285           SYNTAX("mov	%0, %e1%!1");
5286 #line 686 "rl78-decode.opc"
5287           ID(mov); DR(X); SM(None, IMMU(2));
5288 
5289         }
5290       break;
5291     case 0xda:
5292     case 0xea:
5293     case 0xfa:
5294         {
5295           /** 11ra 1010			movw	%0, %1				*/
5296 #line 864 "rl78-decode.opc"
5297           int ra AU = (op[0] >> 4) & 0x03;
5298           if (trace)
5299             {
5300               printf ("\033[33m%s\033[0m  %02x\n",
5301                      "/** 11ra 1010			movw	%0, %1				*/",
5302                      op[0]);
5303               printf ("  ra = 0x%x\n", ra);
5304             }
5305           SYNTAX("movw	%0, %1");
5306 #line 864 "rl78-decode.opc"
5307           ID(mov); W(); DRW(ra); SM(None, SADDR);
5308 
5309         }
5310       break;
5311     case 0xdb:
5312     case 0xeb:
5313     case 0xfb:
5314         {
5315           /** 11ra 1011			movw	%0, %e1%!1			*/
5316 #line 861 "rl78-decode.opc"
5317           int ra AU = (op[0] >> 4) & 0x03;
5318           if (trace)
5319             {
5320               printf ("\033[33m%s\033[0m  %02x\n",
5321                      "/** 11ra 1011			movw	%0, %e1%!1			*/",
5322                      op[0]);
5323               printf ("  ra = 0x%x\n", ra);
5324             }
5325           SYNTAX("movw	%0, %e1%!1");
5326 #line 861 "rl78-decode.opc"
5327           ID(mov); W(); DRW(ra); SM(None, IMMU(2));
5328 
5329         }
5330       break;
5331     case 0xdc:
5332         {
5333           /** 1101 1100			bc	$%a0				*/
5334           if (trace)
5335             {
5336               printf ("\033[33m%s\033[0m  %02x\n",
5337                      "/** 1101 1100			bc	$%a0				*/",
5338                      op[0]);
5339             }
5340           SYNTAX("bc	$%a0");
5341 #line 312 "rl78-decode.opc"
5342           ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(C);
5343 
5344         }
5345       break;
5346     case 0xdd:
5347         {
5348           /** 1101 1101			bz	$%a0				*/
5349           if (trace)
5350             {
5351               printf ("\033[33m%s\033[0m  %02x\n",
5352                      "/** 1101 1101			bz	$%a0				*/",
5353                      op[0]);
5354             }
5355           SYNTAX("bz	$%a0");
5356 #line 324 "rl78-decode.opc"
5357           ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(Z);
5358 
5359         }
5360       break;
5361     case 0xde:
5362         {
5363           /** 1101 1110			bnc	$%a0				*/
5364           if (trace)
5365             {
5366               printf ("\033[33m%s\033[0m  %02x\n",
5367                      "/** 1101 1110			bnc	$%a0				*/",
5368                      op[0]);
5369             }
5370           SYNTAX("bnc	$%a0");
5371 #line 315 "rl78-decode.opc"
5372           ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(NC);
5373 
5374         }
5375       break;
5376     case 0xdf:
5377         {
5378           /** 1101 1111			bnz	$%a0				*/
5379           if (trace)
5380             {
5381               printf ("\033[33m%s\033[0m  %02x\n",
5382                      "/** 1101 1111			bnz	$%a0				*/",
5383                      op[0]);
5384             }
5385           SYNTAX("bnz	$%a0");
5386 #line 327 "rl78-decode.opc"
5387           ID(branch_cond); DC(pc+IMMS(1)+2); SR(None); COND(NZ);
5388 
5389         /*----------------------------------------------------------------------*/
5390 
5391         }
5392       break;
5393     case 0xe0:
5394     case 0xe1:
5395     case 0xe2:
5396     case 0xe3:
5397         {
5398           /** 1110 00rg			oneb	%0				*/
5399 #line 899 "rl78-decode.opc"
5400           int rg AU = op[0] & 0x03;
5401           if (trace)
5402             {
5403               printf ("\033[33m%s\033[0m  %02x\n",
5404                      "/** 1110 00rg			oneb	%0				*/",
5405                      op[0]);
5406               printf ("  rg = 0x%x\n", rg);
5407             }
5408           SYNTAX("oneb	%0");
5409 #line 899 "rl78-decode.opc"
5410           ID(mov); DRB(rg); SC(1);
5411 
5412         }
5413       break;
5414     case 0xe4:
5415         {
5416           /** 1110 0100			oneb	%0				*/
5417           if (trace)
5418             {
5419               printf ("\033[33m%s\033[0m  %02x\n",
5420                      "/** 1110 0100			oneb	%0				*/",
5421                      op[0]);
5422             }
5423           SYNTAX("oneb	%0");
5424 #line 902 "rl78-decode.opc"
5425           ID(mov); DM(None, SADDR); SC(1);
5426 
5427         /*----------------------------------------------------------------------*/
5428 
5429         }
5430       break;
5431     case 0xe5:
5432         {
5433           /** 1110 0101			oneb	%e0%!0				*/
5434           if (trace)
5435             {
5436               printf ("\033[33m%s\033[0m  %02x\n",
5437                      "/** 1110 0101			oneb	%e0%!0				*/",
5438                      op[0]);
5439             }
5440           SYNTAX("oneb	%e0%!0");
5441 #line 896 "rl78-decode.opc"
5442           ID(mov); DM(None, IMMU(2)); SC(1);
5443 
5444         }
5445       break;
5446     case 0xe6:
5447         {
5448           /** 1110 0110			onew	%0				*/
5449           if (trace)
5450             {
5451               printf ("\033[33m%s\033[0m  %02x\n",
5452                      "/** 1110 0110			onew	%0				*/",
5453                      op[0]);
5454             }
5455           SYNTAX("onew	%0");
5456 #line 907 "rl78-decode.opc"
5457           ID(mov); DR(AX); SC(1);
5458 
5459         }
5460       break;
5461     case 0xe7:
5462         {
5463           /** 1110 0111			onew	%0				*/
5464           if (trace)
5465             {
5466               printf ("\033[33m%s\033[0m  %02x\n",
5467                      "/** 1110 0111			onew	%0				*/",
5468                      op[0]);
5469             }
5470           SYNTAX("onew	%0");
5471 #line 910 "rl78-decode.opc"
5472           ID(mov); DR(BC); SC(1);
5473 
5474         /*----------------------------------------------------------------------*/
5475 
5476         }
5477       break;
5478     case 0xe8:
5479         {
5480           /** 1110 1000			mov	%0, %1				*/
5481           if (trace)
5482             {
5483               printf ("\033[33m%s\033[0m  %02x\n",
5484                      "/** 1110 1000			mov	%0, %1				*/",
5485                      op[0]);
5486             }
5487           SYNTAX("mov	%0, %1");
5488 #line 677 "rl78-decode.opc"
5489           ID(mov); DR(B); SM(None, SADDR);
5490 
5491         }
5492       break;
5493     case 0xe9:
5494         {
5495           /** 1110 1001			mov	%0, %e1%!1			*/
5496           if (trace)
5497             {
5498               printf ("\033[33m%s\033[0m  %02x\n",
5499                      "/** 1110 1001			mov	%0, %e1%!1			*/",
5500                      op[0]);
5501             }
5502           SYNTAX("mov	%0, %e1%!1");
5503 #line 671 "rl78-decode.opc"
5504           ID(mov); DR(B); SM(None, IMMU(2));
5505 
5506         }
5507       break;
5508     case 0xec:
5509         {
5510           /** 1110 1100			br	!%!a0				*/
5511           if (trace)
5512             {
5513               printf ("\033[33m%s\033[0m  %02x\n",
5514                      "/** 1110 1100			br	!%!a0				*/",
5515                      op[0]);
5516             }
5517           SYNTAX("br	!%!a0");
5518 #line 346 "rl78-decode.opc"
5519           ID(branch); DC(IMMU(3));
5520 
5521         }
5522       break;
5523     case 0xed:
5524         {
5525           /** 1110 1101			br	%!a0				*/
5526           if (trace)
5527             {
5528               printf ("\033[33m%s\033[0m  %02x\n",
5529                      "/** 1110 1101			br	%!a0				*/",
5530                      op[0]);
5531             }
5532           SYNTAX("br	%!a0");
5533 #line 349 "rl78-decode.opc"
5534           ID(branch); DC(IMMU(2));
5535 
5536         }
5537       break;
5538     case 0xee:
5539         {
5540           /** 1110 1110			br	$%!a0				*/
5541           if (trace)
5542             {
5543               printf ("\033[33m%s\033[0m  %02x\n",
5544                      "/** 1110 1110			br	$%!a0				*/",
5545                      op[0]);
5546             }
5547           SYNTAX("br	$%!a0");
5548 #line 352 "rl78-decode.opc"
5549           ID(branch); DC(pc+IMMS(2)+3);
5550 
5551         }
5552       break;
5553     case 0xef:
5554         {
5555           /** 1110 1111			br	$%a0				*/
5556           if (trace)
5557             {
5558               printf ("\033[33m%s\033[0m  %02x\n",
5559                      "/** 1110 1111			br	$%a0				*/",
5560                      op[0]);
5561             }
5562           SYNTAX("br	$%a0");
5563 #line 355 "rl78-decode.opc"
5564           ID(branch); DC(pc+IMMS(1)+2);
5565 
5566         }
5567       break;
5568     case 0xf0:
5569     case 0xf1:
5570     case 0xf2:
5571     case 0xf3:
5572         {
5573           /** 1111 00rg			clrb	%0				*/
5574 #line 442 "rl78-decode.opc"
5575           int rg AU = op[0] & 0x03;
5576           if (trace)
5577             {
5578               printf ("\033[33m%s\033[0m  %02x\n",
5579                      "/** 1111 00rg			clrb	%0				*/",
5580                      op[0]);
5581               printf ("  rg = 0x%x\n", rg);
5582             }
5583           SYNTAX("clrb	%0");
5584 #line 442 "rl78-decode.opc"
5585           ID(mov); DRB(rg); SC(0);
5586 
5587         }
5588       break;
5589     case 0xf4:
5590         {
5591           /** 1111 0100			clrb	%0				*/
5592           if (trace)
5593             {
5594               printf ("\033[33m%s\033[0m  %02x\n",
5595                      "/** 1111 0100			clrb	%0				*/",
5596                      op[0]);
5597             }
5598           SYNTAX("clrb	%0");
5599 #line 445 "rl78-decode.opc"
5600           ID(mov); DM(None, SADDR); SC(0);
5601 
5602         /*----------------------------------------------------------------------*/
5603 
5604         }
5605       break;
5606     case 0xf5:
5607         {
5608           /** 1111 0101			clrb	%e0%!0				*/
5609           if (trace)
5610             {
5611               printf ("\033[33m%s\033[0m  %02x\n",
5612                      "/** 1111 0101			clrb	%e0%!0				*/",
5613                      op[0]);
5614             }
5615           SYNTAX("clrb	%e0%!0");
5616 #line 439 "rl78-decode.opc"
5617           ID(mov); DM(None, IMMU(2)); SC(0);
5618 
5619         }
5620       break;
5621     case 0xf6:
5622         {
5623           /** 1111 0110			clrw	%0				*/
5624           if (trace)
5625             {
5626               printf ("\033[33m%s\033[0m  %02x\n",
5627                      "/** 1111 0110			clrw	%0				*/",
5628                      op[0]);
5629             }
5630           SYNTAX("clrw	%0");
5631 #line 450 "rl78-decode.opc"
5632           ID(mov); DR(AX); SC(0);
5633 
5634         }
5635       break;
5636     case 0xf7:
5637         {
5638           /** 1111 0111			clrw	%0				*/
5639           if (trace)
5640             {
5641               printf ("\033[33m%s\033[0m  %02x\n",
5642                      "/** 1111 0111			clrw	%0				*/",
5643                      op[0]);
5644             }
5645           SYNTAX("clrw	%0");
5646 #line 453 "rl78-decode.opc"
5647           ID(mov); DR(BC); SC(0);
5648 
5649         /*----------------------------------------------------------------------*/
5650 
5651         }
5652       break;
5653     case 0xf8:
5654         {
5655           /** 1111 1000			mov	%0, %1				*/
5656           if (trace)
5657             {
5658               printf ("\033[33m%s\033[0m  %02x\n",
5659                      "/** 1111 1000			mov	%0, %1				*/",
5660                      op[0]);
5661             }
5662           SYNTAX("mov	%0, %1");
5663 #line 683 "rl78-decode.opc"
5664           ID(mov); DR(C); SM(None, SADDR);
5665 
5666         }
5667       break;
5668     case 0xf9:
5669         {
5670           /** 1111 1001			mov	%0, %e1%!1			*/
5671           if (trace)
5672             {
5673               printf ("\033[33m%s\033[0m  %02x\n",
5674                      "/** 1111 1001			mov	%0, %e1%!1			*/",
5675                      op[0]);
5676             }
5677           SYNTAX("mov	%0, %e1%!1");
5678 #line 680 "rl78-decode.opc"
5679           ID(mov); DR(C); SM(None, IMMU(2));
5680 
5681         }
5682       break;
5683     case 0xfc:
5684         {
5685           /** 1111 1100			call	!%!a0				*/
5686           if (trace)
5687             {
5688               printf ("\033[33m%s\033[0m  %02x\n",
5689                      "/** 1111 1100			call	!%!a0				*/",
5690                      op[0]);
5691             }
5692           SYNTAX("call	!%!a0");
5693 #line 399 "rl78-decode.opc"
5694           ID(call); DC(IMMU(3));
5695 
5696         }
5697       break;
5698     case 0xfd:
5699         {
5700           /** 1111 1101			call	%!a0				*/
5701           if (trace)
5702             {
5703               printf ("\033[33m%s\033[0m  %02x\n",
5704                      "/** 1111 1101			call	%!a0				*/",
5705                      op[0]);
5706             }
5707           SYNTAX("call	%!a0");
5708 #line 402 "rl78-decode.opc"
5709           ID(call); DC(IMMU(2));
5710 
5711         }
5712       break;
5713     case 0xfe:
5714         {
5715           /** 1111 1110			call	$%!a0				*/
5716           if (trace)
5717             {
5718               printf ("\033[33m%s\033[0m  %02x\n",
5719                      "/** 1111 1110			call	$%!a0				*/",
5720                      op[0]);
5721             }
5722           SYNTAX("call	$%!a0");
5723 #line 405 "rl78-decode.opc"
5724           ID(call); DC(pc+IMMS(2)+3);
5725 
5726         }
5727       break;
5728     case 0xff:
5729         {
5730           /** 1111 1111			brk1					*/
5731           if (trace)
5732             {
5733               printf ("\033[33m%s\033[0m  %02x\n",
5734                      "/** 1111 1111			brk1					*/",
5735                      op[0]);
5736             }
5737           SYNTAX("brk1");
5738 #line 363 "rl78-decode.opc"
5739           ID(break);
5740 
5741         }
5742       break;
5743   }
5744 #line 1265 "rl78-decode.opc"
5745 
5746   return rl78->n_bytes;
5747 }
5748