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