1 #line 1 "msp430-decode.opc"
3 /* Copyright (C) 2013-2018 Free Software Foundation, Inc.
4 Contributed by Red Hat.
7 This file is part of the GNU opcodes library.
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)
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.
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. */
29 #include "opcode/msp430-decode.h"
35 MSP430_Opcode_Decoded
*msp430
;
36 int (*getbyte
)(void *);
43 #define AU ATTRIBUTE_UNUSED
44 #define GETBYTE() getbyte_swapped (ld)
45 #define B ((unsigned long) GETBYTE ())
48 getbyte_swapped (LocalData
*ld
)
52 if (ld
->op_ptr
== ld
->msp430
->n_bytes
)
56 b
= ld
->getbyte (ld
->ptr
);
57 ld
->op
[(ld
->msp430
->n_bytes
++)^1] = b
;
59 while (ld
->msp430
->n_bytes
& 1);
61 return ld
->op
[ld
->op_ptr
++];
64 #define ID(x) msp430->id = x
66 #define OP(n, t, r, a) (msp430->op[n].type = t, \
67 msp430->op[n].reg = r, \
68 msp430->op[n].addend = a)
70 #define OPX(n, t, r1, r2, a) \
71 (msp430->op[n].type = t, \
72 msp430->op[n].reg = r1, \
73 msp430->op[n].reg2 = r2, \
74 msp430->op[n].addend = a)
76 #define SYNTAX(x) msp430->syntax = x
77 #define UNSUPPORTED() msp430->syntax = "*unknown*"
79 #define DC(c) OP (0, MSP430_Operand_Immediate, 0, c)
80 #define DR(r) OP (0, MSP430_Operand_Register, r, 0)
81 #define DM(r, a) OP (0, MSP430_Operand_Indirect, r, a)
82 #define DA(a) OP (0, MSP430_Operand_Indirect, MSR_None, a)
83 #define AD(r, ad) encode_ad (r, ad, ld, 0)
84 #define ADX(r, ad, x) encode_ad (r, ad, ld, x)
86 #define SC(c) OP (1, MSP430_Operand_Immediate, 0, c)
87 #define SR(r) OP (1, MSP430_Operand_Register, r, 0)
88 #define SM(r, a) OP (1, MSP430_Operand_Indirect, r, a)
89 #define SA(a) OP (1, MSP430_Operand_Indirect, MSR_None, a)
90 #define SI(r) OP (1, MSP430_Operand_Indirect_Postinc, r, 0)
91 #define AS(r, as) encode_as (r, as, ld, 0)
92 #define ASX(r, as, x) encode_as (r, as, ld, x)
94 #define BW(x) msp430->size = (x ? 8 : 16)
95 /* The last 20 is for SWPBX.Z and SXTX.A. */
96 #define ABW(a,x) msp430->size = (a ? ((x ? 8 : 16)) : (x ? 20 : 20))
98 #define IMMU(bytes) immediate (bytes, 0, ld)
99 #define IMMS(bytes) immediate (bytes, 1, ld)
101 /* Helper macros for known status bits settings. */
102 #define F_____ msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0
103 #define F_VNZC msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0x87
104 #define F_0NZC msp430->flags_1 = 0; msp430->flags_0 = 0x80; msp430->flags_set = 0x07
107 /* The chip is little-endian, but GETBYTE byte-swaps words because the
108 decoder is based on 16-bit "words" so *this* logic is big-endian. */
111 immediate (int bytes
, int sign_extend
, LocalData
*ld
)
119 if (sign_extend
&& (i
& 0x80))
125 if (sign_extend
&& (i
& 0x8000))
132 if (sign_extend
&& (i
& 0x800000))
140 if (sign_extend
&& (i
& 0x80000000ULL
))
145 "Programmer error: immediate() called with invalid byte count %d\n",
156 01 X(Rn) Sym - X(abs) #1
158 11 (Rn++) #imm - #8 #-1
162 1 X(Rn) Sym - X(abs) - */
165 encode_ad (int reg
, int ad
, LocalData
*ld
, int ext
)
167 MSP430_Opcode_Decoded
*msp430
= ld
->msp430
;
171 int x
= IMMU(2) | (ext
<< 16);
174 case 0: /* (PC) -> Symbolic. */
175 DA (x
+ ld
->pc
+ ld
->op_ptr
- 2);
177 case 2: /* (SR) -> Absolute. */
192 encode_as (int reg
, int as
, LocalData
*ld
, int ext
)
194 MSP430_Opcode_Decoded
*msp430
= ld
->msp430
;
213 case 0: /* PC -> Symbolic. */
214 x
= IMMU(2) | (ext
<< 16);
215 SA (x
+ ld
->pc
+ ld
->op_ptr
- 2);
217 case 2: /* SR -> Absolute. */
218 x
= IMMU(2) | (ext
<< 16);
225 x
= IMMU(2) | (ext
<< 16);
252 /* This fetch *is* the *PC++ that the opcode encodes :-) */
253 x
= IMMU(2) | (ext
<< 16);
272 encode_rep_zc (int srxt
, int dsxt
, LocalData
*ld
)
274 MSP430_Opcode_Decoded
*msp430
= ld
->msp430
;
276 msp430
->repeat_reg
= srxt
& 1;
277 msp430
->repeats
= dsxt
;
278 msp430
->zc
= (srxt
& 2) ? 1 : 0;
281 #define REPZC(s,d) encode_rep_zc (s, d, ld)
284 dopc_to_id (int dopc
)
288 case 4: return MSO_mov
;
289 case 5: return MSO_add
;
290 case 6: return MSO_addc
;
291 case 7: return MSO_subc
;
292 case 8: return MSO_sub
;
293 case 9: return MSO_cmp
;
294 case 10: return MSO_dadd
;
295 case 11: return MSO_bit
;
296 case 12: return MSO_bic
;
297 case 13: return MSO_bis
;
298 case 14: return MSO_xor
;
299 case 15: return MSO_and
;
300 default: return MSO_unknown
;
305 sopc_to_id (int sop
, int c
)
309 case 0: return MSO_rrc
;
310 case 1: return MSO_swpb
;
311 case 2: return MSO_rra
;
312 case 3: return MSO_sxt
;
313 case 4: return MSO_push
;
314 case 5: return MSO_call
;
315 case 6: return MSO_reti
;
316 default: return MSO_unknown
;
321 msp430_decode_opcode (unsigned long pc
,
322 MSP430_Opcode_Decoded
*msp430
,
323 int (*getbyte
)(void *),
326 LocalData lds
, *ld
= &lds
;
327 unsigned char op_buf
[20] = {0};
328 unsigned char *op
= op_buf
;
331 int srxt_bits
, dsxt_bits
;
334 lds
.getbyte
= getbyte
;
340 memset (msp430
, 0, sizeof (*msp430
));
342 /* These are overridden by an extension word. */
350 /* 430X extention word. */
352 switch (op
[0] & 0xff)
356 switch (op
[1] & 0xf0)
361 /** 0000 srcr 0000 dstr MOVA @%1, %0 */
362 #line 439 "msp430-decode.opc"
363 int srcr AU
= op
[0] & 0x0f;
364 #line 439 "msp430-decode.opc"
365 int dstr AU
= op
[1] & 0x0f;
368 printf ("\033[33m%s\033[0m %02x %02x\n",
369 "/** 0000 srcr 0000 dstr MOVA @%1, %0 */",
371 printf (" srcr = 0x%x,", srcr
);
372 printf (" dstr = 0x%x\n", dstr
);
374 SYNTAX("MOVA @%1, %0");
375 #line 439 "msp430-decode.opc"
376 ID (MSO_mov
); SM (srcr
, 0); DR (dstr
);
378 msp430
->ofs_430x
= 1;
385 /** 0000 srcr 0001 dstr MOVA @%1+, %0 */
386 #line 444 "msp430-decode.opc"
387 int srcr AU
= op
[0] & 0x0f;
388 #line 444 "msp430-decode.opc"
389 int dstr AU
= op
[1] & 0x0f;
392 printf ("\033[33m%s\033[0m %02x %02x\n",
393 "/** 0000 srcr 0001 dstr MOVA @%1+, %0 */",
395 printf (" srcr = 0x%x,", srcr
);
396 printf (" dstr = 0x%x\n", dstr
);
398 SYNTAX("MOVA @%1+, %0");
399 #line 444 "msp430-decode.opc"
400 ID (MSO_mov
); SI (srcr
); DR (dstr
);
402 msp430
->ofs_430x
= 1;
409 /** 0000 srcr 0010 dstr MOVA &%1, %0 */
410 #line 449 "msp430-decode.opc"
411 int srcr AU
= op
[0] & 0x0f;
412 #line 449 "msp430-decode.opc"
413 int dstr AU
= op
[1] & 0x0f;
416 printf ("\033[33m%s\033[0m %02x %02x\n",
417 "/** 0000 srcr 0010 dstr MOVA &%1, %0 */",
419 printf (" srcr = 0x%x,", srcr
);
420 printf (" dstr = 0x%x\n", dstr
);
422 SYNTAX("MOVA &%1, %0");
423 #line 449 "msp430-decode.opc"
424 ID (MSO_mov
); SA ((srcr
<< 16) + IMMU(2)); DR (dstr
);
426 msp430
->ofs_430x
= 1;
433 /** 0000 srcr 0011 dstr MOVA %1, %0 */
434 #line 454 "msp430-decode.opc"
435 int srcr AU
= op
[0] & 0x0f;
436 #line 454 "msp430-decode.opc"
437 int dstr AU
= op
[1] & 0x0f;
440 printf ("\033[33m%s\033[0m %02x %02x\n",
441 "/** 0000 srcr 0011 dstr MOVA %1, %0 */",
443 printf (" srcr = 0x%x,", srcr
);
444 printf (" dstr = 0x%x\n", dstr
);
446 SYNTAX("MOVA %1, %0");
447 #line 454 "msp430-decode.opc"
448 ID (MSO_mov
); SM (srcr
, IMMS(2)); DR (dstr
);
450 msp430
->ofs_430x
= 1;
458 /** 0000 bt00 010w dstr RRCM.A %c, %0 */
459 #line 521 "msp430-decode.opc"
460 int bt AU
= (op
[0] >> 2) & 0x03;
461 #line 521 "msp430-decode.opc"
462 int w AU
= (op
[1] >> 4) & 0x01;
463 #line 521 "msp430-decode.opc"
464 int dstr AU
= op
[1] & 0x0f;
467 printf ("\033[33m%s\033[0m %02x %02x\n",
468 "/** 0000 bt00 010w dstr RRCM.A %c, %0 */",
470 printf (" bt = 0x%x,", bt
);
471 printf (" w = 0x%x,", w
);
472 printf (" dstr = 0x%x\n", dstr
);
474 SYNTAX("RRCM.A %c, %0");
475 #line 521 "msp430-decode.opc"
476 ID (MSO_rrc
); DR (dstr
); SR (dstr
);
477 msp430
->repeats
= bt
;
478 msp430
->size
= w
? 16 : 20;
479 msp430
->ofs_430x
= 1;
487 /** 0000 srcr 0110 dstr MOVA %1, &%0 */
488 #line 459 "msp430-decode.opc"
489 int srcr AU
= op
[0] & 0x0f;
490 #line 459 "msp430-decode.opc"
491 int dstr AU
= op
[1] & 0x0f;
494 printf ("\033[33m%s\033[0m %02x %02x\n",
495 "/** 0000 srcr 0110 dstr MOVA %1, &%0 */",
497 printf (" srcr = 0x%x,", srcr
);
498 printf (" dstr = 0x%x\n", dstr
);
500 SYNTAX("MOVA %1, &%0");
501 #line 459 "msp430-decode.opc"
502 ID (MSO_mov
); SR (srcr
); DA ((dstr
<< 16) + IMMU(2));
504 msp430
->ofs_430x
= 1;
511 /** 0000 srcr 0111 dstr MOVA %1, &%0 */
512 #line 464 "msp430-decode.opc"
513 int srcr AU
= op
[0] & 0x0f;
514 #line 464 "msp430-decode.opc"
515 int dstr AU
= op
[1] & 0x0f;
518 printf ("\033[33m%s\033[0m %02x %02x\n",
519 "/** 0000 srcr 0111 dstr MOVA %1, &%0 */",
521 printf (" srcr = 0x%x,", srcr
);
522 printf (" dstr = 0x%x\n", dstr
);
524 SYNTAX("MOVA %1, &%0");
525 #line 464 "msp430-decode.opc"
526 ID (MSO_mov
); SR (srcr
); DM (dstr
, IMMS(2));
528 msp430
->ofs_430x
= 1;
535 /** 0000 srcr 1000 dstr MOVA %1, %0 */
536 #line 469 "msp430-decode.opc"
537 int srcr AU
= op
[0] & 0x0f;
538 #line 469 "msp430-decode.opc"
539 int dstr AU
= op
[1] & 0x0f;
542 printf ("\033[33m%s\033[0m %02x %02x\n",
543 "/** 0000 srcr 1000 dstr MOVA %1, %0 */",
545 printf (" srcr = 0x%x,", srcr
);
546 printf (" dstr = 0x%x\n", dstr
);
548 SYNTAX("MOVA %1, %0");
549 #line 469 "msp430-decode.opc"
550 ID (MSO_mov
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
552 msp430
->ofs_430x
= 1;
559 /** 0000 srcr 1001 dstr CMPA %1, %0 */
560 #line 474 "msp430-decode.opc"
561 int srcr AU
= op
[0] & 0x0f;
562 #line 474 "msp430-decode.opc"
563 int dstr AU
= op
[1] & 0x0f;
566 printf ("\033[33m%s\033[0m %02x %02x\n",
567 "/** 0000 srcr 1001 dstr CMPA %1, %0 */",
569 printf (" srcr = 0x%x,", srcr
);
570 printf (" dstr = 0x%x\n", dstr
);
572 SYNTAX("CMPA %1, %0");
573 #line 474 "msp430-decode.opc"
574 ID (MSO_cmp
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
576 msp430
->ofs_430x
= 1;
584 /** 0000 srcr 1010 dstr ADDA %1, %0 */
585 #line 480 "msp430-decode.opc"
586 int srcr AU
= op
[0] & 0x0f;
587 #line 480 "msp430-decode.opc"
588 int dstr AU
= op
[1] & 0x0f;
591 printf ("\033[33m%s\033[0m %02x %02x\n",
592 "/** 0000 srcr 1010 dstr ADDA %1, %0 */",
594 printf (" srcr = 0x%x,", srcr
);
595 printf (" dstr = 0x%x\n", dstr
);
597 SYNTAX("ADDA %1, %0");
598 #line 480 "msp430-decode.opc"
599 ID (MSO_add
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
601 msp430
->ofs_430x
= 1;
609 /** 0000 srcr 1011 dstr SUBA %1, %0 */
610 #line 486 "msp430-decode.opc"
611 int srcr AU
= op
[0] & 0x0f;
612 #line 486 "msp430-decode.opc"
613 int dstr AU
= op
[1] & 0x0f;
616 printf ("\033[33m%s\033[0m %02x %02x\n",
617 "/** 0000 srcr 1011 dstr SUBA %1, %0 */",
619 printf (" srcr = 0x%x,", srcr
);
620 printf (" dstr = 0x%x\n", dstr
);
622 SYNTAX("SUBA %1, %0");
623 #line 486 "msp430-decode.opc"
624 ID (MSO_sub
); SC ((srcr
<< 16) + IMMU(2)); DR (dstr
);
626 msp430
->ofs_430x
= 1;
634 /** 0000 srcr 1100 dstr MOVA %1, %0 */
635 #line 498 "msp430-decode.opc"
636 int srcr AU
= op
[0] & 0x0f;
637 #line 498 "msp430-decode.opc"
638 int dstr AU
= op
[1] & 0x0f;
641 printf ("\033[33m%s\033[0m %02x %02x\n",
642 "/** 0000 srcr 1100 dstr MOVA %1, %0 */",
644 printf (" srcr = 0x%x,", srcr
);
645 printf (" dstr = 0x%x\n", dstr
);
647 SYNTAX("MOVA %1, %0");
648 #line 498 "msp430-decode.opc"
649 ID (MSO_mov
); SR (srcr
); DR (dstr
);
651 msp430
->ofs_430x
= 1;
658 /** 0000 srcr 1101 dstr CMPA %1, %0 */
659 #line 503 "msp430-decode.opc"
660 int srcr AU
= op
[0] & 0x0f;
661 #line 503 "msp430-decode.opc"
662 int dstr AU
= op
[1] & 0x0f;
665 printf ("\033[33m%s\033[0m %02x %02x\n",
666 "/** 0000 srcr 1101 dstr CMPA %1, %0 */",
668 printf (" srcr = 0x%x,", srcr
);
669 printf (" dstr = 0x%x\n", dstr
);
671 SYNTAX("CMPA %1, %0");
672 #line 503 "msp430-decode.opc"
673 ID (MSO_cmp
); SR (srcr
); DR (dstr
);
675 msp430
->ofs_430x
= 1;
683 /** 0000 srcr 1110 dstr ADDA %1, %0 */
684 #line 509 "msp430-decode.opc"
685 int srcr AU
= op
[0] & 0x0f;
686 #line 509 "msp430-decode.opc"
687 int dstr AU
= op
[1] & 0x0f;
690 printf ("\033[33m%s\033[0m %02x %02x\n",
691 "/** 0000 srcr 1110 dstr ADDA %1, %0 */",
693 printf (" srcr = 0x%x,", srcr
);
694 printf (" dstr = 0x%x\n", dstr
);
696 SYNTAX("ADDA %1, %0");
697 #line 509 "msp430-decode.opc"
698 ID (MSO_add
); SR (srcr
); DR (dstr
);
700 msp430
->ofs_430x
= 1;
708 /** 0000 srcr 1111 dstr SUBA %1, %0 */
709 #line 515 "msp430-decode.opc"
710 int srcr AU
= op
[0] & 0x0f;
711 #line 515 "msp430-decode.opc"
712 int dstr AU
= op
[1] & 0x0f;
715 printf ("\033[33m%s\033[0m %02x %02x\n",
716 "/** 0000 srcr 1111 dstr SUBA %1, %0 */",
718 printf (" srcr = 0x%x,", srcr
);
719 printf (" dstr = 0x%x\n", dstr
);
721 SYNTAX("SUBA %1, %0");
722 #line 515 "msp430-decode.opc"
723 ID (MSO_sub
); SR (srcr
); DR (dstr
);
725 msp430
->ofs_430x
= 1;
734 switch (op
[1] & 0xf0)
752 /** 0000 bt01 010w dstr RRAM.A %c, %0 */
753 #line 528 "msp430-decode.opc"
754 int bt AU
= (op
[0] >> 2) & 0x03;
755 #line 528 "msp430-decode.opc"
756 int w AU
= (op
[1] >> 4) & 0x01;
757 #line 528 "msp430-decode.opc"
758 int dstr AU
= op
[1] & 0x0f;
761 printf ("\033[33m%s\033[0m %02x %02x\n",
762 "/** 0000 bt01 010w dstr RRAM.A %c, %0 */",
764 printf (" bt = 0x%x,", bt
);
765 printf (" w = 0x%x,", w
);
766 printf (" dstr = 0x%x\n", dstr
);
768 SYNTAX("RRAM.A %c, %0");
769 #line 528 "msp430-decode.opc"
770 ID (MSO_rra
); DR (dstr
); SR (dstr
);
771 msp430
->repeats
= bt
;
772 msp430
->size
= w
? 16 : 20;
773 msp430
->ofs_430x
= 1;
791 goto op_semantics_10
;
794 goto op_semantics_11
;
797 goto op_semantics_12
;
800 goto op_semantics_13
;
803 goto op_semantics_14
;
806 goto op_semantics_15
;
812 switch (op
[1] & 0xf0)
830 /** 0000 bt10 010w dstr RLAM.A %c, %0 */
831 #line 535 "msp430-decode.opc"
832 int bt AU
= (op
[0] >> 2) & 0x03;
833 #line 535 "msp430-decode.opc"
834 int w AU
= (op
[1] >> 4) & 0x01;
835 #line 535 "msp430-decode.opc"
836 int dstr AU
= op
[1] & 0x0f;
839 printf ("\033[33m%s\033[0m %02x %02x\n",
840 "/** 0000 bt10 010w dstr RLAM.A %c, %0 */",
842 printf (" bt = 0x%x,", bt
);
843 printf (" w = 0x%x,", w
);
844 printf (" dstr = 0x%x\n", dstr
);
846 SYNTAX("RLAM.A %c, %0");
847 #line 535 "msp430-decode.opc"
848 ID (MSO_add
); DR (dstr
); SR (dstr
);
849 msp430
->repeats
= bt
;
850 msp430
->size
= w
? 16 : 20;
851 msp430
->ofs_430x
= 1;
869 goto op_semantics_10
;
872 goto op_semantics_11
;
875 goto op_semantics_12
;
878 goto op_semantics_13
;
881 goto op_semantics_14
;
884 goto op_semantics_15
;
890 switch (op
[1] & 0xf0)
908 /** 0000 bt11 010w dstr RRUM.A %c, %0 */
909 #line 542 "msp430-decode.opc"
910 int bt AU
= (op
[0] >> 2) & 0x03;
911 #line 542 "msp430-decode.opc"
912 int w AU
= (op
[1] >> 4) & 0x01;
913 #line 542 "msp430-decode.opc"
914 int dstr AU
= op
[1] & 0x0f;
917 printf ("\033[33m%s\033[0m %02x %02x\n",
918 "/** 0000 bt11 010w dstr RRUM.A %c, %0 */",
920 printf (" bt = 0x%x,", bt
);
921 printf (" w = 0x%x,", w
);
922 printf (" dstr = 0x%x\n", dstr
);
924 SYNTAX("RRUM.A %c, %0");
925 #line 542 "msp430-decode.opc"
926 ID (MSO_rru
); DR (dstr
); SR (dstr
);
927 msp430
->repeats
= bt
;
928 msp430
->size
= w
? 16 : 20;
929 msp430
->ofs_430x
= 1;
947 goto op_semantics_10
;
950 goto op_semantics_11
;
953 goto op_semantics_12
;
956 goto op_semantics_13
;
959 goto op_semantics_14
;
962 goto op_semantics_15
;
968 switch (op
[1] & 0xf0)
999 goto op_semantics_10
;
1002 goto op_semantics_11
;
1005 goto op_semantics_12
;
1008 goto op_semantics_13
;
1011 goto op_semantics_14
;
1014 goto op_semantics_15
;
1020 switch (op
[1] & 0xf0)
1023 goto op_semantics_1
;
1026 goto op_semantics_2
;
1029 goto op_semantics_3
;
1032 goto op_semantics_4
;
1036 goto op_semantics_16
;
1039 goto op_semantics_6
;
1042 goto op_semantics_7
;
1045 goto op_semantics_8
;
1048 goto op_semantics_9
;
1051 goto op_semantics_10
;
1054 goto op_semantics_11
;
1057 goto op_semantics_12
;
1060 goto op_semantics_13
;
1063 goto op_semantics_14
;
1066 goto op_semantics_15
;
1072 switch (op
[1] & 0xf0)
1075 goto op_semantics_1
;
1078 goto op_semantics_2
;
1081 goto op_semantics_3
;
1084 goto op_semantics_4
;
1088 goto op_semantics_17
;
1091 goto op_semantics_6
;
1094 goto op_semantics_7
;
1097 goto op_semantics_8
;
1100 goto op_semantics_9
;
1103 goto op_semantics_10
;
1106 goto op_semantics_11
;
1109 goto op_semantics_12
;
1112 goto op_semantics_13
;
1115 goto op_semantics_14
;
1118 goto op_semantics_15
;
1124 switch (op
[1] & 0xf0)
1127 goto op_semantics_1
;
1130 goto op_semantics_2
;
1133 goto op_semantics_3
;
1136 goto op_semantics_4
;
1140 goto op_semantics_18
;
1143 goto op_semantics_6
;
1146 goto op_semantics_7
;
1149 goto op_semantics_8
;
1152 goto op_semantics_9
;
1155 goto op_semantics_10
;
1158 goto op_semantics_11
;
1161 goto op_semantics_12
;
1164 goto op_semantics_13
;
1167 goto op_semantics_14
;
1170 goto op_semantics_15
;
1176 switch (op
[1] & 0xf0)
1179 goto op_semantics_1
;
1182 goto op_semantics_2
;
1185 goto op_semantics_3
;
1188 goto op_semantics_4
;
1192 goto op_semantics_5
;
1195 goto op_semantics_6
;
1198 goto op_semantics_7
;
1201 goto op_semantics_8
;
1204 goto op_semantics_9
;
1207 goto op_semantics_10
;
1210 goto op_semantics_11
;
1213 goto op_semantics_12
;
1216 goto op_semantics_13
;
1219 goto op_semantics_14
;
1222 goto op_semantics_15
;
1228 switch (op
[1] & 0xf0)
1231 goto op_semantics_1
;
1234 goto op_semantics_2
;
1237 goto op_semantics_3
;
1240 goto op_semantics_4
;
1244 goto op_semantics_16
;
1247 goto op_semantics_6
;
1250 goto op_semantics_7
;
1253 goto op_semantics_8
;
1256 goto op_semantics_9
;
1259 goto op_semantics_10
;
1262 goto op_semantics_11
;
1265 goto op_semantics_12
;
1268 goto op_semantics_13
;
1271 goto op_semantics_14
;
1274 goto op_semantics_15
;
1280 switch (op
[1] & 0xf0)
1283 goto op_semantics_1
;
1286 goto op_semantics_2
;
1289 goto op_semantics_3
;
1292 goto op_semantics_4
;
1296 goto op_semantics_17
;
1299 goto op_semantics_6
;
1302 goto op_semantics_7
;
1305 goto op_semantics_8
;
1308 goto op_semantics_9
;
1311 goto op_semantics_10
;
1314 goto op_semantics_11
;
1317 goto op_semantics_12
;
1320 goto op_semantics_13
;
1323 goto op_semantics_14
;
1326 goto op_semantics_15
;
1332 switch (op
[1] & 0xf0)
1335 goto op_semantics_1
;
1338 goto op_semantics_2
;
1341 goto op_semantics_3
;
1344 goto op_semantics_4
;
1348 goto op_semantics_18
;
1351 goto op_semantics_6
;
1354 goto op_semantics_7
;
1357 goto op_semantics_8
;
1360 goto op_semantics_9
;
1363 goto op_semantics_10
;
1366 goto op_semantics_11
;
1369 goto op_semantics_12
;
1372 goto op_semantics_13
;
1375 goto op_semantics_14
;
1378 goto op_semantics_15
;
1384 switch (op
[1] & 0xf0)
1387 goto op_semantics_1
;
1390 goto op_semantics_2
;
1393 goto op_semantics_3
;
1396 goto op_semantics_4
;
1400 goto op_semantics_5
;
1403 goto op_semantics_6
;
1406 goto op_semantics_7
;
1409 goto op_semantics_8
;
1412 goto op_semantics_9
;
1415 goto op_semantics_10
;
1418 goto op_semantics_11
;
1421 goto op_semantics_12
;
1424 goto op_semantics_13
;
1427 goto op_semantics_14
;
1430 goto op_semantics_15
;
1436 switch (op
[1] & 0xf0)
1439 goto op_semantics_1
;
1442 goto op_semantics_2
;
1445 goto op_semantics_3
;
1448 goto op_semantics_4
;
1452 goto op_semantics_16
;
1455 goto op_semantics_6
;
1458 goto op_semantics_7
;
1461 goto op_semantics_8
;
1464 goto op_semantics_9
;
1467 goto op_semantics_10
;
1470 goto op_semantics_11
;
1473 goto op_semantics_12
;
1476 goto op_semantics_13
;
1479 goto op_semantics_14
;
1482 goto op_semantics_15
;
1488 switch (op
[1] & 0xf0)
1491 goto op_semantics_1
;
1494 goto op_semantics_2
;
1497 goto op_semantics_3
;
1500 goto op_semantics_4
;
1504 goto op_semantics_17
;
1507 goto op_semantics_6
;
1510 goto op_semantics_7
;
1513 goto op_semantics_8
;
1516 goto op_semantics_9
;
1519 goto op_semantics_10
;
1522 goto op_semantics_11
;
1525 goto op_semantics_12
;
1528 goto op_semantics_13
;
1531 goto op_semantics_14
;
1534 goto op_semantics_15
;
1540 switch (op
[1] & 0xf0)
1543 goto op_semantics_1
;
1546 goto op_semantics_2
;
1549 goto op_semantics_3
;
1552 goto op_semantics_4
;
1556 goto op_semantics_18
;
1559 goto op_semantics_6
;
1562 goto op_semantics_7
;
1565 goto op_semantics_8
;
1568 goto op_semantics_9
;
1571 goto op_semantics_10
;
1574 goto op_semantics_11
;
1577 goto op_semantics_12
;
1580 goto op_semantics_13
;
1583 goto op_semantics_14
;
1586 goto op_semantics_15
;
1592 switch (op
[1] & 0x00)
1597 /** 0001 00so c b ad dreg %S%b %1 */
1598 #line 395 "msp430-decode.opc"
1599 int so AU
= op
[0] & 0x03;
1600 #line 395 "msp430-decode.opc"
1601 int c AU
= (op
[1] >> 7) & 0x01;
1602 #line 395 "msp430-decode.opc"
1603 int b AU
= (op
[1] >> 6) & 0x01;
1604 #line 395 "msp430-decode.opc"
1605 int ad AU
= (op
[1] >> 4) & 0x03;
1606 #line 395 "msp430-decode.opc"
1607 int dreg AU
= op
[1] & 0x0f;
1610 printf ("\033[33m%s\033[0m %02x %02x\n",
1611 "/** 0001 00so c b ad dreg %S%b %1 */",
1613 printf (" so = 0x%x,", so
);
1614 printf (" c = 0x%x,", c
);
1615 printf (" b = 0x%x,", b
);
1616 printf (" ad = 0x%x,", ad
);
1617 printf (" dreg = 0x%x\n", dreg
);
1620 #line 395 "msp430-decode.opc"
1622 ID (sopc_to_id (so
,c
)); ASX (dreg
, ad
, srxt_bits
); ABW (al_bit
, b
);
1625 REPZC (srxt_bits
, dsxt_bits
);
1627 /* The helper functions encode for source, but it's
1628 both source and dest, with a few documented exceptions. */
1629 msp430
->op
[0] = msp430
->op
[1];
1631 /* RETI ignores the operand. */
1632 if (msp430
->id
== MSO_reti
)
1633 msp430
->syntax
= "%S";
1637 case MSO_rrc
: F_VNZC
; break;
1638 case MSO_swpb
: F_____
; break;
1639 case MSO_rra
: F_0NZC
; break;
1640 case MSO_sxt
: F_0NZC
; break;
1641 case MSO_push
: F_____
; break;
1642 case MSO_call
: F_____
; break;
1643 case MSO_reti
: F_VNZC
; break;
1647 /* 20xx 0010 0000 ---- ----
1648 3cxx 0011 1100 ---- ----
1649 001j mp-- ---- ----. */
1656 switch (op
[1] & 0x00)
1659 goto op_semantics_19
;
1665 switch (op
[1] & 0x00)
1668 goto op_semantics_19
;
1674 switch (op
[1] & 0xff)
1678 /** 0001 0011 0000 0000 RETI */
1681 printf ("\033[33m%s\033[0m %02x %02x\n",
1682 "/** 0001 0011 0000 0000 RETI */",
1686 #line 549 "msp430-decode.opc"
1689 msp430
->ofs_430x
= 1;
1836 goto op_semantics_19
;
1903 /** 0001 0011 01as dstr CALLA %0 */
1904 #line 554 "msp430-decode.opc"
1905 int as AU
= (op
[1] >> 4) & 0x03;
1906 #line 554 "msp430-decode.opc"
1907 int dstr AU
= op
[1] & 0x0f;
1910 printf ("\033[33m%s\033[0m %02x %02x\n",
1911 "/** 0001 0011 01as dstr CALLA %0 */",
1913 printf (" as = 0x%x,", as
);
1914 printf (" dstr = 0x%x\n", dstr
);
1917 #line 554 "msp430-decode.opc"
1918 ID (MSO_call
); AS (dstr
, as
);
1920 msp430
->ofs_430x
= 1;
1941 /** 0001 0011 1000 extb CALLA %0 */
1942 #line 559 "msp430-decode.opc"
1943 int extb AU
= op
[1] & 0x0f;
1946 printf ("\033[33m%s\033[0m %02x %02x\n",
1947 "/** 0001 0011 1000 extb CALLA %0 */",
1949 printf (" extb = 0x%x\n", extb
);
1952 #line 559 "msp430-decode.opc"
1953 ID (MSO_call
); SA (IMMU(2) | (extb
<< 16));
1955 msp430
->ofs_430x
= 1;
1976 /** 0001 0011 1001 extb CALLA %0 */
1977 #line 564 "msp430-decode.opc"
1978 int extb AU
= op
[1] & 0x0f;
1981 printf ("\033[33m%s\033[0m %02x %02x\n",
1982 "/** 0001 0011 1001 extb CALLA %0 */",
1984 printf (" extb = 0x%x\n", extb
);
1987 #line 564 "msp430-decode.opc"
1988 raddr
= IMMU(2) | (extb
<< 16);
1989 if (raddr
& 0x80000)
1991 ID (MSO_call
); SA (pc
+ raddr
+ msp430
->n_bytes
);
1993 msp430
->ofs_430x
= 1;
2014 /** 0001 0011 1011 extb CALLA %0 */
2015 #line 572 "msp430-decode.opc"
2016 int extb AU
= op
[1] & 0x0f;
2019 printf ("\033[33m%s\033[0m %02x %02x\n",
2020 "/** 0001 0011 1011 extb CALLA %0 */",
2022 printf (" extb = 0x%x\n", extb
);
2025 #line 572 "msp430-decode.opc"
2026 ID (MSO_call
); SC (IMMU(2) | (extb
<< 16));
2028 msp430
->ofs_430x
= 1;
2036 switch (op
[1] & 0x00)
2041 /** 0001 010w bits srcr PUSHM.A %0 */
2042 #line 577 "msp430-decode.opc"
2043 int w AU
= op
[0] & 0x01;
2044 #line 577 "msp430-decode.opc"
2045 int bits AU
= (op
[1] >> 4) & 0x0f;
2046 #line 577 "msp430-decode.opc"
2047 int srcr AU
= op
[1] & 0x0f;
2050 printf ("\033[33m%s\033[0m %02x %02x\n",
2051 "/** 0001 010w bits srcr PUSHM.A %0 */",
2053 printf (" w = 0x%x,", w
);
2054 printf (" bits = 0x%x,", bits
);
2055 printf (" srcr = 0x%x\n", srcr
);
2057 SYNTAX("PUSHM.A %0");
2058 #line 577 "msp430-decode.opc"
2059 ID (MSO_push
); SR (srcr
);
2060 msp430
->size
= w
? 16 : 20;
2061 msp430
->repeats
= bits
;
2062 msp430
->ofs_430x
= 1;
2070 switch (op
[1] & 0x00)
2073 goto op_semantics_20
;
2079 switch (op
[1] & 0x00)
2084 /** 0001 011w bits dstr POPM.A %0 */
2085 #line 583 "msp430-decode.opc"
2086 int w AU
= op
[0] & 0x01;
2087 #line 583 "msp430-decode.opc"
2088 int bits AU
= (op
[1] >> 4) & 0x0f;
2089 #line 583 "msp430-decode.opc"
2090 int dstr AU
= op
[1] & 0x0f;
2093 printf ("\033[33m%s\033[0m %02x %02x\n",
2094 "/** 0001 011w bits dstr POPM.A %0 */",
2096 printf (" w = 0x%x,", w
);
2097 printf (" bits = 0x%x,", bits
);
2098 printf (" dstr = 0x%x\n", dstr
);
2100 SYNTAX("POPM.A %0");
2101 #line 583 "msp430-decode.opc"
2102 ID (MSO_pop
); DR (dstr
);
2103 msp430
->size
= w
? 16 : 20;
2104 msp430
->repeats
= bits
;
2105 msp430
->ofs_430x
= 1;
2113 switch (op
[1] & 0x00)
2116 goto op_semantics_21
;
2122 switch (op
[1] & 0x30)
2127 /** 0001 1srx t l 00 dsxt 430x */
2128 #line 351 "msp430-decode.opc"
2129 int srx AU
= op
[0] & 0x07;
2130 #line 351 "msp430-decode.opc"
2131 int t AU
= (op
[1] >> 7) & 0x01;
2132 #line 351 "msp430-decode.opc"
2133 int l AU
= (op
[1] >> 6) & 0x01;
2134 #line 351 "msp430-decode.opc"
2135 int dsxt AU
= op
[1] & 0x0f;
2138 printf ("\033[33m%s\033[0m %02x %02x\n",
2139 "/** 0001 1srx t l 00 dsxt 430x */",
2141 printf (" srx = 0x%x,", srx
);
2142 printf (" t = 0x%x,", t
);
2143 printf (" l = 0x%x,", l
);
2144 printf (" dsxt = 0x%x\n", dsxt
);
2147 #line 351 "msp430-decode.opc"
2150 srxt_bits
= srx
* 2 + t
;
2152 op
= op_buf
+ lds
.op_ptr
;
2153 msp430
->ofs_430x
= 1;
2154 goto post_extension_word
;
2157 opcode:4 sreg:4 Ad:1 BW:1 As:2 Dreg:4
2160 opcode:9 BW:1 Ad:2 DSreg:4
2163 opcode:3 Cond:3 pcrel:10. */
2165 /* Double-Operand "opcode" fields. */
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] & 0x30)
2227 goto op_semantics_22
;
2229 default: UNSUPPORTED(); break;
2234 switch (op
[1] & 0x30)
2237 goto op_semantics_22
;
2239 default: UNSUPPORTED(); break;
2244 switch (op
[1] & 0x00)
2249 /** 001jmp aa addrlsbs %J %1 */
2250 #line 425 "msp430-decode.opc"
2251 int jmp AU
= (op
[0] >> 2) & 0x07;
2252 #line 425 "msp430-decode.opc"
2253 int aa AU
= op
[0] & 0x03;
2254 #line 425 "msp430-decode.opc"
2255 int addrlsbs AU
= op
[1];
2258 printf ("\033[33m%s\033[0m %02x %02x\n",
2259 "/** 001jmp aa addrlsbs %J %1 */",
2261 printf (" jmp = 0x%x,", jmp
);
2262 printf (" aa = 0x%x,", aa
);
2263 printf (" addrlsbs = 0x%x\n", addrlsbs
);
2266 #line 425 "msp430-decode.opc"
2268 raddr
= (aa
<< 9) | (addrlsbs
<< 1);
2270 raddr
= raddr
- 0x800;
2271 /* This is a pc-relative jump, but we don't use SM because that
2272 would load the target address from the memory at X(PC), not use
2273 PC+X *as* the address. So we use SC to use the address, not the
2274 data at that address. */
2275 ID (MSO_jmp
); SC (pc
+ raddr
+ msp430
->n_bytes
);
2278 /* Extended instructions. */
2286 switch (op
[1] & 0x00)
2289 goto op_semantics_23
;
2295 switch (op
[1] & 0x00)
2298 goto op_semantics_23
;
2304 switch (op
[1] & 0x00)
2307 goto op_semantics_23
;
2313 switch (op
[1] & 0x00)
2316 goto op_semantics_23
;
2322 switch (op
[1] & 0x00)
2325 goto op_semantics_23
;
2331 switch (op
[1] & 0x00)
2334 goto op_semantics_23
;
2340 switch (op
[1] & 0x00)
2343 goto op_semantics_23
;
2349 switch (op
[1] & 0x00)
2352 goto op_semantics_23
;
2358 switch (op
[1] & 0x00)
2361 goto op_semantics_23
;
2367 switch (op
[1] & 0x00)
2370 goto op_semantics_23
;
2376 switch (op
[1] & 0x00)
2379 goto op_semantics_23
;
2385 switch (op
[1] & 0x00)
2388 goto op_semantics_23
;
2394 switch (op
[1] & 0x00)
2397 goto op_semantics_23
;
2403 switch (op
[1] & 0x00)
2406 goto op_semantics_23
;
2412 switch (op
[1] & 0x00)
2415 goto op_semantics_23
;
2421 switch (op
[1] & 0x00)
2424 goto op_semantics_23
;
2430 switch (op
[1] & 0x00)
2433 goto op_semantics_23
;
2439 switch (op
[1] & 0x00)
2442 goto op_semantics_23
;
2448 switch (op
[1] & 0x00)
2451 goto op_semantics_23
;
2457 switch (op
[1] & 0x00)
2460 goto op_semantics_23
;
2466 switch (op
[1] & 0x00)
2469 goto op_semantics_23
;
2475 switch (op
[1] & 0x00)
2478 goto op_semantics_23
;
2484 switch (op
[1] & 0x00)
2487 goto op_semantics_23
;
2493 switch (op
[1] & 0x00)
2496 goto op_semantics_23
;
2502 switch (op
[1] & 0x00)
2505 goto op_semantics_23
;
2511 switch (op
[1] & 0x00)
2514 goto op_semantics_23
;
2520 switch (op
[1] & 0x00)
2523 goto op_semantics_23
;
2529 switch (op
[1] & 0x00)
2532 goto op_semantics_23
;
2538 switch (op
[1] & 0x00)
2541 goto op_semantics_23
;
2547 switch (op
[1] & 0x00)
2550 goto op_semantics_23
;
2556 switch (op
[1] & 0x00)
2559 goto op_semantics_23
;
2565 switch (op
[1] & 0x00)
2570 /** dopc sreg a b as dreg %D%b %1,%0 */
2571 #line 372 "msp430-decode.opc"
2572 int dopc AU
= (op
[0] >> 4) & 0x0f;
2573 #line 372 "msp430-decode.opc"
2574 int sreg AU
= op
[0] & 0x0f;
2575 #line 372 "msp430-decode.opc"
2576 int a AU
= (op
[1] >> 7) & 0x01;
2577 #line 372 "msp430-decode.opc"
2578 int b AU
= (op
[1] >> 6) & 0x01;
2579 #line 372 "msp430-decode.opc"
2580 int as AU
= (op
[1] >> 4) & 0x03;
2581 #line 372 "msp430-decode.opc"
2582 int dreg AU
= op
[1] & 0x0f;
2585 printf ("\033[33m%s\033[0m %02x %02x\n",
2586 "/** dopc sreg a b as dreg %D%b %1,%0 */",
2588 printf (" dopc = 0x%x,", dopc
);
2589 printf (" sreg = 0x%x,", sreg
);
2590 printf (" a = 0x%x,", a
);
2591 printf (" b = 0x%x,", b
);
2592 printf (" as = 0x%x,", as
);
2593 printf (" dreg = 0x%x\n", dreg
);
2595 SYNTAX("%D%b %1,%0");
2596 #line 372 "msp430-decode.opc"
2598 ID (dopc_to_id (dopc
)); ASX (sreg
, as
, srxt_bits
); ADX (dreg
, a
, dsxt_bits
); ABW (al_bit
, b
);
2599 if (a
== 0 && as
== 0)
2600 REPZC (srxt_bits
, dsxt_bits
);
2604 case MSO_mov
: F_____
; break;
2605 case MSO_add
: F_VNZC
; break;
2606 case MSO_addc
: F_VNZC
; break;
2607 case MSO_subc
: F_VNZC
; break;
2608 case MSO_sub
: F_VNZC
; break;
2609 case MSO_cmp
: F_VNZC
; break;
2610 case MSO_dadd
: F_VNZC
; break;
2611 case MSO_bit
: F_0NZC
; break;
2612 case MSO_bic
: F_____
; break;
2613 case MSO_bis
: F_____
; break;
2614 case MSO_xor
: F_VNZC
; break;
2615 case MSO_and
: F_0NZC
; break;
2625 switch (op
[1] & 0x00)
2628 goto op_semantics_24
;
2634 switch (op
[1] & 0x00)
2637 goto op_semantics_24
;
2643 switch (op
[1] & 0x00)
2646 goto op_semantics_24
;
2652 switch (op
[1] & 0x00)
2655 goto op_semantics_24
;
2661 switch (op
[1] & 0x00)
2664 goto op_semantics_24
;
2670 switch (op
[1] & 0x00)
2673 goto op_semantics_24
;
2679 switch (op
[1] & 0x00)
2682 goto op_semantics_24
;
2688 switch (op
[1] & 0x00)
2691 goto op_semantics_24
;
2697 switch (op
[1] & 0x00)
2700 goto op_semantics_24
;
2706 switch (op
[1] & 0x00)
2709 goto op_semantics_24
;
2715 switch (op
[1] & 0x00)
2718 goto op_semantics_24
;
2724 switch (op
[1] & 0x00)
2727 goto op_semantics_24
;
2733 switch (op
[1] & 0x00)
2736 goto op_semantics_24
;
2742 switch (op
[1] & 0x00)
2745 goto op_semantics_24
;
2751 switch (op
[1] & 0x00)
2754 goto op_semantics_24
;
2760 switch (op
[1] & 0x00)
2763 goto op_semantics_24
;
2769 switch (op
[1] & 0x00)
2772 goto op_semantics_24
;
2778 switch (op
[1] & 0x00)
2781 goto op_semantics_24
;
2787 switch (op
[1] & 0x00)
2790 goto op_semantics_24
;
2796 switch (op
[1] & 0x00)
2799 goto op_semantics_24
;
2805 switch (op
[1] & 0x00)
2808 goto op_semantics_24
;
2814 switch (op
[1] & 0x00)
2817 goto op_semantics_24
;
2823 switch (op
[1] & 0x00)
2826 goto op_semantics_24
;
2832 switch (op
[1] & 0x00)
2835 goto op_semantics_24
;
2841 switch (op
[1] & 0x00)
2844 goto op_semantics_24
;
2850 switch (op
[1] & 0x00)
2853 goto op_semantics_24
;
2859 switch (op
[1] & 0x00)
2862 goto op_semantics_24
;
2868 switch (op
[1] & 0x00)
2871 goto op_semantics_24
;
2877 switch (op
[1] & 0x00)
2880 goto op_semantics_24
;
2886 switch (op
[1] & 0x00)
2889 goto op_semantics_24
;
2895 switch (op
[1] & 0x00)
2898 goto op_semantics_24
;
2904 switch (op
[1] & 0x00)
2907 goto op_semantics_24
;
2913 switch (op
[1] & 0x00)
2916 goto op_semantics_24
;
2922 switch (op
[1] & 0x00)
2925 goto op_semantics_24
;
2931 switch (op
[1] & 0x00)
2934 goto op_semantics_24
;
2940 switch (op
[1] & 0x00)
2943 goto op_semantics_24
;
2949 switch (op
[1] & 0x00)
2952 goto op_semantics_24
;
2958 switch (op
[1] & 0x00)
2961 goto op_semantics_24
;
2967 switch (op
[1] & 0x00)
2970 goto op_semantics_24
;
2976 switch (op
[1] & 0x00)
2979 goto op_semantics_24
;
2985 switch (op
[1] & 0x00)
2988 goto op_semantics_24
;
2994 switch (op
[1] & 0x00)
2997 goto op_semantics_24
;
3003 switch (op
[1] & 0x00)
3006 goto op_semantics_24
;
3012 switch (op
[1] & 0x00)
3015 goto op_semantics_24
;
3021 switch (op
[1] & 0x00)
3024 goto op_semantics_24
;
3030 switch (op
[1] & 0x00)
3033 goto op_semantics_24
;
3039 switch (op
[1] & 0x00)
3042 goto op_semantics_24
;
3048 switch (op
[1] & 0x00)
3051 goto op_semantics_24
;
3057 switch (op
[1] & 0x00)
3060 goto op_semantics_24
;
3066 switch (op
[1] & 0x00)
3069 goto op_semantics_24
;
3075 switch (op
[1] & 0x00)
3078 goto op_semantics_24
;
3084 switch (op
[1] & 0x00)
3087 goto op_semantics_24
;
3093 switch (op
[1] & 0x00)
3096 goto op_semantics_24
;
3102 switch (op
[1] & 0x00)
3105 goto op_semantics_24
;
3111 switch (op
[1] & 0x00)
3114 goto op_semantics_24
;
3120 switch (op
[1] & 0x00)
3123 goto op_semantics_24
;
3129 switch (op
[1] & 0x00)
3132 goto op_semantics_24
;
3138 switch (op
[1] & 0x00)
3141 goto op_semantics_24
;
3147 switch (op
[1] & 0x00)
3150 goto op_semantics_24
;
3156 switch (op
[1] & 0x00)
3159 goto op_semantics_24
;
3165 switch (op
[1] & 0x00)
3168 goto op_semantics_24
;
3174 switch (op
[1] & 0x00)
3177 goto op_semantics_24
;
3183 switch (op
[1] & 0x00)
3186 goto op_semantics_24
;
3192 switch (op
[1] & 0x00)
3195 goto op_semantics_24
;
3201 switch (op
[1] & 0x00)
3204 goto op_semantics_24
;
3210 switch (op
[1] & 0x00)
3213 goto op_semantics_24
;
3219 switch (op
[1] & 0x00)
3222 goto op_semantics_24
;
3228 switch (op
[1] & 0x00)
3231 goto op_semantics_24
;
3237 switch (op
[1] & 0x00)
3240 goto op_semantics_24
;
3246 switch (op
[1] & 0x00)
3249 goto op_semantics_24
;
3255 switch (op
[1] & 0x00)
3258 goto op_semantics_24
;
3264 switch (op
[1] & 0x00)
3267 goto op_semantics_24
;
3273 switch (op
[1] & 0x00)
3276 goto op_semantics_24
;
3282 switch (op
[1] & 0x00)
3285 goto op_semantics_24
;
3291 switch (op
[1] & 0x00)
3294 goto op_semantics_24
;
3300 switch (op
[1] & 0x00)
3303 goto op_semantics_24
;
3309 switch (op
[1] & 0x00)
3312 goto op_semantics_24
;
3318 switch (op
[1] & 0x00)
3321 goto op_semantics_24
;
3327 switch (op
[1] & 0x00)
3330 goto op_semantics_24
;
3336 switch (op
[1] & 0x00)
3339 goto op_semantics_24
;
3345 switch (op
[1] & 0x00)
3348 goto op_semantics_24
;
3354 switch (op
[1] & 0x00)
3357 goto op_semantics_24
;
3363 switch (op
[1] & 0x00)
3366 goto op_semantics_24
;
3372 switch (op
[1] & 0x00)
3375 goto op_semantics_24
;
3381 switch (op
[1] & 0x00)
3384 goto op_semantics_24
;
3390 switch (op
[1] & 0x00)
3393 goto op_semantics_24
;
3399 switch (op
[1] & 0x00)
3402 goto op_semantics_24
;
3408 switch (op
[1] & 0x00)
3411 goto op_semantics_24
;
3417 switch (op
[1] & 0x00)
3420 goto op_semantics_24
;
3426 switch (op
[1] & 0x00)
3429 goto op_semantics_24
;
3435 switch (op
[1] & 0x00)
3438 goto op_semantics_24
;
3444 switch (op
[1] & 0x00)
3447 goto op_semantics_24
;
3453 switch (op
[1] & 0x00)
3456 goto op_semantics_24
;
3462 switch (op
[1] & 0x00)
3465 goto op_semantics_24
;
3471 switch (op
[1] & 0x00)
3474 goto op_semantics_24
;
3480 switch (op
[1] & 0x00)
3483 goto op_semantics_24
;
3489 switch (op
[1] & 0x00)
3492 goto op_semantics_24
;
3498 switch (op
[1] & 0x00)
3501 goto op_semantics_24
;
3507 switch (op
[1] & 0x00)
3510 goto op_semantics_24
;
3516 switch (op
[1] & 0x00)
3519 goto op_semantics_24
;
3525 switch (op
[1] & 0x00)
3528 goto op_semantics_24
;
3534 switch (op
[1] & 0x00)
3537 goto op_semantics_24
;
3543 switch (op
[1] & 0x00)
3546 goto op_semantics_24
;
3552 switch (op
[1] & 0x00)
3555 goto op_semantics_24
;
3561 switch (op
[1] & 0x00)
3564 goto op_semantics_24
;
3570 switch (op
[1] & 0x00)
3573 goto op_semantics_24
;
3579 switch (op
[1] & 0x00)
3582 goto op_semantics_24
;
3588 switch (op
[1] & 0x00)
3591 goto op_semantics_24
;
3597 switch (op
[1] & 0x00)
3600 goto op_semantics_24
;
3606 switch (op
[1] & 0x00)
3609 goto op_semantics_24
;
3615 switch (op
[1] & 0x00)
3618 goto op_semantics_24
;
3624 switch (op
[1] & 0x00)
3627 goto op_semantics_24
;
3633 switch (op
[1] & 0x00)
3636 goto op_semantics_24
;
3642 switch (op
[1] & 0x00)
3645 goto op_semantics_24
;
3651 switch (op
[1] & 0x00)
3654 goto op_semantics_24
;
3660 switch (op
[1] & 0x00)
3663 goto op_semantics_24
;
3669 switch (op
[1] & 0x00)
3672 goto op_semantics_24
;
3678 switch (op
[1] & 0x00)
3681 goto op_semantics_24
;
3687 switch (op
[1] & 0x00)
3690 goto op_semantics_24
;
3696 switch (op
[1] & 0x00)
3699 goto op_semantics_24
;
3705 switch (op
[1] & 0x00)
3708 goto op_semantics_24
;
3714 switch (op
[1] & 0x00)
3717 goto op_semantics_24
;
3723 switch (op
[1] & 0x00)
3726 goto op_semantics_24
;
3732 switch (op
[1] & 0x00)
3735 goto op_semantics_24
;
3741 switch (op
[1] & 0x00)
3744 goto op_semantics_24
;
3750 switch (op
[1] & 0x00)
3753 goto op_semantics_24
;
3759 switch (op
[1] & 0x00)
3762 goto op_semantics_24
;
3768 switch (op
[1] & 0x00)
3771 goto op_semantics_24
;
3777 switch (op
[1] & 0x00)
3780 goto op_semantics_24
;
3786 switch (op
[1] & 0x00)
3789 goto op_semantics_24
;
3795 switch (op
[1] & 0x00)
3798 goto op_semantics_24
;
3804 switch (op
[1] & 0x00)
3807 goto op_semantics_24
;
3813 switch (op
[1] & 0x00)
3816 goto op_semantics_24
;
3822 switch (op
[1] & 0x00)
3825 goto op_semantics_24
;
3831 switch (op
[1] & 0x00)
3834 goto op_semantics_24
;
3840 switch (op
[1] & 0x00)
3843 goto op_semantics_24
;
3849 switch (op
[1] & 0x00)
3852 goto op_semantics_24
;
3858 switch (op
[1] & 0x00)
3861 goto op_semantics_24
;
3867 switch (op
[1] & 0x00)
3870 goto op_semantics_24
;
3876 switch (op
[1] & 0x00)
3879 goto op_semantics_24
;
3885 switch (op
[1] & 0x00)
3888 goto op_semantics_24
;
3894 switch (op
[1] & 0x00)
3897 goto op_semantics_24
;
3903 switch (op
[1] & 0x00)
3906 goto op_semantics_24
;
3912 switch (op
[1] & 0x00)
3915 goto op_semantics_24
;
3921 switch (op
[1] & 0x00)
3924 goto op_semantics_24
;
3930 switch (op
[1] & 0x00)
3933 goto op_semantics_24
;
3939 switch (op
[1] & 0x00)
3942 goto op_semantics_24
;
3948 switch (op
[1] & 0x00)
3951 goto op_semantics_24
;
3957 switch (op
[1] & 0x00)
3960 goto op_semantics_24
;
3966 switch (op
[1] & 0x00)
3969 goto op_semantics_24
;
3975 switch (op
[1] & 0x00)
3978 goto op_semantics_24
;
3984 switch (op
[1] & 0x00)
3987 goto op_semantics_24
;
3993 switch (op
[1] & 0x00)
3996 goto op_semantics_24
;
4002 switch (op
[1] & 0x00)
4005 goto op_semantics_24
;
4011 switch (op
[1] & 0x00)
4014 goto op_semantics_24
;
4020 switch (op
[1] & 0x00)
4023 goto op_semantics_24
;
4029 switch (op
[1] & 0x00)
4032 goto op_semantics_24
;
4038 switch (op
[1] & 0x00)
4041 goto op_semantics_24
;
4047 switch (op
[1] & 0x00)
4050 goto op_semantics_24
;
4056 switch (op
[1] & 0x00)
4059 goto op_semantics_24
;
4065 switch (op
[1] & 0x00)
4068 goto op_semantics_24
;
4074 switch (op
[1] & 0x00)
4077 goto op_semantics_24
;
4083 switch (op
[1] & 0x00)
4086 goto op_semantics_24
;
4092 switch (op
[1] & 0x00)
4095 goto op_semantics_24
;
4101 switch (op
[1] & 0x00)
4104 goto op_semantics_24
;
4110 switch (op
[1] & 0x00)
4113 goto op_semantics_24
;
4119 switch (op
[1] & 0x00)
4122 goto op_semantics_24
;
4128 switch (op
[1] & 0x00)
4131 goto op_semantics_24
;
4137 switch (op
[1] & 0x00)
4140 goto op_semantics_24
;
4146 switch (op
[1] & 0x00)
4149 goto op_semantics_24
;
4155 switch (op
[1] & 0x00)
4158 goto op_semantics_24
;
4164 switch (op
[1] & 0x00)
4167 goto op_semantics_24
;
4173 switch (op
[1] & 0x00)
4176 goto op_semantics_24
;
4182 switch (op
[1] & 0x00)
4185 goto op_semantics_24
;
4191 switch (op
[1] & 0x00)
4194 goto op_semantics_24
;
4200 switch (op
[1] & 0x00)
4203 goto op_semantics_24
;
4209 switch (op
[1] & 0x00)
4212 goto op_semantics_24
;
4218 switch (op
[1] & 0x00)
4221 goto op_semantics_24
;
4227 switch (op
[1] & 0x00)
4230 goto op_semantics_24
;
4236 switch (op
[1] & 0x00)
4239 goto op_semantics_24
;
4245 switch (op
[1] & 0x00)
4248 goto op_semantics_24
;
4254 switch (op
[1] & 0x00)
4257 goto op_semantics_24
;
4263 switch (op
[1] & 0x00)
4266 goto op_semantics_24
;
4272 switch (op
[1] & 0x00)
4275 goto op_semantics_24
;
4281 switch (op
[1] & 0x00)
4284 goto op_semantics_24
;
4290 switch (op
[1] & 0x00)
4293 goto op_semantics_24
;
4299 switch (op
[1] & 0x00)
4302 goto op_semantics_24
;
4308 switch (op
[1] & 0x00)
4311 goto op_semantics_24
;
4317 switch (op
[1] & 0x00)
4320 goto op_semantics_24
;
4326 switch (op
[1] & 0x00)
4329 goto op_semantics_24
;
4335 switch (op
[1] & 0x00)
4338 goto op_semantics_24
;
4343 #line 589 "msp430-decode.opc"
4345 return msp430
->n_bytes
;
This page took 0.12736 seconds and 4 git commands to generate.