1 #line 1 "msp430-decode.opc"
8 #include "opcode/msp430-decode.h"
14 MSP430_Opcode_Decoded
* msp430
;
15 int (* getbyte
)(void *);
22 #define AU ATTRIBUTE_UNUSED
23 #define GETBYTE() getbyte_swapped (ld)
24 #define B ((unsigned long) GETBYTE ())
27 getbyte_swapped (LocalData
*ld
)
30 if (ld
->op_ptr
== ld
->msp430
->n_bytes
)
33 b
= ld
->getbyte (ld
->ptr
);
34 /*fprintf(stderr, "[\033[32m%02x\033[0m]", b & 0xff);*/
35 ld
->op
[(ld
->msp430
->n_bytes
++)^1] = b
;
36 } while (ld
->msp430
->n_bytes
& 1);
38 return ld
->op
[ld
->op_ptr
++];
41 #define ID(x) msp430->id = x
42 #define OP(n, t, r, a) (msp430->op[n].type = t, \
43 msp430->op[n].reg = r, \
44 msp430->op[n].addend = a)
45 #define OPX(n, t, r1, r2, a) \
46 (msp430->op[n].type = t, \
47 msp430->op[n].reg = r1, \
48 msp430->op[n].reg2 = r2, \
49 msp430->op[n].addend = a)
51 #define SYNTAX(x) msp430->syntax = x
52 #define UNSUPPORTED() \
53 msp430->syntax = "*unknown*"
55 #define DC(c) OP (0, MSP430_Operand_Immediate, 0, c)
56 #define DR(r) OP (0, MSP430_Operand_Register, r, 0)
57 #define DM(r, a) OP (0, MSP430_Operand_Indirect, r, a)
58 #define DA(a) OP (0, MSP430_Operand_Indirect, MSR_None, a)
59 #define AD(r, ad) encode_ad (r, ad, ld, 0)
60 #define ADX(r, ad, x) encode_ad (r, ad, ld, x)
62 #define SC(c) OP (1, MSP430_Operand_Immediate, 0, c)
63 #define SR(r) OP (1, MSP430_Operand_Register, r, 0)
64 #define SM(r, a) OP (1, MSP430_Operand_Indirect, r, a)
65 #define SA(a) OP (1, MSP430_Operand_Indirect, MSR_None, a)
66 #define SI(r) OP (1, MSP430_Operand_Indirect_Postinc, r, 0)
67 #define AS(r, as) encode_as (r, as, ld, 0)
68 #define ASX(r, as, x) encode_as (r, as, ld, x)
70 #define BW(x) msp430->size = (x ? 8 : 16)
71 /* The last 20 is for SWPBX.Z and SXTX.A */
72 #define ABW(a, x) msp430->size = (a ? ((x ? 8 : 16)) : (x ? 20 : 20))
74 #define IMMU(bytes) immediate (bytes, 0, ld)
75 #define IMMS(bytes) immediate (bytes, 1, ld)
77 /* Helper macros for known status bits settings */
78 #define F_____ msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0
79 #define F_VNZC msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0x87
80 #define F_0NZC msp430->flags_1 = 0; msp430->flags_0 = 0x80; msp430->flags_set = 0x07
83 /* The chip is little-endian, but GETBYTE byte-swaps words because the
84 decoder is based on 16-bit "words" so *this* logic is big-endian. */
86 immediate (int bytes
, int sign_extend
, LocalData
* ld
)
94 if (sign_extend
&& (i
& 0x80))
100 if (sign_extend
&& (i
& 0x8000))
107 if (sign_extend
&& (i
& 0x800000))
115 if (sign_extend
&& (i
& 0x80000000ULL
))
119 fprintf (stderr
, "Programmer error: immediate() called with invalid byte count %d\n", bytes
);
122 /*fprintf(stderr, "\033[35mIMM(%d,%d,%#lx)\033[0m", bytes, sign_extend, i);*/
130 01 X(Rn) Sym - X(abs) #1
132 11 (Rn++) #imm - #8 #-1
136 1 X(Rn) Sym - X(abs) -
140 encode_ad (int reg
, int ad
, LocalData
*ld
, int ext
)
142 MSP430_Opcode_Decoded
* msp430
= ld
->msp430
;
144 /*fprintf(stderr, "[\033[31mAD %d R%d\033[0m]", ad, reg);*/
147 int x
= IMMU(2) | (ext
<< 16);
150 case 0: /* (PC) -> Symbolic */
151 DA (x
+ ld
->pc
+ ld
->op_ptr
- 2);
153 case 2: /* (SR) -> Absolute */
168 encode_as (int reg
, int as
, LocalData
*ld
, int ext
)
170 MSP430_Opcode_Decoded
* msp430
= ld
->msp430
;
173 /*fprintf(stderr, "[\033[31mAS %d R%d\033[0m]", as, reg);*/
190 case 0: /* PC -> Symbolic */
191 x
= IMMU(2) | (ext
<< 16);
192 SA (x
+ ld
->pc
+ ld
->op_ptr
- 2);
194 case 2: /* SR -> Absolute */
195 x
= IMMU(2) | (ext
<< 16);
202 x
= IMMU(2) | (ext
<< 16);
228 /* This fetch *is* the *PC++ that the opcode encodes :-) */
229 x
= IMMU(2) | (ext
<< 16);
248 encode_rep_zc (int srxt
, int dsxt
, LocalData
*ld
)
250 MSP430_Opcode_Decoded
* msp430
= ld
->msp430
;
252 msp430
->repeat_reg
= srxt
& 1;
253 msp430
->repeats
= dsxt
;
254 msp430
->zc
= (srxt
& 2) ? 1 : 0;
257 #define REPZC(s,d) encode_rep_zc (s, d, ld)
260 dopc_to_id (int dopc
)
264 case 4: return MSO_mov
;
265 case 5: return MSO_add
;
266 case 6: return MSO_addc
;
267 case 7: return MSO_subc
;
268 case 8: return MSO_sub
;
269 case 9: return MSO_cmp
;
270 case 10: return MSO_dadd
;
271 case 11: return MSO_bit
;
272 case 12: return MSO_bic
;
273 case 13: return MSO_bis
;
274 case 14: return MSO_xor
;
275 case 15: return MSO_and
;
282 sopc_to_id (int sop
,int c
)
286 case 0: return MSO_rrc
;
287 case 1: return MSO_swpb
;
288 case 2: return MSO_rra
;
289 case 3: return MSO_sxt
;
290 case 4: return MSO_push
;
291 case 5: return MSO_call
;
292 case 6: return MSO_reti
;
299 msp430_decode_opcode (unsigned long pc
,
300 MSP430_Opcode_Decoded
* msp430
,
301 int (* getbyte
)(void *),
304 LocalData lds
, * ld
= &lds
;
305 unsigned char op_buf
[20] = {0};
306 unsigned char *op
= op_buf
;
309 int srxt_bits
, dsxt_bits
;
312 lds
.getbyte
= getbyte
;
318 memset (msp430
, 0, sizeof (*msp430
));
320 /* These are overridden by an extension word. */
328 /* 430X extention word. */
330 switch (op
[0] & 0xff)
334 switch (op
[1] & 0xf0)
339 /** 0000 srcr 0000 dstr MOVA @%1, %0 */
340 #line 419 "msp430-decode.opc"
341 int srcr AU
= op
[0] & 0x0f;
342 #line 419 "msp430-decode.opc"
343 int dstr AU
= op
[1] & 0x0f;
346 printf ("\033[33m%s\033[0m %02x %02x\n",
347 "/** 0000 srcr 0000 dstr MOVA @%1, %0 */",
349 printf (" srcr = 0x%x,", srcr
);
350 printf (" dstr = 0x%x\n", dstr
);
352 SYNTAX("MOVA @%1, %0");
353 #line 419 "msp430-decode.opc"
354 ID (MSO_mov
); SM (srcr
, 0); DR (dstr
);
356 msp430
->ofs_430x
= 1;
363 /** 0000 srcr 0001 dstr MOVA @%1+, %0 */
364 #line 424 "msp430-decode.opc"
365 int srcr AU
= op
[0] & 0x0f;
366 #line 424 "msp430-decode.opc"
367 int dstr AU
= op
[1] & 0x0f;
370 printf ("\033[33m%s\033[0m %02x %02x\n",
371 "/** 0000 srcr 0001 dstr MOVA @%1+, %0 */",
373 printf (" srcr = 0x%x,", srcr
);
374 printf (" dstr = 0x%x\n", dstr
);
376 SYNTAX("MOVA @%1+, %0");
377 #line 424 "msp430-decode.opc"
378 ID (MSO_mov
); SI (srcr
); DR (dstr
);
380 msp430
->ofs_430x
= 1;
387 /** 0000 srcr 0010 dstr MOVA &%1, %0 */
388 #line 429 "msp430-decode.opc"
389 int srcr AU
= op
[0] & 0x0f;
390 #line 429 "msp430-decode.opc"
391 int dstr AU
= op
[1] & 0x0f;
394 printf ("\033[33m%s\033[0m %02x %02x\n",
395 "/** 0000 srcr 0010 dstr MOVA &%1, %0 */",
397 printf (" srcr = 0x%x,", srcr
);
398 printf (" dstr = 0x%x\n", dstr
);
400 SYNTAX("MOVA &%1, %0");
401 #line 429 "msp430-decode.opc"
402 ID (MSO_mov
); SA ((srcr
<< 16) + IMMU(2)); DR (dstr
);
404 msp430
->ofs_430x
= 1;
411 /** 0000 srcr 0011 dstr MOVA %1, %0 */
412 #line 434 "msp430-decode.opc"
413 int srcr AU
= op
[0] & 0x0f;
414 #line 434 "msp430-decode.opc"
415 int dstr AU
= op
[1] & 0x0f;
418 printf ("\033[33m%s\033[0m %02x %02x\n",
419 "/** 0000 srcr 0011 dstr MOVA %1, %0 */",
421 printf (" srcr = 0x%x,", srcr
);
422 printf (" dstr = 0x%x\n", dstr
);
424 SYNTAX("MOVA %1, %0");
425 #line 434 "msp430-decode.opc"
426 ID (MSO_mov
); SM (srcr
, IMMS(2)); DR (dstr
);
428 msp430
->ofs_430x
= 1;
436 /** 0000 bt00 010w dstr RRCM.A %c, %0 */
437 #line 501 "msp430-decode.opc"
438 int bt AU
= (op
[0] >> 2) & 0x03;
439 #line 501 "msp430-decode.opc"
440 int w AU
= (op
[1] >> 4) & 0x01;
441 #line 501 "msp430-decode.opc"
442 int dstr AU
= op
[1] & 0x0f;
445 printf ("\033[33m%s\033[0m %02x %02x\n",
446 "/** 0000 bt00 010w dstr RRCM.A %c, %0 */",
448 printf (" bt = 0x%x,", bt
);
449 printf (" w = 0x%x,", w
);
450 printf (" dstr = 0x%x\n", dstr
);
452 SYNTAX("RRCM.A %c, %0");
453 #line 501 "msp430-decode.opc"
454 ID (MSO_rrc
); DR (dstr
); SR (dstr
);
455 msp430
->repeats
= bt
;
456 msp430
->size
= w
? 16 : 20;
457 msp430
->ofs_430x
= 1;
465 /** 0000 srcr 0110 dstr MOVA %1, &%0 */
466 #line 439 "msp430-decode.opc"
467 int srcr AU
= op
[0] & 0x0f;
468 #line 439 "msp430-decode.opc"
469 int dstr AU
= op
[1] & 0x0f;
472 printf ("\033[33m%s\033[0m %02x %02x\n",
473 "/** 0000 srcr 0110 dstr MOVA %1, &%0 */",
475 printf (" srcr = 0x%x,", srcr
);
476 printf (" dstr = 0x%x\n", dstr
);
478 SYNTAX("MOVA %1, &%0");
479 #line 439 "msp430-decode.opc"
480 ID (MSO_mov
); SR (srcr
); DA ((dstr
<< 16) + IMMU(2));
482 msp430
->ofs_430x
= 1;
489 /** 0000 srcr 0111 dstr MOVA %1, &%0 */
490 #line 444 "msp430-decode.opc"
491 int srcr AU
= op
[0] & 0x0f;
492 #line 444 "msp430-decode.opc"
493 int dstr AU
= op
[1] & 0x0f;
496 printf ("\033[33m%s\033[0m %02x %02x\n",
497 "/** 0000 srcr 0111 dstr MOVA %1, &%0 */",
499 printf (" srcr = 0x%x,", srcr
);
500 printf (" dstr = 0x%x\n", dstr
);
502 SYNTAX("MOVA %1, &%0");
503 #line 444 "msp430-decode.opc"
504 ID (MSO_mov
); SR (srcr
); DM (dstr
, IMMS(2));
506 msp430
->ofs_430x
= 1;
513 /** 0000 srcr 1000 dstr MOVA %1, %0 */
514 #line 449 "msp430-decode.opc"
515 int srcr AU
= op
[0] & 0x0f;
516 #line 449 "msp430-decode.opc"
517 int dstr AU
= op
[1] & 0x0f;
520 printf ("\033[33m%s\033[0m %02x %02x\n",
521 "/** 0000 srcr 1000 dstr MOVA %1, %0 */",
523 printf (" srcr = 0x%x,", srcr
);
524 printf (" dstr = 0x%x\n", dstr
);
526 SYNTAX("MOVA %1, %0");
527 #line 449 "msp430-decode.opc"
528 ID (MSO_mov
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
530 msp430
->ofs_430x
= 1;
537 /** 0000 srcr 1001 dstr CMPA %1, %0 */
538 #line 454 "msp430-decode.opc"
539 int srcr AU
= op
[0] & 0x0f;
540 #line 454 "msp430-decode.opc"
541 int dstr AU
= op
[1] & 0x0f;
544 printf ("\033[33m%s\033[0m %02x %02x\n",
545 "/** 0000 srcr 1001 dstr CMPA %1, %0 */",
547 printf (" srcr = 0x%x,", srcr
);
548 printf (" dstr = 0x%x\n", dstr
);
550 SYNTAX("CMPA %1, %0");
551 #line 454 "msp430-decode.opc"
552 ID (MSO_cmp
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
554 msp430
->ofs_430x
= 1;
562 /** 0000 srcr 1010 dstr ADDA %1, %0 */
563 #line 460 "msp430-decode.opc"
564 int srcr AU
= op
[0] & 0x0f;
565 #line 460 "msp430-decode.opc"
566 int dstr AU
= op
[1] & 0x0f;
569 printf ("\033[33m%s\033[0m %02x %02x\n",
570 "/** 0000 srcr 1010 dstr ADDA %1, %0 */",
572 printf (" srcr = 0x%x,", srcr
);
573 printf (" dstr = 0x%x\n", dstr
);
575 SYNTAX("ADDA %1, %0");
576 #line 460 "msp430-decode.opc"
577 ID (MSO_add
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
579 msp430
->ofs_430x
= 1;
587 /** 0000 srcr 1011 dstr SUBA %1, %0 */
588 #line 466 "msp430-decode.opc"
589 int srcr AU
= op
[0] & 0x0f;
590 #line 466 "msp430-decode.opc"
591 int dstr AU
= op
[1] & 0x0f;
594 printf ("\033[33m%s\033[0m %02x %02x\n",
595 "/** 0000 srcr 1011 dstr SUBA %1, %0 */",
597 printf (" srcr = 0x%x,", srcr
);
598 printf (" dstr = 0x%x\n", dstr
);
600 SYNTAX("SUBA %1, %0");
601 #line 466 "msp430-decode.opc"
602 ID (MSO_sub
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
604 msp430
->ofs_430x
= 1;
612 /** 0000 srcr 1100 dstr MOVA %1, %0 */
613 #line 478 "msp430-decode.opc"
614 int srcr AU
= op
[0] & 0x0f;
615 #line 478 "msp430-decode.opc"
616 int dstr AU
= op
[1] & 0x0f;
619 printf ("\033[33m%s\033[0m %02x %02x\n",
620 "/** 0000 srcr 1100 dstr MOVA %1, %0 */",
622 printf (" srcr = 0x%x,", srcr
);
623 printf (" dstr = 0x%x\n", dstr
);
625 SYNTAX("MOVA %1, %0");
626 #line 478 "msp430-decode.opc"
627 ID (MSO_mov
); SR (srcr
); DR (dstr
);
629 msp430
->ofs_430x
= 1;
636 /** 0000 srcr 1101 dstr CMPA %1, %0 */
637 #line 483 "msp430-decode.opc"
638 int srcr AU
= op
[0] & 0x0f;
639 #line 483 "msp430-decode.opc"
640 int dstr AU
= op
[1] & 0x0f;
643 printf ("\033[33m%s\033[0m %02x %02x\n",
644 "/** 0000 srcr 1101 dstr CMPA %1, %0 */",
646 printf (" srcr = 0x%x,", srcr
);
647 printf (" dstr = 0x%x\n", dstr
);
649 SYNTAX("CMPA %1, %0");
650 #line 483 "msp430-decode.opc"
651 ID (MSO_cmp
); SR (srcr
); DR (dstr
);
653 msp430
->ofs_430x
= 1;
661 /** 0000 srcr 1110 dstr ADDA %1, %0 */
662 #line 489 "msp430-decode.opc"
663 int srcr AU
= op
[0] & 0x0f;
664 #line 489 "msp430-decode.opc"
665 int dstr AU
= op
[1] & 0x0f;
668 printf ("\033[33m%s\033[0m %02x %02x\n",
669 "/** 0000 srcr 1110 dstr ADDA %1, %0 */",
671 printf (" srcr = 0x%x,", srcr
);
672 printf (" dstr = 0x%x\n", dstr
);
674 SYNTAX("ADDA %1, %0");
675 #line 489 "msp430-decode.opc"
676 ID (MSO_add
); SR (srcr
); DR (dstr
);
678 msp430
->ofs_430x
= 1;
686 /** 0000 srcr 1111 dstr SUBA %1, %0 */
687 #line 495 "msp430-decode.opc"
688 int srcr AU
= op
[0] & 0x0f;
689 #line 495 "msp430-decode.opc"
690 int dstr AU
= op
[1] & 0x0f;
693 printf ("\033[33m%s\033[0m %02x %02x\n",
694 "/** 0000 srcr 1111 dstr SUBA %1, %0 */",
696 printf (" srcr = 0x%x,", srcr
);
697 printf (" dstr = 0x%x\n", dstr
);
699 SYNTAX("SUBA %1, %0");
700 #line 495 "msp430-decode.opc"
701 ID (MSO_sub
); SR (srcr
); DR (dstr
);
703 msp430
->ofs_430x
= 1;
712 switch (op
[1] & 0xf0)
730 /** 0000 bt01 010w dstr RRAM.A %c, %0 */
731 #line 508 "msp430-decode.opc"
732 int bt AU
= (op
[0] >> 2) & 0x03;
733 #line 508 "msp430-decode.opc"
734 int w AU
= (op
[1] >> 4) & 0x01;
735 #line 508 "msp430-decode.opc"
736 int dstr AU
= op
[1] & 0x0f;
739 printf ("\033[33m%s\033[0m %02x %02x\n",
740 "/** 0000 bt01 010w dstr RRAM.A %c, %0 */",
742 printf (" bt = 0x%x,", bt
);
743 printf (" w = 0x%x,", w
);
744 printf (" dstr = 0x%x\n", dstr
);
746 SYNTAX("RRAM.A %c, %0");
747 #line 508 "msp430-decode.opc"
748 ID (MSO_rra
); DR (dstr
); SR (dstr
);
749 msp430
->repeats
= bt
;
750 msp430
->size
= w
? 16 : 20;
751 msp430
->ofs_430x
= 1;
769 goto op_semantics_10
;
772 goto op_semantics_11
;
775 goto op_semantics_12
;
778 goto op_semantics_13
;
781 goto op_semantics_14
;
784 goto op_semantics_15
;
790 switch (op
[1] & 0xf0)
808 /** 0000 bt10 010w dstr RLAM.A %c, %0 */
809 #line 515 "msp430-decode.opc"
810 int bt AU
= (op
[0] >> 2) & 0x03;
811 #line 515 "msp430-decode.opc"
812 int w AU
= (op
[1] >> 4) & 0x01;
813 #line 515 "msp430-decode.opc"
814 int dstr AU
= op
[1] & 0x0f;
817 printf ("\033[33m%s\033[0m %02x %02x\n",
818 "/** 0000 bt10 010w dstr RLAM.A %c, %0 */",
820 printf (" bt = 0x%x,", bt
);
821 printf (" w = 0x%x,", w
);
822 printf (" dstr = 0x%x\n", dstr
);
824 SYNTAX("RLAM.A %c, %0");
825 #line 515 "msp430-decode.opc"
826 ID (MSO_add
); DR (dstr
); SR (dstr
);
827 msp430
->repeats
= bt
;
828 msp430
->size
= w
? 16 : 20;
829 msp430
->ofs_430x
= 1;
847 goto op_semantics_10
;
850 goto op_semantics_11
;
853 goto op_semantics_12
;
856 goto op_semantics_13
;
859 goto op_semantics_14
;
862 goto op_semantics_15
;
868 switch (op
[1] & 0xf0)
886 /** 0000 bt11 010w dstr RRUM.A %c, %0 */
887 #line 522 "msp430-decode.opc"
888 int bt AU
= (op
[0] >> 2) & 0x03;
889 #line 522 "msp430-decode.opc"
890 int w AU
= (op
[1] >> 4) & 0x01;
891 #line 522 "msp430-decode.opc"
892 int dstr AU
= op
[1] & 0x0f;
895 printf ("\033[33m%s\033[0m %02x %02x\n",
896 "/** 0000 bt11 010w dstr RRUM.A %c, %0 */",
898 printf (" bt = 0x%x,", bt
);
899 printf (" w = 0x%x,", w
);
900 printf (" dstr = 0x%x\n", dstr
);
902 SYNTAX("RRUM.A %c, %0");
903 #line 522 "msp430-decode.opc"
904 ID (MSO_rru
); DR (dstr
); SR (dstr
);
905 msp430
->repeats
= bt
;
906 msp430
->size
= w
? 16 : 20;
907 msp430
->ofs_430x
= 1;
925 goto op_semantics_10
;
928 goto op_semantics_11
;
931 goto op_semantics_12
;
934 goto op_semantics_13
;
937 goto op_semantics_14
;
940 goto op_semantics_15
;
946 switch (op
[1] & 0xf0)
977 goto op_semantics_10
;
980 goto op_semantics_11
;
983 goto op_semantics_12
;
986 goto op_semantics_13
;
989 goto op_semantics_14
;
992 goto op_semantics_15
;
998 switch (op
[1] & 0xf0)
1001 goto op_semantics_1
;
1004 goto op_semantics_2
;
1007 goto op_semantics_3
;
1010 goto op_semantics_4
;
1014 goto op_semantics_16
;
1017 goto op_semantics_6
;
1020 goto op_semantics_7
;
1023 goto op_semantics_8
;
1026 goto op_semantics_9
;
1029 goto op_semantics_10
;
1032 goto op_semantics_11
;
1035 goto op_semantics_12
;
1038 goto op_semantics_13
;
1041 goto op_semantics_14
;
1044 goto op_semantics_15
;
1050 switch (op
[1] & 0xf0)
1053 goto op_semantics_1
;
1056 goto op_semantics_2
;
1059 goto op_semantics_3
;
1062 goto op_semantics_4
;
1066 goto op_semantics_17
;
1069 goto op_semantics_6
;
1072 goto op_semantics_7
;
1075 goto op_semantics_8
;
1078 goto op_semantics_9
;
1081 goto op_semantics_10
;
1084 goto op_semantics_11
;
1087 goto op_semantics_12
;
1090 goto op_semantics_13
;
1093 goto op_semantics_14
;
1096 goto op_semantics_15
;
1102 switch (op
[1] & 0xf0)
1105 goto op_semantics_1
;
1108 goto op_semantics_2
;
1111 goto op_semantics_3
;
1114 goto op_semantics_4
;
1118 goto op_semantics_18
;
1121 goto op_semantics_6
;
1124 goto op_semantics_7
;
1127 goto op_semantics_8
;
1130 goto op_semantics_9
;
1133 goto op_semantics_10
;
1136 goto op_semantics_11
;
1139 goto op_semantics_12
;
1142 goto op_semantics_13
;
1145 goto op_semantics_14
;
1148 goto op_semantics_15
;
1154 switch (op
[1] & 0xf0)
1157 goto op_semantics_1
;
1160 goto op_semantics_2
;
1163 goto op_semantics_3
;
1166 goto op_semantics_4
;
1170 goto op_semantics_5
;
1173 goto op_semantics_6
;
1176 goto op_semantics_7
;
1179 goto op_semantics_8
;
1182 goto op_semantics_9
;
1185 goto op_semantics_10
;
1188 goto op_semantics_11
;
1191 goto op_semantics_12
;
1194 goto op_semantics_13
;
1197 goto op_semantics_14
;
1200 goto op_semantics_15
;
1206 switch (op
[1] & 0xf0)
1209 goto op_semantics_1
;
1212 goto op_semantics_2
;
1215 goto op_semantics_3
;
1218 goto op_semantics_4
;
1222 goto op_semantics_16
;
1225 goto op_semantics_6
;
1228 goto op_semantics_7
;
1231 goto op_semantics_8
;
1234 goto op_semantics_9
;
1237 goto op_semantics_10
;
1240 goto op_semantics_11
;
1243 goto op_semantics_12
;
1246 goto op_semantics_13
;
1249 goto op_semantics_14
;
1252 goto op_semantics_15
;
1258 switch (op
[1] & 0xf0)
1261 goto op_semantics_1
;
1264 goto op_semantics_2
;
1267 goto op_semantics_3
;
1270 goto op_semantics_4
;
1274 goto op_semantics_17
;
1277 goto op_semantics_6
;
1280 goto op_semantics_7
;
1283 goto op_semantics_8
;
1286 goto op_semantics_9
;
1289 goto op_semantics_10
;
1292 goto op_semantics_11
;
1295 goto op_semantics_12
;
1298 goto op_semantics_13
;
1301 goto op_semantics_14
;
1304 goto op_semantics_15
;
1310 switch (op
[1] & 0xf0)
1313 goto op_semantics_1
;
1316 goto op_semantics_2
;
1319 goto op_semantics_3
;
1322 goto op_semantics_4
;
1326 goto op_semantics_18
;
1329 goto op_semantics_6
;
1332 goto op_semantics_7
;
1335 goto op_semantics_8
;
1338 goto op_semantics_9
;
1341 goto op_semantics_10
;
1344 goto op_semantics_11
;
1347 goto op_semantics_12
;
1350 goto op_semantics_13
;
1353 goto op_semantics_14
;
1356 goto op_semantics_15
;
1362 switch (op
[1] & 0xf0)
1365 goto op_semantics_1
;
1368 goto op_semantics_2
;
1371 goto op_semantics_3
;
1374 goto op_semantics_4
;
1378 goto op_semantics_5
;
1381 goto op_semantics_6
;
1384 goto op_semantics_7
;
1387 goto op_semantics_8
;
1390 goto op_semantics_9
;
1393 goto op_semantics_10
;
1396 goto op_semantics_11
;
1399 goto op_semantics_12
;
1402 goto op_semantics_13
;
1405 goto op_semantics_14
;
1408 goto op_semantics_15
;
1414 switch (op
[1] & 0xf0)
1417 goto op_semantics_1
;
1420 goto op_semantics_2
;
1423 goto op_semantics_3
;
1426 goto op_semantics_4
;
1430 goto op_semantics_16
;
1433 goto op_semantics_6
;
1436 goto op_semantics_7
;
1439 goto op_semantics_8
;
1442 goto op_semantics_9
;
1445 goto op_semantics_10
;
1448 goto op_semantics_11
;
1451 goto op_semantics_12
;
1454 goto op_semantics_13
;
1457 goto op_semantics_14
;
1460 goto op_semantics_15
;
1466 switch (op
[1] & 0xf0)
1469 goto op_semantics_1
;
1472 goto op_semantics_2
;
1475 goto op_semantics_3
;
1478 goto op_semantics_4
;
1482 goto op_semantics_17
;
1485 goto op_semantics_6
;
1488 goto op_semantics_7
;
1491 goto op_semantics_8
;
1494 goto op_semantics_9
;
1497 goto op_semantics_10
;
1500 goto op_semantics_11
;
1503 goto op_semantics_12
;
1506 goto op_semantics_13
;
1509 goto op_semantics_14
;
1512 goto op_semantics_15
;
1518 switch (op
[1] & 0xf0)
1521 goto op_semantics_1
;
1524 goto op_semantics_2
;
1527 goto op_semantics_3
;
1530 goto op_semantics_4
;
1534 goto op_semantics_18
;
1537 goto op_semantics_6
;
1540 goto op_semantics_7
;
1543 goto op_semantics_8
;
1546 goto op_semantics_9
;
1549 goto op_semantics_10
;
1552 goto op_semantics_11
;
1555 goto op_semantics_12
;
1558 goto op_semantics_13
;
1561 goto op_semantics_14
;
1564 goto op_semantics_15
;
1570 switch (op
[1] & 0x00)
1575 /** 0001 00so c b ad dreg %S%b %1 */
1576 #line 375 "msp430-decode.opc"
1577 int so AU
= op
[0] & 0x03;
1578 #line 375 "msp430-decode.opc"
1579 int c AU
= (op
[1] >> 7) & 0x01;
1580 #line 375 "msp430-decode.opc"
1581 int b AU
= (op
[1] >> 6) & 0x01;
1582 #line 375 "msp430-decode.opc"
1583 int ad AU
= (op
[1] >> 4) & 0x03;
1584 #line 375 "msp430-decode.opc"
1585 int dreg AU
= op
[1] & 0x0f;
1588 printf ("\033[33m%s\033[0m %02x %02x\n",
1589 "/** 0001 00so c b ad dreg %S%b %1 */",
1591 printf (" so = 0x%x,", so
);
1592 printf (" c = 0x%x,", c
);
1593 printf (" b = 0x%x,", b
);
1594 printf (" ad = 0x%x,", ad
);
1595 printf (" dreg = 0x%x\n", dreg
);
1598 #line 375 "msp430-decode.opc"
1600 ID (sopc_to_id (so
,c
)); ASX (dreg
, ad
, srxt_bits
); ABW (al_bit
, b
);
1603 REPZC (srxt_bits
, dsxt_bits
);
1605 /* the helper functions encode for source, but it's both source and
1606 dest, with a few documented exceptions. */
1607 msp430
->op
[0] = msp430
->op
[1];
1609 /* RETI ignores the operand */
1610 if (msp430
->id
== MSO_reti
)
1611 msp430
->syntax
= "%S";
1615 case MSO_rrc
: F_VNZC
; break;
1616 case MSO_swpb
: F_____
; break;
1617 case MSO_rra
: F_0NZC
; break;
1618 case MSO_sxt
: F_0NZC
; break;
1619 case MSO_push
: F_____
; break;
1620 case MSO_call
: F_____
; break;
1621 case MSO_reti
: F_VNZC
; break;
1625 /* 20xx 0010 0000 ---- ----
1626 3cxx 0011 1100 ---- ----
1627 001j mp-- ---- ---- */
1634 switch (op
[1] & 0x00)
1637 goto op_semantics_19
;
1643 switch (op
[1] & 0x00)
1646 goto op_semantics_19
;
1652 switch (op
[1] & 0xff)
1656 /** 0001 0011 0000 0000 RETI */
1659 printf ("\033[33m%s\033[0m %02x %02x\n",
1660 "/** 0001 0011 0000 0000 RETI */",
1664 #line 529 "msp430-decode.opc"
1667 msp430
->ofs_430x
= 1;
1814 goto op_semantics_19
;
1881 /** 0001 0011 01as dstr CALLA %0 */
1882 #line 534 "msp430-decode.opc"
1883 int as AU
= (op
[1] >> 4) & 0x03;
1884 #line 534 "msp430-decode.opc"
1885 int dstr AU
= op
[1] & 0x0f;
1888 printf ("\033[33m%s\033[0m %02x %02x\n",
1889 "/** 0001 0011 01as dstr CALLA %0 */",
1891 printf (" as = 0x%x,", as
);
1892 printf (" dstr = 0x%x\n", dstr
);
1895 #line 534 "msp430-decode.opc"
1896 ID (MSO_call
); AS (dstr
, as
);
1898 msp430
->ofs_430x
= 1;
1919 /** 0001 0011 1000 extb CALLA %0 */
1920 #line 539 "msp430-decode.opc"
1921 int extb AU
= op
[1] & 0x0f;
1924 printf ("\033[33m%s\033[0m %02x %02x\n",
1925 "/** 0001 0011 1000 extb CALLA %0 */",
1927 printf (" extb = 0x%x\n", extb
);
1930 #line 539 "msp430-decode.opc"
1931 ID (MSO_call
); SA (IMMU(2) | (extb
<< 16));
1933 msp430
->ofs_430x
= 1;
1954 /** 0001 0011 1001 extb CALLA %0 */
1955 #line 544 "msp430-decode.opc"
1956 int extb AU
= op
[1] & 0x0f;
1959 printf ("\033[33m%s\033[0m %02x %02x\n",
1960 "/** 0001 0011 1001 extb CALLA %0 */",
1962 printf (" extb = 0x%x\n", extb
);
1965 #line 544 "msp430-decode.opc"
1966 raddr
= IMMU(2) | (extb
<< 16);
1967 if (raddr
& 0x80000)
1969 ID (MSO_call
); SA (pc
+ raddr
+ msp430
->n_bytes
);
1971 msp430
->ofs_430x
= 1;
1992 /** 0001 0011 1011 extb CALLA %0 */
1993 #line 552 "msp430-decode.opc"
1994 int extb AU
= op
[1] & 0x0f;
1997 printf ("\033[33m%s\033[0m %02x %02x\n",
1998 "/** 0001 0011 1011 extb CALLA %0 */",
2000 printf (" extb = 0x%x\n", extb
);
2003 #line 552 "msp430-decode.opc"
2004 ID (MSO_call
); SC (IMMU(2) | (extb
<< 16));
2006 msp430
->ofs_430x
= 1;
2014 switch (op
[1] & 0x00)
2019 /** 0001 010w bits srcr PUSHM.A %0 */
2020 #line 557 "msp430-decode.opc"
2021 int w AU
= op
[0] & 0x01;
2022 #line 557 "msp430-decode.opc"
2023 int bits AU
= (op
[1] >> 4) & 0x0f;
2024 #line 557 "msp430-decode.opc"
2025 int srcr AU
= op
[1] & 0x0f;
2028 printf ("\033[33m%s\033[0m %02x %02x\n",
2029 "/** 0001 010w bits srcr PUSHM.A %0 */",
2031 printf (" w = 0x%x,", w
);
2032 printf (" bits = 0x%x,", bits
);
2033 printf (" srcr = 0x%x\n", srcr
);
2035 SYNTAX("PUSHM.A %0");
2036 #line 557 "msp430-decode.opc"
2037 ID (MSO_push
); SR (srcr
);
2038 msp430
->size
= w
? 16 : 20;
2039 msp430
->repeats
= bits
;
2040 msp430
->ofs_430x
= 1;
2048 switch (op
[1] & 0x00)
2051 goto op_semantics_20
;
2057 switch (op
[1] & 0x00)
2062 /** 0001 011w bits dstr POPM.A %0 */
2063 #line 563 "msp430-decode.opc"
2064 int w AU
= op
[0] & 0x01;
2065 #line 563 "msp430-decode.opc"
2066 int bits AU
= (op
[1] >> 4) & 0x0f;
2067 #line 563 "msp430-decode.opc"
2068 int dstr AU
= op
[1] & 0x0f;
2071 printf ("\033[33m%s\033[0m %02x %02x\n",
2072 "/** 0001 011w bits dstr POPM.A %0 */",
2074 printf (" w = 0x%x,", w
);
2075 printf (" bits = 0x%x,", bits
);
2076 printf (" dstr = 0x%x\n", dstr
);
2078 SYNTAX("POPM.A %0");
2079 #line 563 "msp430-decode.opc"
2080 ID (MSO_pop
); DR (dstr
);
2081 msp430
->size
= w
? 16 : 20;
2082 msp430
->repeats
= bits
;
2083 msp430
->ofs_430x
= 1;
2091 switch (op
[1] & 0x00)
2094 goto op_semantics_21
;
2100 switch (op
[1] & 0x30)
2105 /** 0001 1srx t l 00 dsxt 430x */
2106 #line 329 "msp430-decode.opc"
2107 int srx AU
= op
[0] & 0x07;
2108 #line 329 "msp430-decode.opc"
2109 int t AU
= (op
[1] >> 7) & 0x01;
2110 #line 329 "msp430-decode.opc"
2111 int l AU
= (op
[1] >> 6) & 0x01;
2112 #line 329 "msp430-decode.opc"
2113 int dsxt AU
= op
[1] & 0x0f;
2116 printf ("\033[33m%s\033[0m %02x %02x\n",
2117 "/** 0001 1srx t l 00 dsxt 430x */",
2119 printf (" srx = 0x%x,", srx
);
2120 printf (" t = 0x%x,", t
);
2121 printf (" l = 0x%x,", l
);
2122 printf (" dsxt = 0x%x\n", dsxt
);
2125 #line 329 "msp430-decode.opc"
2128 srxt_bits
= srx
* 2 + t
;
2130 op
= op_buf
+ lds
.op_ptr
;
2131 msp430
->ofs_430x
= 1;
2132 goto post_extension_word
;
2135 opcode:4 sreg:4 Ad:1 BW:1 As:2 Dreg:4
2138 opcode:9 BW:1 Ad:2 DSreg:4
2141 opcode:3 Cond:3 pcrel:10
2145 /* Double-Operand "opcode" fields */
2149 default: UNSUPPORTED(); break;
2154 switch (op
[1] & 0x30)
2157 goto op_semantics_22
;
2159 default: UNSUPPORTED(); break;
2164 switch (op
[1] & 0x30)
2167 goto op_semantics_22
;
2169 default: UNSUPPORTED(); break;
2174 switch (op
[1] & 0x30)
2177 goto op_semantics_22
;
2179 default: UNSUPPORTED(); break;
2184 switch (op
[1] & 0x30)
2187 goto op_semantics_22
;
2189 default: UNSUPPORTED(); break;
2194 switch (op
[1] & 0x30)
2197 goto op_semantics_22
;
2199 default: UNSUPPORTED(); break;
2204 switch (op
[1] & 0x30)
2207 goto op_semantics_22
;
2209 default: UNSUPPORTED(); break;
2214 switch (op
[1] & 0x30)
2217 goto op_semantics_22
;
2219 default: UNSUPPORTED(); break;
2224 switch (op
[1] & 0x00)
2229 /** 001jmp aa addrlsbs %J %1 */
2230 #line 405 "msp430-decode.opc"
2231 int jmp AU
= (op
[0] >> 2) & 0x07;
2232 #line 405 "msp430-decode.opc"
2233 int aa AU
= op
[0] & 0x03;
2234 #line 405 "msp430-decode.opc"
2235 int addrlsbs AU
= op
[1];
2238 printf ("\033[33m%s\033[0m %02x %02x\n",
2239 "/** 001jmp aa addrlsbs %J %1 */",
2241 printf (" jmp = 0x%x,", jmp
);
2242 printf (" aa = 0x%x,", aa
);
2243 printf (" addrlsbs = 0x%x\n", addrlsbs
);
2246 #line 405 "msp430-decode.opc"
2248 raddr
= (aa
<< 9) | (addrlsbs
<< 1);
2250 raddr
= raddr
- 0x800;
2251 /* This is a pc-relative jump, but we don't use SM because that
2252 would load the target address from the memory at X(PC), not use
2253 PC+X *as* the address. So we use SC to use the address, not the
2254 data at that address. */
2255 ID (MSO_jmp
); SC (pc
+ raddr
+ msp430
->n_bytes
);
2258 /* Extended instructions */
2266 switch (op
[1] & 0x00)
2269 goto op_semantics_23
;
2275 switch (op
[1] & 0x00)
2278 goto op_semantics_23
;
2284 switch (op
[1] & 0x00)
2287 goto op_semantics_23
;
2293 switch (op
[1] & 0x00)
2296 goto op_semantics_23
;
2302 switch (op
[1] & 0x00)
2305 goto op_semantics_23
;
2311 switch (op
[1] & 0x00)
2314 goto op_semantics_23
;
2320 switch (op
[1] & 0x00)
2323 goto op_semantics_23
;
2329 switch (op
[1] & 0x00)
2332 goto op_semantics_23
;
2338 switch (op
[1] & 0x00)
2341 goto op_semantics_23
;
2347 switch (op
[1] & 0x00)
2350 goto op_semantics_23
;
2356 switch (op
[1] & 0x00)
2359 goto op_semantics_23
;
2365 switch (op
[1] & 0x00)
2368 goto op_semantics_23
;
2374 switch (op
[1] & 0x00)
2377 goto op_semantics_23
;
2383 switch (op
[1] & 0x00)
2386 goto op_semantics_23
;
2392 switch (op
[1] & 0x00)
2395 goto op_semantics_23
;
2401 switch (op
[1] & 0x00)
2404 goto op_semantics_23
;
2410 switch (op
[1] & 0x00)
2413 goto op_semantics_23
;
2419 switch (op
[1] & 0x00)
2422 goto op_semantics_23
;
2428 switch (op
[1] & 0x00)
2431 goto op_semantics_23
;
2437 switch (op
[1] & 0x00)
2440 goto op_semantics_23
;
2446 switch (op
[1] & 0x00)
2449 goto op_semantics_23
;
2455 switch (op
[1] & 0x00)
2458 goto op_semantics_23
;
2464 switch (op
[1] & 0x00)
2467 goto op_semantics_23
;
2473 switch (op
[1] & 0x00)
2476 goto op_semantics_23
;
2482 switch (op
[1] & 0x00)
2485 goto op_semantics_23
;
2491 switch (op
[1] & 0x00)
2494 goto op_semantics_23
;
2500 switch (op
[1] & 0x00)
2503 goto op_semantics_23
;
2509 switch (op
[1] & 0x00)
2512 goto op_semantics_23
;
2518 switch (op
[1] & 0x00)
2521 goto op_semantics_23
;
2527 switch (op
[1] & 0x00)
2530 goto op_semantics_23
;
2536 switch (op
[1] & 0x00)
2539 goto op_semantics_23
;
2545 switch (op
[1] & 0x00)
2550 /** dopc sreg a b as dreg %D%b %1,%0 */
2551 #line 352 "msp430-decode.opc"
2552 int dopc AU
= (op
[0] >> 4) & 0x0f;
2553 #line 352 "msp430-decode.opc"
2554 int sreg AU
= op
[0] & 0x0f;
2555 #line 352 "msp430-decode.opc"
2556 int a AU
= (op
[1] >> 7) & 0x01;
2557 #line 352 "msp430-decode.opc"
2558 int b AU
= (op
[1] >> 6) & 0x01;
2559 #line 352 "msp430-decode.opc"
2560 int as AU
= (op
[1] >> 4) & 0x03;
2561 #line 352 "msp430-decode.opc"
2562 int dreg AU
= op
[1] & 0x0f;
2565 printf ("\033[33m%s\033[0m %02x %02x\n",
2566 "/** dopc sreg a b as dreg %D%b %1,%0 */",
2568 printf (" dopc = 0x%x,", dopc
);
2569 printf (" sreg = 0x%x,", sreg
);
2570 printf (" a = 0x%x,", a
);
2571 printf (" b = 0x%x,", b
);
2572 printf (" as = 0x%x,", as
);
2573 printf (" dreg = 0x%x\n", dreg
);
2575 SYNTAX("%D%b %1,%0");
2576 #line 352 "msp430-decode.opc"
2578 ID (dopc_to_id (dopc
)); ASX (sreg
, as
, srxt_bits
); ADX (dreg
, a
, dsxt_bits
); ABW (al_bit
, b
);
2579 if (a
== 0 && as
== 0)
2580 REPZC (srxt_bits
, dsxt_bits
);
2584 case MSO_mov
: F_____
; break;
2585 case MSO_add
: F_VNZC
; break;
2586 case MSO_addc
: F_VNZC
; break;
2587 case MSO_subc
: F_VNZC
; break;
2588 case MSO_sub
: F_VNZC
; break;
2589 case MSO_cmp
: F_VNZC
; break;
2590 case MSO_dadd
: F_VNZC
; break;
2591 case MSO_bit
: F_0NZC
; break;
2592 case MSO_bic
: F_____
; break;
2593 case MSO_bis
: F_____
; break;
2594 case MSO_xor
: F_VNZC
; break;
2595 case MSO_and
: F_0NZC
; break;
2605 switch (op
[1] & 0x00)
2608 goto op_semantics_24
;
2614 switch (op
[1] & 0x00)
2617 goto op_semantics_24
;
2623 switch (op
[1] & 0x00)
2626 goto op_semantics_24
;
2632 switch (op
[1] & 0x00)
2635 goto op_semantics_24
;
2641 switch (op
[1] & 0x00)
2644 goto op_semantics_24
;
2650 switch (op
[1] & 0x00)
2653 goto op_semantics_24
;
2659 switch (op
[1] & 0x00)
2662 goto op_semantics_24
;
2668 switch (op
[1] & 0x00)
2671 goto op_semantics_24
;
2677 switch (op
[1] & 0x00)
2680 goto op_semantics_24
;
2686 switch (op
[1] & 0x00)
2689 goto op_semantics_24
;
2695 switch (op
[1] & 0x00)
2698 goto op_semantics_24
;
2704 switch (op
[1] & 0x00)
2707 goto op_semantics_24
;
2713 switch (op
[1] & 0x00)
2716 goto op_semantics_24
;
2722 switch (op
[1] & 0x00)
2725 goto op_semantics_24
;
2731 switch (op
[1] & 0x00)
2734 goto op_semantics_24
;
2740 switch (op
[1] & 0x00)
2743 goto op_semantics_24
;
2749 switch (op
[1] & 0x00)
2752 goto op_semantics_24
;
2758 switch (op
[1] & 0x00)
2761 goto op_semantics_24
;
2767 switch (op
[1] & 0x00)
2770 goto op_semantics_24
;
2776 switch (op
[1] & 0x00)
2779 goto op_semantics_24
;
2785 switch (op
[1] & 0x00)
2788 goto op_semantics_24
;
2794 switch (op
[1] & 0x00)
2797 goto op_semantics_24
;
2803 switch (op
[1] & 0x00)
2806 goto op_semantics_24
;
2812 switch (op
[1] & 0x00)
2815 goto op_semantics_24
;
2821 switch (op
[1] & 0x00)
2824 goto op_semantics_24
;
2830 switch (op
[1] & 0x00)
2833 goto op_semantics_24
;
2839 switch (op
[1] & 0x00)
2842 goto op_semantics_24
;
2848 switch (op
[1] & 0x00)
2851 goto op_semantics_24
;
2857 switch (op
[1] & 0x00)
2860 goto op_semantics_24
;
2866 switch (op
[1] & 0x00)
2869 goto op_semantics_24
;
2875 switch (op
[1] & 0x00)
2878 goto op_semantics_24
;
2884 switch (op
[1] & 0x00)
2887 goto op_semantics_24
;
2893 switch (op
[1] & 0x00)
2896 goto op_semantics_24
;
2902 switch (op
[1] & 0x00)
2905 goto op_semantics_24
;
2911 switch (op
[1] & 0x00)
2914 goto op_semantics_24
;
2920 switch (op
[1] & 0x00)
2923 goto op_semantics_24
;
2929 switch (op
[1] & 0x00)
2932 goto op_semantics_24
;
2938 switch (op
[1] & 0x00)
2941 goto op_semantics_24
;
2947 switch (op
[1] & 0x00)
2950 goto op_semantics_24
;
2956 switch (op
[1] & 0x00)
2959 goto op_semantics_24
;
2965 switch (op
[1] & 0x00)
2968 goto op_semantics_24
;
2974 switch (op
[1] & 0x00)
2977 goto op_semantics_24
;
2983 switch (op
[1] & 0x00)
2986 goto op_semantics_24
;
2992 switch (op
[1] & 0x00)
2995 goto op_semantics_24
;
3001 switch (op
[1] & 0x00)
3004 goto op_semantics_24
;
3010 switch (op
[1] & 0x00)
3013 goto op_semantics_24
;
3019 switch (op
[1] & 0x00)
3022 goto op_semantics_24
;
3028 switch (op
[1] & 0x00)
3031 goto op_semantics_24
;
3037 switch (op
[1] & 0x00)
3040 goto op_semantics_24
;
3046 switch (op
[1] & 0x00)
3049 goto op_semantics_24
;
3055 switch (op
[1] & 0x00)
3058 goto op_semantics_24
;
3064 switch (op
[1] & 0x00)
3067 goto op_semantics_24
;
3073 switch (op
[1] & 0x00)
3076 goto op_semantics_24
;
3082 switch (op
[1] & 0x00)
3085 goto op_semantics_24
;
3091 switch (op
[1] & 0x00)
3094 goto op_semantics_24
;
3100 switch (op
[1] & 0x00)
3103 goto op_semantics_24
;
3109 switch (op
[1] & 0x00)
3112 goto op_semantics_24
;
3118 switch (op
[1] & 0x00)
3121 goto op_semantics_24
;
3127 switch (op
[1] & 0x00)
3130 goto op_semantics_24
;
3136 switch (op
[1] & 0x00)
3139 goto op_semantics_24
;
3145 switch (op
[1] & 0x00)
3148 goto op_semantics_24
;
3154 switch (op
[1] & 0x00)
3157 goto op_semantics_24
;
3163 switch (op
[1] & 0x00)
3166 goto op_semantics_24
;
3172 switch (op
[1] & 0x00)
3175 goto op_semantics_24
;
3181 switch (op
[1] & 0x00)
3184 goto op_semantics_24
;
3190 switch (op
[1] & 0x00)
3193 goto op_semantics_24
;
3199 switch (op
[1] & 0x00)
3202 goto op_semantics_24
;
3208 switch (op
[1] & 0x00)
3211 goto op_semantics_24
;
3217 switch (op
[1] & 0x00)
3220 goto op_semantics_24
;
3226 switch (op
[1] & 0x00)
3229 goto op_semantics_24
;
3235 switch (op
[1] & 0x00)
3238 goto op_semantics_24
;
3244 switch (op
[1] & 0x00)
3247 goto op_semantics_24
;
3253 switch (op
[1] & 0x00)
3256 goto op_semantics_24
;
3262 switch (op
[1] & 0x00)
3265 goto op_semantics_24
;
3271 switch (op
[1] & 0x00)
3274 goto op_semantics_24
;
3280 switch (op
[1] & 0x00)
3283 goto op_semantics_24
;
3289 switch (op
[1] & 0x00)
3292 goto op_semantics_24
;
3298 switch (op
[1] & 0x00)
3301 goto op_semantics_24
;
3307 switch (op
[1] & 0x00)
3310 goto op_semantics_24
;
3316 switch (op
[1] & 0x00)
3319 goto op_semantics_24
;
3325 switch (op
[1] & 0x00)
3328 goto op_semantics_24
;
3334 switch (op
[1] & 0x00)
3337 goto op_semantics_24
;
3343 switch (op
[1] & 0x00)
3346 goto op_semantics_24
;
3352 switch (op
[1] & 0x00)
3355 goto op_semantics_24
;
3361 switch (op
[1] & 0x00)
3364 goto op_semantics_24
;
3370 switch (op
[1] & 0x00)
3373 goto op_semantics_24
;
3379 switch (op
[1] & 0x00)
3382 goto op_semantics_24
;
3388 switch (op
[1] & 0x00)
3391 goto op_semantics_24
;
3397 switch (op
[1] & 0x00)
3400 goto op_semantics_24
;
3406 switch (op
[1] & 0x00)
3409 goto op_semantics_24
;
3415 switch (op
[1] & 0x00)
3418 goto op_semantics_24
;
3424 switch (op
[1] & 0x00)
3427 goto op_semantics_24
;
3433 switch (op
[1] & 0x00)
3436 goto op_semantics_24
;
3442 switch (op
[1] & 0x00)
3445 goto op_semantics_24
;
3451 switch (op
[1] & 0x00)
3454 goto op_semantics_24
;
3460 switch (op
[1] & 0x00)
3463 goto op_semantics_24
;
3469 switch (op
[1] & 0x00)
3472 goto op_semantics_24
;
3478 switch (op
[1] & 0x00)
3481 goto op_semantics_24
;
3487 switch (op
[1] & 0x00)
3490 goto op_semantics_24
;
3496 switch (op
[1] & 0x00)
3499 goto op_semantics_24
;
3505 switch (op
[1] & 0x00)
3508 goto op_semantics_24
;
3514 switch (op
[1] & 0x00)
3517 goto op_semantics_24
;
3523 switch (op
[1] & 0x00)
3526 goto op_semantics_24
;
3532 switch (op
[1] & 0x00)
3535 goto op_semantics_24
;
3541 switch (op
[1] & 0x00)
3544 goto op_semantics_24
;
3550 switch (op
[1] & 0x00)
3553 goto op_semantics_24
;
3559 switch (op
[1] & 0x00)
3562 goto op_semantics_24
;
3568 switch (op
[1] & 0x00)
3571 goto op_semantics_24
;
3577 switch (op
[1] & 0x00)
3580 goto op_semantics_24
;
3586 switch (op
[1] & 0x00)
3589 goto op_semantics_24
;
3595 switch (op
[1] & 0x00)
3598 goto op_semantics_24
;
3604 switch (op
[1] & 0x00)
3607 goto op_semantics_24
;
3613 switch (op
[1] & 0x00)
3616 goto op_semantics_24
;
3622 switch (op
[1] & 0x00)
3625 goto op_semantics_24
;
3631 switch (op
[1] & 0x00)
3634 goto op_semantics_24
;
3640 switch (op
[1] & 0x00)
3643 goto op_semantics_24
;
3649 switch (op
[1] & 0x00)
3652 goto op_semantics_24
;
3658 switch (op
[1] & 0x00)
3661 goto op_semantics_24
;
3667 switch (op
[1] & 0x00)
3670 goto op_semantics_24
;
3676 switch (op
[1] & 0x00)
3679 goto op_semantics_24
;
3685 switch (op
[1] & 0x00)
3688 goto op_semantics_24
;
3694 switch (op
[1] & 0x00)
3697 goto op_semantics_24
;
3703 switch (op
[1] & 0x00)
3706 goto op_semantics_24
;
3712 switch (op
[1] & 0x00)
3715 goto op_semantics_24
;
3721 switch (op
[1] & 0x00)
3724 goto op_semantics_24
;
3730 switch (op
[1] & 0x00)
3733 goto op_semantics_24
;
3739 switch (op
[1] & 0x00)
3742 goto op_semantics_24
;
3748 switch (op
[1] & 0x00)
3751 goto op_semantics_24
;
3757 switch (op
[1] & 0x00)
3760 goto op_semantics_24
;
3766 switch (op
[1] & 0x00)
3769 goto op_semantics_24
;
3775 switch (op
[1] & 0x00)
3778 goto op_semantics_24
;
3784 switch (op
[1] & 0x00)
3787 goto op_semantics_24
;
3793 switch (op
[1] & 0x00)
3796 goto op_semantics_24
;
3802 switch (op
[1] & 0x00)
3805 goto op_semantics_24
;
3811 switch (op
[1] & 0x00)
3814 goto op_semantics_24
;
3820 switch (op
[1] & 0x00)
3823 goto op_semantics_24
;
3829 switch (op
[1] & 0x00)
3832 goto op_semantics_24
;
3838 switch (op
[1] & 0x00)
3841 goto op_semantics_24
;
3847 switch (op
[1] & 0x00)
3850 goto op_semantics_24
;
3856 switch (op
[1] & 0x00)
3859 goto op_semantics_24
;
3865 switch (op
[1] & 0x00)
3868 goto op_semantics_24
;
3874 switch (op
[1] & 0x00)
3877 goto op_semantics_24
;
3883 switch (op
[1] & 0x00)
3886 goto op_semantics_24
;
3892 switch (op
[1] & 0x00)
3895 goto op_semantics_24
;
3901 switch (op
[1] & 0x00)
3904 goto op_semantics_24
;
3910 switch (op
[1] & 0x00)
3913 goto op_semantics_24
;
3919 switch (op
[1] & 0x00)
3922 goto op_semantics_24
;
3928 switch (op
[1] & 0x00)
3931 goto op_semantics_24
;
3937 switch (op
[1] & 0x00)
3940 goto op_semantics_24
;
3946 switch (op
[1] & 0x00)
3949 goto op_semantics_24
;
3955 switch (op
[1] & 0x00)
3958 goto op_semantics_24
;
3964 switch (op
[1] & 0x00)
3967 goto op_semantics_24
;
3973 switch (op
[1] & 0x00)
3976 goto op_semantics_24
;
3982 switch (op
[1] & 0x00)
3985 goto op_semantics_24
;
3991 switch (op
[1] & 0x00)
3994 goto op_semantics_24
;
4000 switch (op
[1] & 0x00)
4003 goto op_semantics_24
;
4009 switch (op
[1] & 0x00)
4012 goto op_semantics_24
;
4018 switch (op
[1] & 0x00)
4021 goto op_semantics_24
;
4027 switch (op
[1] & 0x00)
4030 goto op_semantics_24
;
4036 switch (op
[1] & 0x00)
4039 goto op_semantics_24
;
4045 switch (op
[1] & 0x00)
4048 goto op_semantics_24
;
4054 switch (op
[1] & 0x00)
4057 goto op_semantics_24
;
4063 switch (op
[1] & 0x00)
4066 goto op_semantics_24
;
4072 switch (op
[1] & 0x00)
4075 goto op_semantics_24
;
4081 switch (op
[1] & 0x00)
4084 goto op_semantics_24
;
4090 switch (op
[1] & 0x00)
4093 goto op_semantics_24
;
4099 switch (op
[1] & 0x00)
4102 goto op_semantics_24
;
4108 switch (op
[1] & 0x00)
4111 goto op_semantics_24
;
4117 switch (op
[1] & 0x00)
4120 goto op_semantics_24
;
4126 switch (op
[1] & 0x00)
4129 goto op_semantics_24
;
4135 switch (op
[1] & 0x00)
4138 goto op_semantics_24
;
4144 switch (op
[1] & 0x00)
4147 goto op_semantics_24
;
4153 switch (op
[1] & 0x00)
4156 goto op_semantics_24
;
4162 switch (op
[1] & 0x00)
4165 goto op_semantics_24
;
4171 switch (op
[1] & 0x00)
4174 goto op_semantics_24
;
4180 switch (op
[1] & 0x00)
4183 goto op_semantics_24
;
4189 switch (op
[1] & 0x00)
4192 goto op_semantics_24
;
4198 switch (op
[1] & 0x00)
4201 goto op_semantics_24
;
4207 switch (op
[1] & 0x00)
4210 goto op_semantics_24
;
4216 switch (op
[1] & 0x00)
4219 goto op_semantics_24
;
4225 switch (op
[1] & 0x00)
4228 goto op_semantics_24
;
4234 switch (op
[1] & 0x00)
4237 goto op_semantics_24
;
4243 switch (op
[1] & 0x00)
4246 goto op_semantics_24
;
4252 switch (op
[1] & 0x00)
4255 goto op_semantics_24
;
4261 switch (op
[1] & 0x00)
4264 goto op_semantics_24
;
4270 switch (op
[1] & 0x00)
4273 goto op_semantics_24
;
4279 switch (op
[1] & 0x00)
4282 goto op_semantics_24
;
4288 switch (op
[1] & 0x00)
4291 goto op_semantics_24
;
4297 switch (op
[1] & 0x00)
4300 goto op_semantics_24
;
4306 switch (op
[1] & 0x00)
4309 goto op_semantics_24
;
4315 switch (op
[1] & 0x00)
4318 goto op_semantics_24
;
4323 #line 569 "msp430-decode.opc"
4325 /*printf("<\033[34m%d\033[0m>", msp430->n_bytes);*/
4326 return msp430
->n_bytes
;
This page took 0.118963 seconds and 4 git commands to generate.