1ede78133Schristos /* DO NOT EDIT! -*- buffer-read-only: t -*- vi:set ro: */
275fd0b74Schristos #line 1 "msp430-decode.opc"
375fd0b74Schristos /* -*- c -*- */
4*e992f068Schristos /* Copyright (C) 2013-2022 Free Software Foundation, Inc.
575fd0b74Schristos Contributed by Red Hat.
675fd0b74Schristos Written by DJ Delorie.
775fd0b74Schristos
875fd0b74Schristos This file is part of the GNU opcodes library.
975fd0b74Schristos
1075fd0b74Schristos This library is free software; you can redistribute it and/or modify
1175fd0b74Schristos it under the terms of the GNU General Public License as published by
1275fd0b74Schristos the Free Software Foundation; either version 3, or (at your option)
1375fd0b74Schristos any later version.
1475fd0b74Schristos
1575fd0b74Schristos It is distributed in the hope that it will be useful, but WITHOUT
1675fd0b74Schristos ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
1775fd0b74Schristos or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
1875fd0b74Schristos License for more details.
1975fd0b74Schristos
2075fd0b74Schristos You should have received a copy of the GNU General Public License
2175fd0b74Schristos along with this program; if not, write to the Free Software
2275fd0b74Schristos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
2375fd0b74Schristos MA 02110-1301, USA. */
2475fd0b74Schristos
2575fd0b74Schristos #include "sysdep.h"
2675fd0b74Schristos #include <stdio.h>
2775fd0b74Schristos #include <stdlib.h>
2875fd0b74Schristos #include <string.h>
29ede78133Schristos #include "bfd.h"
30ede78133Schristos #include "opintl.h"
3175fd0b74Schristos #include "opcode/msp430-decode.h"
3275fd0b74Schristos
3375fd0b74Schristos static int trace = 0;
3475fd0b74Schristos
3575fd0b74Schristos typedef struct
3675fd0b74Schristos {
3775fd0b74Schristos MSP430_Opcode_Decoded *msp430;
3875fd0b74Schristos int (*getbyte)(void *);
3975fd0b74Schristos void *ptr;
4075fd0b74Schristos unsigned char *op;
4175fd0b74Schristos int op_ptr;
4275fd0b74Schristos int pc;
4375fd0b74Schristos } LocalData;
4475fd0b74Schristos
4575fd0b74Schristos #define AU ATTRIBUTE_UNUSED
4675fd0b74Schristos #define GETBYTE() getbyte_swapped (ld)
4775fd0b74Schristos #define B ((unsigned long) GETBYTE ())
4875fd0b74Schristos
4975fd0b74Schristos static int
getbyte_swapped(LocalData * ld)5075fd0b74Schristos getbyte_swapped (LocalData *ld)
5175fd0b74Schristos {
5275fd0b74Schristos int b;
5375fd0b74Schristos
5475fd0b74Schristos if (ld->op_ptr == ld->msp430->n_bytes)
5575fd0b74Schristos {
5675fd0b74Schristos do
5775fd0b74Schristos {
5875fd0b74Schristos b = ld->getbyte (ld->ptr);
5975fd0b74Schristos ld->op [(ld->msp430->n_bytes++)^1] = b;
6075fd0b74Schristos }
6175fd0b74Schristos while (ld->msp430->n_bytes & 1);
6275fd0b74Schristos }
6375fd0b74Schristos return ld->op[ld->op_ptr++];
6475fd0b74Schristos }
6575fd0b74Schristos
6675fd0b74Schristos #define ID(x) msp430->id = x
6775fd0b74Schristos
6875fd0b74Schristos #define OP(n, t, r, a) (msp430->op[n].type = t, \
6975fd0b74Schristos msp430->op[n].reg = r, \
7075fd0b74Schristos msp430->op[n].addend = a)
7175fd0b74Schristos
7275fd0b74Schristos #define OPX(n, t, r1, r2, a) \
7375fd0b74Schristos (msp430->op[n].type = t, \
7475fd0b74Schristos msp430->op[n].reg = r1, \
7575fd0b74Schristos msp430->op[n].reg2 = r2, \
7675fd0b74Schristos msp430->op[n].addend = a)
7775fd0b74Schristos
7875fd0b74Schristos #define SYNTAX(x) msp430->syntax = x
7975fd0b74Schristos #define UNSUPPORTED() msp430->syntax = "*unknown*"
8075fd0b74Schristos
8175fd0b74Schristos #define DC(c) OP (0, MSP430_Operand_Immediate, 0, c)
8275fd0b74Schristos #define DR(r) OP (0, MSP430_Operand_Register, r, 0)
8375fd0b74Schristos #define DM(r, a) OP (0, MSP430_Operand_Indirect, r, a)
8475fd0b74Schristos #define DA(a) OP (0, MSP430_Operand_Indirect, MSR_None, a)
8575fd0b74Schristos #define AD(r, ad) encode_ad (r, ad, ld, 0)
8675fd0b74Schristos #define ADX(r, ad, x) encode_ad (r, ad, ld, x)
8775fd0b74Schristos
8875fd0b74Schristos #define SC(c) OP (1, MSP430_Operand_Immediate, 0, c)
8975fd0b74Schristos #define SR(r) OP (1, MSP430_Operand_Register, r, 0)
9075fd0b74Schristos #define SM(r, a) OP (1, MSP430_Operand_Indirect, r, a)
9175fd0b74Schristos #define SA(a) OP (1, MSP430_Operand_Indirect, MSR_None, a)
9275fd0b74Schristos #define SI(r) OP (1, MSP430_Operand_Indirect_Postinc, r, 0)
9375fd0b74Schristos #define AS(r, as) encode_as (r, as, ld, 0)
9475fd0b74Schristos #define ASX(r, as, x) encode_as (r, as, ld, x)
9575fd0b74Schristos
9675fd0b74Schristos #define BW(x) msp430->size = (x ? 8 : 16)
9775fd0b74Schristos /* The last 20 is for SWPBX.Z and SXTX.A. */
9875fd0b74Schristos #define ABW(a,x) msp430->size = (a ? ((x ? 8 : 16)) : (x ? 20 : 20))
9975fd0b74Schristos
10075fd0b74Schristos #define IMMU(bytes) immediate (bytes, 0, ld)
10175fd0b74Schristos #define IMMS(bytes) immediate (bytes, 1, ld)
10275fd0b74Schristos
10375fd0b74Schristos /* Helper macros for known status bits settings. */
10475fd0b74Schristos #define F_____ msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0
10575fd0b74Schristos #define F_VNZC msp430->flags_1 = msp430->flags_0 = 0; msp430->flags_set = 0x87
10675fd0b74Schristos #define F_0NZC msp430->flags_1 = 0; msp430->flags_0 = 0x80; msp430->flags_set = 0x07
10775fd0b74Schristos
10875fd0b74Schristos
10975fd0b74Schristos /* The chip is little-endian, but GETBYTE byte-swaps words because the
11075fd0b74Schristos decoder is based on 16-bit "words" so *this* logic is big-endian. */
11175fd0b74Schristos
11275fd0b74Schristos static int
immediate(int bytes,int sign_extend,LocalData * ld)11375fd0b74Schristos immediate (int bytes, int sign_extend, LocalData *ld)
11475fd0b74Schristos {
11575fd0b74Schristos unsigned long i = 0;
11675fd0b74Schristos
11775fd0b74Schristos switch (bytes)
11875fd0b74Schristos {
11975fd0b74Schristos case 1:
12075fd0b74Schristos i |= B;
12175fd0b74Schristos if (sign_extend && (i & 0x80))
12275fd0b74Schristos i -= 0x100;
12375fd0b74Schristos break;
12475fd0b74Schristos case 2:
12575fd0b74Schristos i |= B << 8;
12675fd0b74Schristos i |= B;
12775fd0b74Schristos if (sign_extend && (i & 0x8000))
12875fd0b74Schristos i -= 0x10000;
12975fd0b74Schristos break;
13075fd0b74Schristos case 3:
13175fd0b74Schristos i |= B << 16;
13275fd0b74Schristos i |= B << 8;
13375fd0b74Schristos i |= B;
13475fd0b74Schristos if (sign_extend && (i & 0x800000))
13575fd0b74Schristos i -= 0x1000000;
13675fd0b74Schristos break;
13775fd0b74Schristos case 4:
13875fd0b74Schristos i |= B << 24;
13975fd0b74Schristos i |= B << 16;
14075fd0b74Schristos i |= B << 8;
14175fd0b74Schristos i |= B;
14275fd0b74Schristos if (sign_extend && (i & 0x80000000ULL))
14375fd0b74Schristos i -= 0x100000000ULL;
14475fd0b74Schristos break;
14575fd0b74Schristos default:
146ede78133Schristos opcodes_error_handler
147ede78133Schristos (_("internal error: immediate() called with invalid byte count %d"),
14875fd0b74Schristos bytes);
14975fd0b74Schristos abort ();
15075fd0b74Schristos }
15175fd0b74Schristos return i;
15275fd0b74Schristos }
15375fd0b74Schristos
15475fd0b74Schristos /*
15575fd0b74Schristos PC SP SR CG
15675fd0b74Schristos As
15775fd0b74Schristos 00 Rn - - R2 #0
15875fd0b74Schristos 01 X(Rn) Sym - X(abs) #1
15975fd0b74Schristos 10 (Rn) - - #4 #2
16075fd0b74Schristos 11 (Rn++) #imm - #8 #-1
16175fd0b74Schristos
16275fd0b74Schristos Ad
16375fd0b74Schristos 0 Rn - - - -
16475fd0b74Schristos 1 X(Rn) Sym - X(abs) - */
16575fd0b74Schristos
16675fd0b74Schristos static void
encode_ad(int reg,int ad,LocalData * ld,int ext)16775fd0b74Schristos encode_ad (int reg, int ad, LocalData *ld, int ext)
16875fd0b74Schristos {
16975fd0b74Schristos MSP430_Opcode_Decoded *msp430 = ld->msp430;
17075fd0b74Schristos
17175fd0b74Schristos if (ad)
17275fd0b74Schristos {
17375fd0b74Schristos int x = IMMU(2) | (ext << 16);
17475fd0b74Schristos switch (reg)
17575fd0b74Schristos {
17675fd0b74Schristos case 0: /* (PC) -> Symbolic. */
17775fd0b74Schristos DA (x + ld->pc + ld->op_ptr - 2);
17875fd0b74Schristos break;
17975fd0b74Schristos case 2: /* (SR) -> Absolute. */
18075fd0b74Schristos DA (x);
18175fd0b74Schristos break;
18275fd0b74Schristos default:
18375fd0b74Schristos DM (reg, x);
18475fd0b74Schristos break;
18575fd0b74Schristos }
18675fd0b74Schristos }
18775fd0b74Schristos else
18875fd0b74Schristos {
18975fd0b74Schristos DR (reg);
19075fd0b74Schristos }
19175fd0b74Schristos }
19275fd0b74Schristos
19375fd0b74Schristos static void
encode_as(int reg,int as,LocalData * ld,int ext)19475fd0b74Schristos encode_as (int reg, int as, LocalData *ld, int ext)
19575fd0b74Schristos {
19675fd0b74Schristos MSP430_Opcode_Decoded *msp430 = ld->msp430;
19775fd0b74Schristos int x;
19875fd0b74Schristos
19975fd0b74Schristos switch (as)
20075fd0b74Schristos {
20175fd0b74Schristos case 0:
20275fd0b74Schristos switch (reg)
20375fd0b74Schristos {
20475fd0b74Schristos case 3:
20575fd0b74Schristos SC (0);
20675fd0b74Schristos break;
20775fd0b74Schristos default:
20875fd0b74Schristos SR (reg);
20975fd0b74Schristos break;
21075fd0b74Schristos }
21175fd0b74Schristos break;
21275fd0b74Schristos case 1:
21375fd0b74Schristos switch (reg)
21475fd0b74Schristos {
21575fd0b74Schristos case 0: /* PC -> Symbolic. */
21675fd0b74Schristos x = IMMU(2) | (ext << 16);
21775fd0b74Schristos SA (x + ld->pc + ld->op_ptr - 2);
21875fd0b74Schristos break;
21975fd0b74Schristos case 2: /* SR -> Absolute. */
22075fd0b74Schristos x = IMMU(2) | (ext << 16);
22175fd0b74Schristos SA (x);
22275fd0b74Schristos break;
22375fd0b74Schristos case 3:
22475fd0b74Schristos SC (1);
22575fd0b74Schristos break;
22675fd0b74Schristos default:
22775fd0b74Schristos x = IMMU(2) | (ext << 16);
22875fd0b74Schristos SM (reg, x);
22975fd0b74Schristos break;
23075fd0b74Schristos }
23175fd0b74Schristos break;
23275fd0b74Schristos case 2:
23375fd0b74Schristos switch (reg)
23475fd0b74Schristos {
23575fd0b74Schristos case 2:
23675fd0b74Schristos SC (4);
23775fd0b74Schristos break;
23875fd0b74Schristos case 3:
23975fd0b74Schristos SC (2);
24075fd0b74Schristos break;
24175fd0b74Schristos case MSR_None:
24275fd0b74Schristos SA (0);
243ede78133Schristos break;
24475fd0b74Schristos default:
24575fd0b74Schristos SM (reg, 0);
24675fd0b74Schristos break;
24775fd0b74Schristos }
24875fd0b74Schristos break;
24975fd0b74Schristos case 3:
25075fd0b74Schristos switch (reg)
25175fd0b74Schristos {
25275fd0b74Schristos case 0:
25375fd0b74Schristos {
25475fd0b74Schristos /* This fetch *is* the *PC++ that the opcode encodes :-) */
25575fd0b74Schristos x = IMMU(2) | (ext << 16);
25675fd0b74Schristos SC (x);
25775fd0b74Schristos }
25875fd0b74Schristos break;
25975fd0b74Schristos case 2:
26075fd0b74Schristos SC (8);
26175fd0b74Schristos break;
26275fd0b74Schristos case 3:
26375fd0b74Schristos SC (-1);
26475fd0b74Schristos break;
26575fd0b74Schristos default:
26675fd0b74Schristos SI (reg);
26775fd0b74Schristos break;
26875fd0b74Schristos }
26975fd0b74Schristos break;
27075fd0b74Schristos }
27175fd0b74Schristos }
27275fd0b74Schristos
27375fd0b74Schristos static void
encode_rep_zc(int srxt,int dsxt,LocalData * ld)27475fd0b74Schristos encode_rep_zc (int srxt, int dsxt, LocalData *ld)
27575fd0b74Schristos {
27675fd0b74Schristos MSP430_Opcode_Decoded *msp430 = ld->msp430;
27775fd0b74Schristos
27875fd0b74Schristos msp430->repeat_reg = srxt & 1;
27975fd0b74Schristos msp430->repeats = dsxt;
28075fd0b74Schristos msp430->zc = (srxt & 2) ? 1 : 0;
28175fd0b74Schristos }
28275fd0b74Schristos
28375fd0b74Schristos #define REPZC(s,d) encode_rep_zc (s, d, ld)
28475fd0b74Schristos
28575fd0b74Schristos static int
dopc_to_id(int dopc)28675fd0b74Schristos dopc_to_id (int dopc)
28775fd0b74Schristos {
28875fd0b74Schristos switch (dopc)
28975fd0b74Schristos {
29075fd0b74Schristos case 4: return MSO_mov;
29175fd0b74Schristos case 5: return MSO_add;
29275fd0b74Schristos case 6: return MSO_addc;
29375fd0b74Schristos case 7: return MSO_subc;
29475fd0b74Schristos case 8: return MSO_sub;
29575fd0b74Schristos case 9: return MSO_cmp;
29675fd0b74Schristos case 10: return MSO_dadd;
29775fd0b74Schristos case 11: return MSO_bit;
29875fd0b74Schristos case 12: return MSO_bic;
29975fd0b74Schristos case 13: return MSO_bis;
30075fd0b74Schristos case 14: return MSO_xor;
30175fd0b74Schristos case 15: return MSO_and;
30275fd0b74Schristos default: return MSO_unknown;
30375fd0b74Schristos }
30475fd0b74Schristos }
30575fd0b74Schristos
30675fd0b74Schristos static int
sopc_to_id(int sop,int c)30775fd0b74Schristos sopc_to_id (int sop, int c)
30875fd0b74Schristos {
30975fd0b74Schristos switch (sop * 2 + c)
31075fd0b74Schristos {
31175fd0b74Schristos case 0: return MSO_rrc;
31275fd0b74Schristos case 1: return MSO_swpb;
31375fd0b74Schristos case 2: return MSO_rra;
31475fd0b74Schristos case 3: return MSO_sxt;
31575fd0b74Schristos case 4: return MSO_push;
31675fd0b74Schristos case 5: return MSO_call;
31775fd0b74Schristos case 6: return MSO_reti;
31875fd0b74Schristos default: return MSO_unknown;
31975fd0b74Schristos }
32075fd0b74Schristos }
32175fd0b74Schristos
32275fd0b74Schristos int
msp430_decode_opcode(unsigned long pc,MSP430_Opcode_Decoded * msp430,int (* getbyte)(void *),void * ptr)32375fd0b74Schristos msp430_decode_opcode (unsigned long pc,
32475fd0b74Schristos MSP430_Opcode_Decoded *msp430,
32575fd0b74Schristos int (*getbyte)(void *),
32675fd0b74Schristos void *ptr)
32775fd0b74Schristos {
32875fd0b74Schristos LocalData lds, *ld = &lds;
32975fd0b74Schristos unsigned char op_buf[20] = {0};
33075fd0b74Schristos unsigned char *op = op_buf;
33175fd0b74Schristos int raddr;
33275fd0b74Schristos int al_bit;
33375fd0b74Schristos int srxt_bits, dsxt_bits;
33475fd0b74Schristos
33575fd0b74Schristos lds.msp430 = msp430;
33675fd0b74Schristos lds.getbyte = getbyte;
33775fd0b74Schristos lds.ptr = ptr;
33875fd0b74Schristos lds.op = op;
33975fd0b74Schristos lds.op_ptr = 0;
34075fd0b74Schristos lds.pc = pc;
34175fd0b74Schristos
34275fd0b74Schristos memset (msp430, 0, sizeof (*msp430));
34375fd0b74Schristos
34475fd0b74Schristos /* These are overridden by an extension word. */
34575fd0b74Schristos al_bit = 1;
34675fd0b74Schristos srxt_bits = 0;
34775fd0b74Schristos dsxt_bits = 0;
34875fd0b74Schristos
34975fd0b74Schristos post_extension_word:
35075fd0b74Schristos ;
35175fd0b74Schristos
35275fd0b74Schristos /* 430X extention word. */
35375fd0b74Schristos GETBYTE ();
35475fd0b74Schristos switch (op[0] & 0xff)
35575fd0b74Schristos {
35675fd0b74Schristos case 0x00:
35775fd0b74Schristos GETBYTE ();
35875fd0b74Schristos switch (op[1] & 0xf0)
35975fd0b74Schristos {
36075fd0b74Schristos case 0x00:
36175fd0b74Schristos op_semantics_1:
36275fd0b74Schristos {
36375fd0b74Schristos /** 0000 srcr 0000 dstr MOVA @%1, %0 */
364ede78133Schristos #line 440 "msp430-decode.opc"
36575fd0b74Schristos int srcr AU = op[0] & 0x0f;
366ede78133Schristos #line 440 "msp430-decode.opc"
36775fd0b74Schristos int dstr AU = op[1] & 0x0f;
36875fd0b74Schristos if (trace)
36975fd0b74Schristos {
37075fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
37175fd0b74Schristos "/** 0000 srcr 0000 dstr MOVA @%1, %0 */",
37275fd0b74Schristos op[0], op[1]);
37375fd0b74Schristos printf (" srcr = 0x%x,", srcr);
37475fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
37575fd0b74Schristos }
37675fd0b74Schristos SYNTAX("MOVA @%1, %0");
377ede78133Schristos #line 440 "msp430-decode.opc"
37875fd0b74Schristos ID (MSO_mov); SM (srcr, 0); DR (dstr);
37975fd0b74Schristos msp430->size = 20;
38075fd0b74Schristos msp430->ofs_430x = 1;
38175fd0b74Schristos
38275fd0b74Schristos }
38375fd0b74Schristos break;
38475fd0b74Schristos case 0x10:
38575fd0b74Schristos op_semantics_2:
38675fd0b74Schristos {
38775fd0b74Schristos /** 0000 srcr 0001 dstr MOVA @%1+, %0 */
388ede78133Schristos #line 445 "msp430-decode.opc"
38975fd0b74Schristos int srcr AU = op[0] & 0x0f;
390ede78133Schristos #line 445 "msp430-decode.opc"
39175fd0b74Schristos int dstr AU = op[1] & 0x0f;
39275fd0b74Schristos if (trace)
39375fd0b74Schristos {
39475fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
39575fd0b74Schristos "/** 0000 srcr 0001 dstr MOVA @%1+, %0 */",
39675fd0b74Schristos op[0], op[1]);
39775fd0b74Schristos printf (" srcr = 0x%x,", srcr);
39875fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
39975fd0b74Schristos }
40075fd0b74Schristos SYNTAX("MOVA @%1+, %0");
401ede78133Schristos #line 445 "msp430-decode.opc"
40275fd0b74Schristos ID (MSO_mov); SI (srcr); DR (dstr);
40375fd0b74Schristos msp430->size = 20;
40475fd0b74Schristos msp430->ofs_430x = 1;
40575fd0b74Schristos
40675fd0b74Schristos }
40775fd0b74Schristos break;
40875fd0b74Schristos case 0x20:
40975fd0b74Schristos op_semantics_3:
41075fd0b74Schristos {
41175fd0b74Schristos /** 0000 srcr 0010 dstr MOVA &%1, %0 */
412ede78133Schristos #line 450 "msp430-decode.opc"
41375fd0b74Schristos int srcr AU = op[0] & 0x0f;
414ede78133Schristos #line 450 "msp430-decode.opc"
41575fd0b74Schristos int dstr AU = op[1] & 0x0f;
41675fd0b74Schristos if (trace)
41775fd0b74Schristos {
41875fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
41975fd0b74Schristos "/** 0000 srcr 0010 dstr MOVA &%1, %0 */",
42075fd0b74Schristos op[0], op[1]);
42175fd0b74Schristos printf (" srcr = 0x%x,", srcr);
42275fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
42375fd0b74Schristos }
42475fd0b74Schristos SYNTAX("MOVA &%1, %0");
425ede78133Schristos #line 450 "msp430-decode.opc"
42675fd0b74Schristos ID (MSO_mov); SA ((srcr << 16) + IMMU(2)); DR (dstr);
42775fd0b74Schristos msp430->size = 20;
42875fd0b74Schristos msp430->ofs_430x = 1;
42975fd0b74Schristos
43075fd0b74Schristos }
43175fd0b74Schristos break;
43275fd0b74Schristos case 0x30:
43375fd0b74Schristos op_semantics_4:
43475fd0b74Schristos {
43575fd0b74Schristos /** 0000 srcr 0011 dstr MOVA %1, %0 */
436ede78133Schristos #line 455 "msp430-decode.opc"
43775fd0b74Schristos int srcr AU = op[0] & 0x0f;
438ede78133Schristos #line 455 "msp430-decode.opc"
43975fd0b74Schristos int dstr AU = op[1] & 0x0f;
44075fd0b74Schristos if (trace)
44175fd0b74Schristos {
44275fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
44375fd0b74Schristos "/** 0000 srcr 0011 dstr MOVA %1, %0 */",
44475fd0b74Schristos op[0], op[1]);
44575fd0b74Schristos printf (" srcr = 0x%x,", srcr);
44675fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
44775fd0b74Schristos }
44875fd0b74Schristos SYNTAX("MOVA %1, %0");
449ede78133Schristos #line 455 "msp430-decode.opc"
45075fd0b74Schristos ID (MSO_mov); SM (srcr, IMMS(2)); DR (dstr);
45175fd0b74Schristos msp430->size = 20;
45275fd0b74Schristos msp430->ofs_430x = 1;
45375fd0b74Schristos
45475fd0b74Schristos }
45575fd0b74Schristos break;
45675fd0b74Schristos case 0x40:
45775fd0b74Schristos case 0x50:
45875fd0b74Schristos op_semantics_5:
45975fd0b74Schristos {
46075fd0b74Schristos /** 0000 bt00 010w dstr RRCM.A %c, %0 */
461ede78133Schristos #line 522 "msp430-decode.opc"
46275fd0b74Schristos int bt AU = (op[0] >> 2) & 0x03;
463ede78133Schristos #line 522 "msp430-decode.opc"
46475fd0b74Schristos int w AU = (op[1] >> 4) & 0x01;
465ede78133Schristos #line 522 "msp430-decode.opc"
46675fd0b74Schristos int dstr AU = op[1] & 0x0f;
46775fd0b74Schristos if (trace)
46875fd0b74Schristos {
46975fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
47075fd0b74Schristos "/** 0000 bt00 010w dstr RRCM.A %c, %0 */",
47175fd0b74Schristos op[0], op[1]);
47275fd0b74Schristos printf (" bt = 0x%x,", bt);
47375fd0b74Schristos printf (" w = 0x%x,", w);
47475fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
47575fd0b74Schristos }
47675fd0b74Schristos SYNTAX("RRCM.A %c, %0");
477ede78133Schristos #line 522 "msp430-decode.opc"
47875fd0b74Schristos ID (MSO_rrc); DR (dstr); SR (dstr);
47975fd0b74Schristos msp430->repeats = bt;
48075fd0b74Schristos msp430->size = w ? 16 : 20;
48175fd0b74Schristos msp430->ofs_430x = 1;
48275fd0b74Schristos F_0NZC;
48375fd0b74Schristos
48475fd0b74Schristos }
48575fd0b74Schristos break;
48675fd0b74Schristos case 0x60:
48775fd0b74Schristos op_semantics_6:
48875fd0b74Schristos {
48975fd0b74Schristos /** 0000 srcr 0110 dstr MOVA %1, &%0 */
490ede78133Schristos #line 460 "msp430-decode.opc"
49175fd0b74Schristos int srcr AU = op[0] & 0x0f;
492ede78133Schristos #line 460 "msp430-decode.opc"
49375fd0b74Schristos int dstr AU = op[1] & 0x0f;
49475fd0b74Schristos if (trace)
49575fd0b74Schristos {
49675fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
49775fd0b74Schristos "/** 0000 srcr 0110 dstr MOVA %1, &%0 */",
49875fd0b74Schristos op[0], op[1]);
49975fd0b74Schristos printf (" srcr = 0x%x,", srcr);
50075fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
50175fd0b74Schristos }
50275fd0b74Schristos SYNTAX("MOVA %1, &%0");
503ede78133Schristos #line 460 "msp430-decode.opc"
50475fd0b74Schristos ID (MSO_mov); SR (srcr); DA ((dstr << 16) + IMMU(2));
50575fd0b74Schristos msp430->size = 20;
50675fd0b74Schristos msp430->ofs_430x = 1;
50775fd0b74Schristos
50875fd0b74Schristos }
50975fd0b74Schristos break;
51075fd0b74Schristos case 0x70:
51175fd0b74Schristos op_semantics_7:
51275fd0b74Schristos {
51375fd0b74Schristos /** 0000 srcr 0111 dstr MOVA %1, &%0 */
514ede78133Schristos #line 465 "msp430-decode.opc"
51575fd0b74Schristos int srcr AU = op[0] & 0x0f;
516ede78133Schristos #line 465 "msp430-decode.opc"
51775fd0b74Schristos int dstr AU = op[1] & 0x0f;
51875fd0b74Schristos if (trace)
51975fd0b74Schristos {
52075fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
52175fd0b74Schristos "/** 0000 srcr 0111 dstr MOVA %1, &%0 */",
52275fd0b74Schristos op[0], op[1]);
52375fd0b74Schristos printf (" srcr = 0x%x,", srcr);
52475fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
52575fd0b74Schristos }
52675fd0b74Schristos SYNTAX("MOVA %1, &%0");
527ede78133Schristos #line 465 "msp430-decode.opc"
52875fd0b74Schristos ID (MSO_mov); SR (srcr); DM (dstr, IMMS(2));
52975fd0b74Schristos msp430->size = 20;
53075fd0b74Schristos msp430->ofs_430x = 1;
53175fd0b74Schristos
53275fd0b74Schristos }
53375fd0b74Schristos break;
53475fd0b74Schristos case 0x80:
53575fd0b74Schristos op_semantics_8:
53675fd0b74Schristos {
53775fd0b74Schristos /** 0000 srcr 1000 dstr MOVA %1, %0 */
538ede78133Schristos #line 470 "msp430-decode.opc"
53975fd0b74Schristos int srcr AU = op[0] & 0x0f;
540ede78133Schristos #line 470 "msp430-decode.opc"
54175fd0b74Schristos int dstr AU = op[1] & 0x0f;
54275fd0b74Schristos if (trace)
54375fd0b74Schristos {
54475fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
54575fd0b74Schristos "/** 0000 srcr 1000 dstr MOVA %1, %0 */",
54675fd0b74Schristos op[0], op[1]);
54775fd0b74Schristos printf (" srcr = 0x%x,", srcr);
54875fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
54975fd0b74Schristos }
55075fd0b74Schristos SYNTAX("MOVA %1, %0");
551ede78133Schristos #line 470 "msp430-decode.opc"
55275fd0b74Schristos ID (MSO_mov); SC ((srcr << 16) + IMMU(2)); DR (dstr);
55375fd0b74Schristos msp430->size = 20;
55475fd0b74Schristos msp430->ofs_430x = 1;
55575fd0b74Schristos
55675fd0b74Schristos }
55775fd0b74Schristos break;
55875fd0b74Schristos case 0x90:
55975fd0b74Schristos op_semantics_9:
56075fd0b74Schristos {
56175fd0b74Schristos /** 0000 srcr 1001 dstr CMPA %1, %0 */
562ede78133Schristos #line 475 "msp430-decode.opc"
56375fd0b74Schristos int srcr AU = op[0] & 0x0f;
564ede78133Schristos #line 475 "msp430-decode.opc"
56575fd0b74Schristos int dstr AU = op[1] & 0x0f;
56675fd0b74Schristos if (trace)
56775fd0b74Schristos {
56875fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
56975fd0b74Schristos "/** 0000 srcr 1001 dstr CMPA %1, %0 */",
57075fd0b74Schristos op[0], op[1]);
57175fd0b74Schristos printf (" srcr = 0x%x,", srcr);
57275fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
57375fd0b74Schristos }
57475fd0b74Schristos SYNTAX("CMPA %1, %0");
575ede78133Schristos #line 475 "msp430-decode.opc"
57675fd0b74Schristos ID (MSO_cmp); SC ((srcr << 16) + IMMU(2)); DR (dstr);
57775fd0b74Schristos msp430->size = 20;
57875fd0b74Schristos msp430->ofs_430x = 1;
57975fd0b74Schristos F_VNZC;
58075fd0b74Schristos
58175fd0b74Schristos }
58275fd0b74Schristos break;
58375fd0b74Schristos case 0xa0:
58475fd0b74Schristos op_semantics_10:
58575fd0b74Schristos {
58675fd0b74Schristos /** 0000 srcr 1010 dstr ADDA %1, %0 */
587ede78133Schristos #line 481 "msp430-decode.opc"
58875fd0b74Schristos int srcr AU = op[0] & 0x0f;
589ede78133Schristos #line 481 "msp430-decode.opc"
59075fd0b74Schristos int dstr AU = op[1] & 0x0f;
59175fd0b74Schristos if (trace)
59275fd0b74Schristos {
59375fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
59475fd0b74Schristos "/** 0000 srcr 1010 dstr ADDA %1, %0 */",
59575fd0b74Schristos op[0], op[1]);
59675fd0b74Schristos printf (" srcr = 0x%x,", srcr);
59775fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
59875fd0b74Schristos }
59975fd0b74Schristos SYNTAX("ADDA %1, %0");
600ede78133Schristos #line 481 "msp430-decode.opc"
60175fd0b74Schristos ID (MSO_add); SC ((srcr << 16) + IMMU(2)); DR (dstr);
60275fd0b74Schristos msp430->size = 20;
60375fd0b74Schristos msp430->ofs_430x = 1;
60475fd0b74Schristos F_VNZC;
60575fd0b74Schristos
60675fd0b74Schristos }
60775fd0b74Schristos break;
60875fd0b74Schristos case 0xb0:
60975fd0b74Schristos op_semantics_11:
61075fd0b74Schristos {
61175fd0b74Schristos /** 0000 srcr 1011 dstr SUBA %1, %0 */
612ede78133Schristos #line 487 "msp430-decode.opc"
61375fd0b74Schristos int srcr AU = op[0] & 0x0f;
614ede78133Schristos #line 487 "msp430-decode.opc"
61575fd0b74Schristos int dstr AU = op[1] & 0x0f;
61675fd0b74Schristos if (trace)
61775fd0b74Schristos {
61875fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
61975fd0b74Schristos "/** 0000 srcr 1011 dstr SUBA %1, %0 */",
62075fd0b74Schristos op[0], op[1]);
62175fd0b74Schristos printf (" srcr = 0x%x,", srcr);
62275fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
62375fd0b74Schristos }
62475fd0b74Schristos SYNTAX("SUBA %1, %0");
625ede78133Schristos #line 487 "msp430-decode.opc"
62675fd0b74Schristos ID (MSO_sub); SC ((srcr << 16) + IMMU(2)); DR (dstr);
62775fd0b74Schristos msp430->size = 20;
62875fd0b74Schristos msp430->ofs_430x = 1;
62975fd0b74Schristos F_VNZC;
63075fd0b74Schristos
63175fd0b74Schristos }
63275fd0b74Schristos break;
63375fd0b74Schristos case 0xc0:
63475fd0b74Schristos op_semantics_12:
63575fd0b74Schristos {
63675fd0b74Schristos /** 0000 srcr 1100 dstr MOVA %1, %0 */
637ede78133Schristos #line 499 "msp430-decode.opc"
63875fd0b74Schristos int srcr AU = op[0] & 0x0f;
639ede78133Schristos #line 499 "msp430-decode.opc"
64075fd0b74Schristos int dstr AU = op[1] & 0x0f;
64175fd0b74Schristos if (trace)
64275fd0b74Schristos {
64375fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
64475fd0b74Schristos "/** 0000 srcr 1100 dstr MOVA %1, %0 */",
64575fd0b74Schristos op[0], op[1]);
64675fd0b74Schristos printf (" srcr = 0x%x,", srcr);
64775fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
64875fd0b74Schristos }
64975fd0b74Schristos SYNTAX("MOVA %1, %0");
650ede78133Schristos #line 499 "msp430-decode.opc"
65175fd0b74Schristos ID (MSO_mov); SR (srcr); DR (dstr);
65275fd0b74Schristos msp430->size = 20;
65375fd0b74Schristos msp430->ofs_430x = 1;
65475fd0b74Schristos
65575fd0b74Schristos }
65675fd0b74Schristos break;
65775fd0b74Schristos case 0xd0:
65875fd0b74Schristos op_semantics_13:
65975fd0b74Schristos {
66075fd0b74Schristos /** 0000 srcr 1101 dstr CMPA %1, %0 */
661ede78133Schristos #line 504 "msp430-decode.opc"
66275fd0b74Schristos int srcr AU = op[0] & 0x0f;
663ede78133Schristos #line 504 "msp430-decode.opc"
66475fd0b74Schristos int dstr AU = op[1] & 0x0f;
66575fd0b74Schristos if (trace)
66675fd0b74Schristos {
66775fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
66875fd0b74Schristos "/** 0000 srcr 1101 dstr CMPA %1, %0 */",
66975fd0b74Schristos op[0], op[1]);
67075fd0b74Schristos printf (" srcr = 0x%x,", srcr);
67175fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
67275fd0b74Schristos }
67375fd0b74Schristos SYNTAX("CMPA %1, %0");
674ede78133Schristos #line 504 "msp430-decode.opc"
67575fd0b74Schristos ID (MSO_cmp); SR (srcr); DR (dstr);
67675fd0b74Schristos msp430->size = 20;
67775fd0b74Schristos msp430->ofs_430x = 1;
67875fd0b74Schristos F_VNZC;
67975fd0b74Schristos
68075fd0b74Schristos }
68175fd0b74Schristos break;
68275fd0b74Schristos case 0xe0:
68375fd0b74Schristos op_semantics_14:
68475fd0b74Schristos {
68575fd0b74Schristos /** 0000 srcr 1110 dstr ADDA %1, %0 */
686ede78133Schristos #line 510 "msp430-decode.opc"
68775fd0b74Schristos int srcr AU = op[0] & 0x0f;
688ede78133Schristos #line 510 "msp430-decode.opc"
68975fd0b74Schristos int dstr AU = op[1] & 0x0f;
69075fd0b74Schristos if (trace)
69175fd0b74Schristos {
69275fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
69375fd0b74Schristos "/** 0000 srcr 1110 dstr ADDA %1, %0 */",
69475fd0b74Schristos op[0], op[1]);
69575fd0b74Schristos printf (" srcr = 0x%x,", srcr);
69675fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
69775fd0b74Schristos }
69875fd0b74Schristos SYNTAX("ADDA %1, %0");
699ede78133Schristos #line 510 "msp430-decode.opc"
70075fd0b74Schristos ID (MSO_add); SR (srcr); DR (dstr);
70175fd0b74Schristos msp430->size = 20;
70275fd0b74Schristos msp430->ofs_430x = 1;
70375fd0b74Schristos F_VNZC;
70475fd0b74Schristos
70575fd0b74Schristos }
70675fd0b74Schristos break;
70775fd0b74Schristos case 0xf0:
70875fd0b74Schristos op_semantics_15:
70975fd0b74Schristos {
71075fd0b74Schristos /** 0000 srcr 1111 dstr SUBA %1, %0 */
711ede78133Schristos #line 516 "msp430-decode.opc"
71275fd0b74Schristos int srcr AU = op[0] & 0x0f;
713ede78133Schristos #line 516 "msp430-decode.opc"
71475fd0b74Schristos int dstr AU = op[1] & 0x0f;
71575fd0b74Schristos if (trace)
71675fd0b74Schristos {
71775fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
71875fd0b74Schristos "/** 0000 srcr 1111 dstr SUBA %1, %0 */",
71975fd0b74Schristos op[0], op[1]);
72075fd0b74Schristos printf (" srcr = 0x%x,", srcr);
72175fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
72275fd0b74Schristos }
72375fd0b74Schristos SYNTAX("SUBA %1, %0");
724ede78133Schristos #line 516 "msp430-decode.opc"
72575fd0b74Schristos ID (MSO_sub); SR (srcr); DR (dstr);
72675fd0b74Schristos msp430->size = 20;
72775fd0b74Schristos msp430->ofs_430x = 1;
72875fd0b74Schristos F_VNZC;
72975fd0b74Schristos
73075fd0b74Schristos }
73175fd0b74Schristos break;
73275fd0b74Schristos }
73375fd0b74Schristos break;
73475fd0b74Schristos case 0x01:
73575fd0b74Schristos GETBYTE ();
73675fd0b74Schristos switch (op[1] & 0xf0)
73775fd0b74Schristos {
73875fd0b74Schristos case 0x00:
73975fd0b74Schristos goto op_semantics_1;
74075fd0b74Schristos break;
74175fd0b74Schristos case 0x10:
74275fd0b74Schristos goto op_semantics_2;
74375fd0b74Schristos break;
74475fd0b74Schristos case 0x20:
74575fd0b74Schristos goto op_semantics_3;
74675fd0b74Schristos break;
74775fd0b74Schristos case 0x30:
74875fd0b74Schristos goto op_semantics_4;
74975fd0b74Schristos break;
75075fd0b74Schristos case 0x40:
75175fd0b74Schristos case 0x50:
75275fd0b74Schristos op_semantics_16:
75375fd0b74Schristos {
75475fd0b74Schristos /** 0000 bt01 010w dstr RRAM.A %c, %0 */
755ede78133Schristos #line 529 "msp430-decode.opc"
75675fd0b74Schristos int bt AU = (op[0] >> 2) & 0x03;
757ede78133Schristos #line 529 "msp430-decode.opc"
75875fd0b74Schristos int w AU = (op[1] >> 4) & 0x01;
759ede78133Schristos #line 529 "msp430-decode.opc"
76075fd0b74Schristos int dstr AU = op[1] & 0x0f;
76175fd0b74Schristos if (trace)
76275fd0b74Schristos {
76375fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
76475fd0b74Schristos "/** 0000 bt01 010w dstr RRAM.A %c, %0 */",
76575fd0b74Schristos op[0], op[1]);
76675fd0b74Schristos printf (" bt = 0x%x,", bt);
76775fd0b74Schristos printf (" w = 0x%x,", w);
76875fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
76975fd0b74Schristos }
77075fd0b74Schristos SYNTAX("RRAM.A %c, %0");
771ede78133Schristos #line 529 "msp430-decode.opc"
77275fd0b74Schristos ID (MSO_rra); DR (dstr); SR (dstr);
77375fd0b74Schristos msp430->repeats = bt;
77475fd0b74Schristos msp430->size = w ? 16 : 20;
77575fd0b74Schristos msp430->ofs_430x = 1;
77675fd0b74Schristos F_0NZC;
77775fd0b74Schristos
77875fd0b74Schristos }
77975fd0b74Schristos break;
78075fd0b74Schristos case 0x60:
78175fd0b74Schristos goto op_semantics_6;
78275fd0b74Schristos break;
78375fd0b74Schristos case 0x70:
78475fd0b74Schristos goto op_semantics_7;
78575fd0b74Schristos break;
78675fd0b74Schristos case 0x80:
78775fd0b74Schristos goto op_semantics_8;
78875fd0b74Schristos break;
78975fd0b74Schristos case 0x90:
79075fd0b74Schristos goto op_semantics_9;
79175fd0b74Schristos break;
79275fd0b74Schristos case 0xa0:
79375fd0b74Schristos goto op_semantics_10;
79475fd0b74Schristos break;
79575fd0b74Schristos case 0xb0:
79675fd0b74Schristos goto op_semantics_11;
79775fd0b74Schristos break;
79875fd0b74Schristos case 0xc0:
79975fd0b74Schristos goto op_semantics_12;
80075fd0b74Schristos break;
80175fd0b74Schristos case 0xd0:
80275fd0b74Schristos goto op_semantics_13;
80375fd0b74Schristos break;
80475fd0b74Schristos case 0xe0:
80575fd0b74Schristos goto op_semantics_14;
80675fd0b74Schristos break;
80775fd0b74Schristos case 0xf0:
80875fd0b74Schristos goto op_semantics_15;
80975fd0b74Schristos break;
81075fd0b74Schristos }
81175fd0b74Schristos break;
81275fd0b74Schristos case 0x02:
81375fd0b74Schristos GETBYTE ();
81475fd0b74Schristos switch (op[1] & 0xf0)
81575fd0b74Schristos {
81675fd0b74Schristos case 0x00:
81775fd0b74Schristos goto op_semantics_1;
81875fd0b74Schristos break;
81975fd0b74Schristos case 0x10:
82075fd0b74Schristos goto op_semantics_2;
82175fd0b74Schristos break;
82275fd0b74Schristos case 0x20:
82375fd0b74Schristos goto op_semantics_3;
82475fd0b74Schristos break;
82575fd0b74Schristos case 0x30:
82675fd0b74Schristos goto op_semantics_4;
82775fd0b74Schristos break;
82875fd0b74Schristos case 0x40:
82975fd0b74Schristos case 0x50:
83075fd0b74Schristos op_semantics_17:
83175fd0b74Schristos {
83275fd0b74Schristos /** 0000 bt10 010w dstr RLAM.A %c, %0 */
833ede78133Schristos #line 536 "msp430-decode.opc"
83475fd0b74Schristos int bt AU = (op[0] >> 2) & 0x03;
835ede78133Schristos #line 536 "msp430-decode.opc"
83675fd0b74Schristos int w AU = (op[1] >> 4) & 0x01;
837ede78133Schristos #line 536 "msp430-decode.opc"
83875fd0b74Schristos int dstr AU = op[1] & 0x0f;
83975fd0b74Schristos if (trace)
84075fd0b74Schristos {
84175fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
84275fd0b74Schristos "/** 0000 bt10 010w dstr RLAM.A %c, %0 */",
84375fd0b74Schristos op[0], op[1]);
84475fd0b74Schristos printf (" bt = 0x%x,", bt);
84575fd0b74Schristos printf (" w = 0x%x,", w);
84675fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
84775fd0b74Schristos }
84875fd0b74Schristos SYNTAX("RLAM.A %c, %0");
849ede78133Schristos #line 536 "msp430-decode.opc"
85075fd0b74Schristos ID (MSO_add); DR (dstr); SR (dstr);
85175fd0b74Schristos msp430->repeats = bt;
85275fd0b74Schristos msp430->size = w ? 16 : 20;
85375fd0b74Schristos msp430->ofs_430x = 1;
85475fd0b74Schristos F_0NZC;
85575fd0b74Schristos
85675fd0b74Schristos }
85775fd0b74Schristos break;
85875fd0b74Schristos case 0x60:
85975fd0b74Schristos goto op_semantics_6;
86075fd0b74Schristos break;
86175fd0b74Schristos case 0x70:
86275fd0b74Schristos goto op_semantics_7;
86375fd0b74Schristos break;
86475fd0b74Schristos case 0x80:
86575fd0b74Schristos goto op_semantics_8;
86675fd0b74Schristos break;
86775fd0b74Schristos case 0x90:
86875fd0b74Schristos goto op_semantics_9;
86975fd0b74Schristos break;
87075fd0b74Schristos case 0xa0:
87175fd0b74Schristos goto op_semantics_10;
87275fd0b74Schristos break;
87375fd0b74Schristos case 0xb0:
87475fd0b74Schristos goto op_semantics_11;
87575fd0b74Schristos break;
87675fd0b74Schristos case 0xc0:
87775fd0b74Schristos goto op_semantics_12;
87875fd0b74Schristos break;
87975fd0b74Schristos case 0xd0:
88075fd0b74Schristos goto op_semantics_13;
88175fd0b74Schristos break;
88275fd0b74Schristos case 0xe0:
88375fd0b74Schristos goto op_semantics_14;
88475fd0b74Schristos break;
88575fd0b74Schristos case 0xf0:
88675fd0b74Schristos goto op_semantics_15;
88775fd0b74Schristos break;
88875fd0b74Schristos }
88975fd0b74Schristos break;
89075fd0b74Schristos case 0x03:
89175fd0b74Schristos GETBYTE ();
89275fd0b74Schristos switch (op[1] & 0xf0)
89375fd0b74Schristos {
89475fd0b74Schristos case 0x00:
89575fd0b74Schristos goto op_semantics_1;
89675fd0b74Schristos break;
89775fd0b74Schristos case 0x10:
89875fd0b74Schristos goto op_semantics_2;
89975fd0b74Schristos break;
90075fd0b74Schristos case 0x20:
90175fd0b74Schristos goto op_semantics_3;
90275fd0b74Schristos break;
90375fd0b74Schristos case 0x30:
90475fd0b74Schristos goto op_semantics_4;
90575fd0b74Schristos break;
90675fd0b74Schristos case 0x40:
90775fd0b74Schristos case 0x50:
90875fd0b74Schristos op_semantics_18:
90975fd0b74Schristos {
91075fd0b74Schristos /** 0000 bt11 010w dstr RRUM.A %c, %0 */
911ede78133Schristos #line 543 "msp430-decode.opc"
91275fd0b74Schristos int bt AU = (op[0] >> 2) & 0x03;
913ede78133Schristos #line 543 "msp430-decode.opc"
91475fd0b74Schristos int w AU = (op[1] >> 4) & 0x01;
915ede78133Schristos #line 543 "msp430-decode.opc"
91675fd0b74Schristos int dstr AU = op[1] & 0x0f;
91775fd0b74Schristos if (trace)
91875fd0b74Schristos {
91975fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
92075fd0b74Schristos "/** 0000 bt11 010w dstr RRUM.A %c, %0 */",
92175fd0b74Schristos op[0], op[1]);
92275fd0b74Schristos printf (" bt = 0x%x,", bt);
92375fd0b74Schristos printf (" w = 0x%x,", w);
92475fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
92575fd0b74Schristos }
92675fd0b74Schristos SYNTAX("RRUM.A %c, %0");
927ede78133Schristos #line 543 "msp430-decode.opc"
92875fd0b74Schristos ID (MSO_rru); DR (dstr); SR (dstr);
92975fd0b74Schristos msp430->repeats = bt;
93075fd0b74Schristos msp430->size = w ? 16 : 20;
93175fd0b74Schristos msp430->ofs_430x = 1;
93275fd0b74Schristos F_0NZC;
93375fd0b74Schristos
93475fd0b74Schristos }
93575fd0b74Schristos break;
93675fd0b74Schristos case 0x60:
93775fd0b74Schristos goto op_semantics_6;
93875fd0b74Schristos break;
93975fd0b74Schristos case 0x70:
94075fd0b74Schristos goto op_semantics_7;
94175fd0b74Schristos break;
94275fd0b74Schristos case 0x80:
94375fd0b74Schristos goto op_semantics_8;
94475fd0b74Schristos break;
94575fd0b74Schristos case 0x90:
94675fd0b74Schristos goto op_semantics_9;
94775fd0b74Schristos break;
94875fd0b74Schristos case 0xa0:
94975fd0b74Schristos goto op_semantics_10;
95075fd0b74Schristos break;
95175fd0b74Schristos case 0xb0:
95275fd0b74Schristos goto op_semantics_11;
95375fd0b74Schristos break;
95475fd0b74Schristos case 0xc0:
95575fd0b74Schristos goto op_semantics_12;
95675fd0b74Schristos break;
95775fd0b74Schristos case 0xd0:
95875fd0b74Schristos goto op_semantics_13;
95975fd0b74Schristos break;
96075fd0b74Schristos case 0xe0:
96175fd0b74Schristos goto op_semantics_14;
96275fd0b74Schristos break;
96375fd0b74Schristos case 0xf0:
96475fd0b74Schristos goto op_semantics_15;
96575fd0b74Schristos break;
96675fd0b74Schristos }
96775fd0b74Schristos break;
96875fd0b74Schristos case 0x04:
96975fd0b74Schristos GETBYTE ();
97075fd0b74Schristos switch (op[1] & 0xf0)
97175fd0b74Schristos {
97275fd0b74Schristos case 0x00:
97375fd0b74Schristos goto op_semantics_1;
97475fd0b74Schristos break;
97575fd0b74Schristos case 0x10:
97675fd0b74Schristos goto op_semantics_2;
97775fd0b74Schristos break;
97875fd0b74Schristos case 0x20:
97975fd0b74Schristos goto op_semantics_3;
98075fd0b74Schristos break;
98175fd0b74Schristos case 0x30:
98275fd0b74Schristos goto op_semantics_4;
98375fd0b74Schristos break;
98475fd0b74Schristos case 0x40:
98575fd0b74Schristos case 0x50:
98675fd0b74Schristos goto op_semantics_5;
98775fd0b74Schristos break;
98875fd0b74Schristos case 0x60:
98975fd0b74Schristos goto op_semantics_6;
99075fd0b74Schristos break;
99175fd0b74Schristos case 0x70:
99275fd0b74Schristos goto op_semantics_7;
99375fd0b74Schristos break;
99475fd0b74Schristos case 0x80:
99575fd0b74Schristos goto op_semantics_8;
99675fd0b74Schristos break;
99775fd0b74Schristos case 0x90:
99875fd0b74Schristos goto op_semantics_9;
99975fd0b74Schristos break;
100075fd0b74Schristos case 0xa0:
100175fd0b74Schristos goto op_semantics_10;
100275fd0b74Schristos break;
100375fd0b74Schristos case 0xb0:
100475fd0b74Schristos goto op_semantics_11;
100575fd0b74Schristos break;
100675fd0b74Schristos case 0xc0:
100775fd0b74Schristos goto op_semantics_12;
100875fd0b74Schristos break;
100975fd0b74Schristos case 0xd0:
101075fd0b74Schristos goto op_semantics_13;
101175fd0b74Schristos break;
101275fd0b74Schristos case 0xe0:
101375fd0b74Schristos goto op_semantics_14;
101475fd0b74Schristos break;
101575fd0b74Schristos case 0xf0:
101675fd0b74Schristos goto op_semantics_15;
101775fd0b74Schristos break;
101875fd0b74Schristos }
101975fd0b74Schristos break;
102075fd0b74Schristos case 0x05:
102175fd0b74Schristos GETBYTE ();
102275fd0b74Schristos switch (op[1] & 0xf0)
102375fd0b74Schristos {
102475fd0b74Schristos case 0x00:
102575fd0b74Schristos goto op_semantics_1;
102675fd0b74Schristos break;
102775fd0b74Schristos case 0x10:
102875fd0b74Schristos goto op_semantics_2;
102975fd0b74Schristos break;
103075fd0b74Schristos case 0x20:
103175fd0b74Schristos goto op_semantics_3;
103275fd0b74Schristos break;
103375fd0b74Schristos case 0x30:
103475fd0b74Schristos goto op_semantics_4;
103575fd0b74Schristos break;
103675fd0b74Schristos case 0x40:
103775fd0b74Schristos case 0x50:
103875fd0b74Schristos goto op_semantics_16;
103975fd0b74Schristos break;
104075fd0b74Schristos case 0x60:
104175fd0b74Schristos goto op_semantics_6;
104275fd0b74Schristos break;
104375fd0b74Schristos case 0x70:
104475fd0b74Schristos goto op_semantics_7;
104575fd0b74Schristos break;
104675fd0b74Schristos case 0x80:
104775fd0b74Schristos goto op_semantics_8;
104875fd0b74Schristos break;
104975fd0b74Schristos case 0x90:
105075fd0b74Schristos goto op_semantics_9;
105175fd0b74Schristos break;
105275fd0b74Schristos case 0xa0:
105375fd0b74Schristos goto op_semantics_10;
105475fd0b74Schristos break;
105575fd0b74Schristos case 0xb0:
105675fd0b74Schristos goto op_semantics_11;
105775fd0b74Schristos break;
105875fd0b74Schristos case 0xc0:
105975fd0b74Schristos goto op_semantics_12;
106075fd0b74Schristos break;
106175fd0b74Schristos case 0xd0:
106275fd0b74Schristos goto op_semantics_13;
106375fd0b74Schristos break;
106475fd0b74Schristos case 0xe0:
106575fd0b74Schristos goto op_semantics_14;
106675fd0b74Schristos break;
106775fd0b74Schristos case 0xf0:
106875fd0b74Schristos goto op_semantics_15;
106975fd0b74Schristos break;
107075fd0b74Schristos }
107175fd0b74Schristos break;
107275fd0b74Schristos case 0x06:
107375fd0b74Schristos GETBYTE ();
107475fd0b74Schristos switch (op[1] & 0xf0)
107575fd0b74Schristos {
107675fd0b74Schristos case 0x00:
107775fd0b74Schristos goto op_semantics_1;
107875fd0b74Schristos break;
107975fd0b74Schristos case 0x10:
108075fd0b74Schristos goto op_semantics_2;
108175fd0b74Schristos break;
108275fd0b74Schristos case 0x20:
108375fd0b74Schristos goto op_semantics_3;
108475fd0b74Schristos break;
108575fd0b74Schristos case 0x30:
108675fd0b74Schristos goto op_semantics_4;
108775fd0b74Schristos break;
108875fd0b74Schristos case 0x40:
108975fd0b74Schristos case 0x50:
109075fd0b74Schristos goto op_semantics_17;
109175fd0b74Schristos break;
109275fd0b74Schristos case 0x60:
109375fd0b74Schristos goto op_semantics_6;
109475fd0b74Schristos break;
109575fd0b74Schristos case 0x70:
109675fd0b74Schristos goto op_semantics_7;
109775fd0b74Schristos break;
109875fd0b74Schristos case 0x80:
109975fd0b74Schristos goto op_semantics_8;
110075fd0b74Schristos break;
110175fd0b74Schristos case 0x90:
110275fd0b74Schristos goto op_semantics_9;
110375fd0b74Schristos break;
110475fd0b74Schristos case 0xa0:
110575fd0b74Schristos goto op_semantics_10;
110675fd0b74Schristos break;
110775fd0b74Schristos case 0xb0:
110875fd0b74Schristos goto op_semantics_11;
110975fd0b74Schristos break;
111075fd0b74Schristos case 0xc0:
111175fd0b74Schristos goto op_semantics_12;
111275fd0b74Schristos break;
111375fd0b74Schristos case 0xd0:
111475fd0b74Schristos goto op_semantics_13;
111575fd0b74Schristos break;
111675fd0b74Schristos case 0xe0:
111775fd0b74Schristos goto op_semantics_14;
111875fd0b74Schristos break;
111975fd0b74Schristos case 0xf0:
112075fd0b74Schristos goto op_semantics_15;
112175fd0b74Schristos break;
112275fd0b74Schristos }
112375fd0b74Schristos break;
112475fd0b74Schristos case 0x07:
112575fd0b74Schristos GETBYTE ();
112675fd0b74Schristos switch (op[1] & 0xf0)
112775fd0b74Schristos {
112875fd0b74Schristos case 0x00:
112975fd0b74Schristos goto op_semantics_1;
113075fd0b74Schristos break;
113175fd0b74Schristos case 0x10:
113275fd0b74Schristos goto op_semantics_2;
113375fd0b74Schristos break;
113475fd0b74Schristos case 0x20:
113575fd0b74Schristos goto op_semantics_3;
113675fd0b74Schristos break;
113775fd0b74Schristos case 0x30:
113875fd0b74Schristos goto op_semantics_4;
113975fd0b74Schristos break;
114075fd0b74Schristos case 0x40:
114175fd0b74Schristos case 0x50:
114275fd0b74Schristos goto op_semantics_18;
114375fd0b74Schristos break;
114475fd0b74Schristos case 0x60:
114575fd0b74Schristos goto op_semantics_6;
114675fd0b74Schristos break;
114775fd0b74Schristos case 0x70:
114875fd0b74Schristos goto op_semantics_7;
114975fd0b74Schristos break;
115075fd0b74Schristos case 0x80:
115175fd0b74Schristos goto op_semantics_8;
115275fd0b74Schristos break;
115375fd0b74Schristos case 0x90:
115475fd0b74Schristos goto op_semantics_9;
115575fd0b74Schristos break;
115675fd0b74Schristos case 0xa0:
115775fd0b74Schristos goto op_semantics_10;
115875fd0b74Schristos break;
115975fd0b74Schristos case 0xb0:
116075fd0b74Schristos goto op_semantics_11;
116175fd0b74Schristos break;
116275fd0b74Schristos case 0xc0:
116375fd0b74Schristos goto op_semantics_12;
116475fd0b74Schristos break;
116575fd0b74Schristos case 0xd0:
116675fd0b74Schristos goto op_semantics_13;
116775fd0b74Schristos break;
116875fd0b74Schristos case 0xe0:
116975fd0b74Schristos goto op_semantics_14;
117075fd0b74Schristos break;
117175fd0b74Schristos case 0xf0:
117275fd0b74Schristos goto op_semantics_15;
117375fd0b74Schristos break;
117475fd0b74Schristos }
117575fd0b74Schristos break;
117675fd0b74Schristos case 0x08:
117775fd0b74Schristos GETBYTE ();
117875fd0b74Schristos switch (op[1] & 0xf0)
117975fd0b74Schristos {
118075fd0b74Schristos case 0x00:
118175fd0b74Schristos goto op_semantics_1;
118275fd0b74Schristos break;
118375fd0b74Schristos case 0x10:
118475fd0b74Schristos goto op_semantics_2;
118575fd0b74Schristos break;
118675fd0b74Schristos case 0x20:
118775fd0b74Schristos goto op_semantics_3;
118875fd0b74Schristos break;
118975fd0b74Schristos case 0x30:
119075fd0b74Schristos goto op_semantics_4;
119175fd0b74Schristos break;
119275fd0b74Schristos case 0x40:
119375fd0b74Schristos case 0x50:
119475fd0b74Schristos goto op_semantics_5;
119575fd0b74Schristos break;
119675fd0b74Schristos case 0x60:
119775fd0b74Schristos goto op_semantics_6;
119875fd0b74Schristos break;
119975fd0b74Schristos case 0x70:
120075fd0b74Schristos goto op_semantics_7;
120175fd0b74Schristos break;
120275fd0b74Schristos case 0x80:
120375fd0b74Schristos goto op_semantics_8;
120475fd0b74Schristos break;
120575fd0b74Schristos case 0x90:
120675fd0b74Schristos goto op_semantics_9;
120775fd0b74Schristos break;
120875fd0b74Schristos case 0xa0:
120975fd0b74Schristos goto op_semantics_10;
121075fd0b74Schristos break;
121175fd0b74Schristos case 0xb0:
121275fd0b74Schristos goto op_semantics_11;
121375fd0b74Schristos break;
121475fd0b74Schristos case 0xc0:
121575fd0b74Schristos goto op_semantics_12;
121675fd0b74Schristos break;
121775fd0b74Schristos case 0xd0:
121875fd0b74Schristos goto op_semantics_13;
121975fd0b74Schristos break;
122075fd0b74Schristos case 0xe0:
122175fd0b74Schristos goto op_semantics_14;
122275fd0b74Schristos break;
122375fd0b74Schristos case 0xf0:
122475fd0b74Schristos goto op_semantics_15;
122575fd0b74Schristos break;
122675fd0b74Schristos }
122775fd0b74Schristos break;
122875fd0b74Schristos case 0x09:
122975fd0b74Schristos GETBYTE ();
123075fd0b74Schristos switch (op[1] & 0xf0)
123175fd0b74Schristos {
123275fd0b74Schristos case 0x00:
123375fd0b74Schristos goto op_semantics_1;
123475fd0b74Schristos break;
123575fd0b74Schristos case 0x10:
123675fd0b74Schristos goto op_semantics_2;
123775fd0b74Schristos break;
123875fd0b74Schristos case 0x20:
123975fd0b74Schristos goto op_semantics_3;
124075fd0b74Schristos break;
124175fd0b74Schristos case 0x30:
124275fd0b74Schristos goto op_semantics_4;
124375fd0b74Schristos break;
124475fd0b74Schristos case 0x40:
124575fd0b74Schristos case 0x50:
124675fd0b74Schristos goto op_semantics_16;
124775fd0b74Schristos break;
124875fd0b74Schristos case 0x60:
124975fd0b74Schristos goto op_semantics_6;
125075fd0b74Schristos break;
125175fd0b74Schristos case 0x70:
125275fd0b74Schristos goto op_semantics_7;
125375fd0b74Schristos break;
125475fd0b74Schristos case 0x80:
125575fd0b74Schristos goto op_semantics_8;
125675fd0b74Schristos break;
125775fd0b74Schristos case 0x90:
125875fd0b74Schristos goto op_semantics_9;
125975fd0b74Schristos break;
126075fd0b74Schristos case 0xa0:
126175fd0b74Schristos goto op_semantics_10;
126275fd0b74Schristos break;
126375fd0b74Schristos case 0xb0:
126475fd0b74Schristos goto op_semantics_11;
126575fd0b74Schristos break;
126675fd0b74Schristos case 0xc0:
126775fd0b74Schristos goto op_semantics_12;
126875fd0b74Schristos break;
126975fd0b74Schristos case 0xd0:
127075fd0b74Schristos goto op_semantics_13;
127175fd0b74Schristos break;
127275fd0b74Schristos case 0xe0:
127375fd0b74Schristos goto op_semantics_14;
127475fd0b74Schristos break;
127575fd0b74Schristos case 0xf0:
127675fd0b74Schristos goto op_semantics_15;
127775fd0b74Schristos break;
127875fd0b74Schristos }
127975fd0b74Schristos break;
128075fd0b74Schristos case 0x0a:
128175fd0b74Schristos GETBYTE ();
128275fd0b74Schristos switch (op[1] & 0xf0)
128375fd0b74Schristos {
128475fd0b74Schristos case 0x00:
128575fd0b74Schristos goto op_semantics_1;
128675fd0b74Schristos break;
128775fd0b74Schristos case 0x10:
128875fd0b74Schristos goto op_semantics_2;
128975fd0b74Schristos break;
129075fd0b74Schristos case 0x20:
129175fd0b74Schristos goto op_semantics_3;
129275fd0b74Schristos break;
129375fd0b74Schristos case 0x30:
129475fd0b74Schristos goto op_semantics_4;
129575fd0b74Schristos break;
129675fd0b74Schristos case 0x40:
129775fd0b74Schristos case 0x50:
129875fd0b74Schristos goto op_semantics_17;
129975fd0b74Schristos break;
130075fd0b74Schristos case 0x60:
130175fd0b74Schristos goto op_semantics_6;
130275fd0b74Schristos break;
130375fd0b74Schristos case 0x70:
130475fd0b74Schristos goto op_semantics_7;
130575fd0b74Schristos break;
130675fd0b74Schristos case 0x80:
130775fd0b74Schristos goto op_semantics_8;
130875fd0b74Schristos break;
130975fd0b74Schristos case 0x90:
131075fd0b74Schristos goto op_semantics_9;
131175fd0b74Schristos break;
131275fd0b74Schristos case 0xa0:
131375fd0b74Schristos goto op_semantics_10;
131475fd0b74Schristos break;
131575fd0b74Schristos case 0xb0:
131675fd0b74Schristos goto op_semantics_11;
131775fd0b74Schristos break;
131875fd0b74Schristos case 0xc0:
131975fd0b74Schristos goto op_semantics_12;
132075fd0b74Schristos break;
132175fd0b74Schristos case 0xd0:
132275fd0b74Schristos goto op_semantics_13;
132375fd0b74Schristos break;
132475fd0b74Schristos case 0xe0:
132575fd0b74Schristos goto op_semantics_14;
132675fd0b74Schristos break;
132775fd0b74Schristos case 0xf0:
132875fd0b74Schristos goto op_semantics_15;
132975fd0b74Schristos break;
133075fd0b74Schristos }
133175fd0b74Schristos break;
133275fd0b74Schristos case 0x0b:
133375fd0b74Schristos GETBYTE ();
133475fd0b74Schristos switch (op[1] & 0xf0)
133575fd0b74Schristos {
133675fd0b74Schristos case 0x00:
133775fd0b74Schristos goto op_semantics_1;
133875fd0b74Schristos break;
133975fd0b74Schristos case 0x10:
134075fd0b74Schristos goto op_semantics_2;
134175fd0b74Schristos break;
134275fd0b74Schristos case 0x20:
134375fd0b74Schristos goto op_semantics_3;
134475fd0b74Schristos break;
134575fd0b74Schristos case 0x30:
134675fd0b74Schristos goto op_semantics_4;
134775fd0b74Schristos break;
134875fd0b74Schristos case 0x40:
134975fd0b74Schristos case 0x50:
135075fd0b74Schristos goto op_semantics_18;
135175fd0b74Schristos break;
135275fd0b74Schristos case 0x60:
135375fd0b74Schristos goto op_semantics_6;
135475fd0b74Schristos break;
135575fd0b74Schristos case 0x70:
135675fd0b74Schristos goto op_semantics_7;
135775fd0b74Schristos break;
135875fd0b74Schristos case 0x80:
135975fd0b74Schristos goto op_semantics_8;
136075fd0b74Schristos break;
136175fd0b74Schristos case 0x90:
136275fd0b74Schristos goto op_semantics_9;
136375fd0b74Schristos break;
136475fd0b74Schristos case 0xa0:
136575fd0b74Schristos goto op_semantics_10;
136675fd0b74Schristos break;
136775fd0b74Schristos case 0xb0:
136875fd0b74Schristos goto op_semantics_11;
136975fd0b74Schristos break;
137075fd0b74Schristos case 0xc0:
137175fd0b74Schristos goto op_semantics_12;
137275fd0b74Schristos break;
137375fd0b74Schristos case 0xd0:
137475fd0b74Schristos goto op_semantics_13;
137575fd0b74Schristos break;
137675fd0b74Schristos case 0xe0:
137775fd0b74Schristos goto op_semantics_14;
137875fd0b74Schristos break;
137975fd0b74Schristos case 0xf0:
138075fd0b74Schristos goto op_semantics_15;
138175fd0b74Schristos break;
138275fd0b74Schristos }
138375fd0b74Schristos break;
138475fd0b74Schristos case 0x0c:
138575fd0b74Schristos GETBYTE ();
138675fd0b74Schristos switch (op[1] & 0xf0)
138775fd0b74Schristos {
138875fd0b74Schristos case 0x00:
138975fd0b74Schristos goto op_semantics_1;
139075fd0b74Schristos break;
139175fd0b74Schristos case 0x10:
139275fd0b74Schristos goto op_semantics_2;
139375fd0b74Schristos break;
139475fd0b74Schristos case 0x20:
139575fd0b74Schristos goto op_semantics_3;
139675fd0b74Schristos break;
139775fd0b74Schristos case 0x30:
139875fd0b74Schristos goto op_semantics_4;
139975fd0b74Schristos break;
140075fd0b74Schristos case 0x40:
140175fd0b74Schristos case 0x50:
140275fd0b74Schristos goto op_semantics_5;
140375fd0b74Schristos break;
140475fd0b74Schristos case 0x60:
140575fd0b74Schristos goto op_semantics_6;
140675fd0b74Schristos break;
140775fd0b74Schristos case 0x70:
140875fd0b74Schristos goto op_semantics_7;
140975fd0b74Schristos break;
141075fd0b74Schristos case 0x80:
141175fd0b74Schristos goto op_semantics_8;
141275fd0b74Schristos break;
141375fd0b74Schristos case 0x90:
141475fd0b74Schristos goto op_semantics_9;
141575fd0b74Schristos break;
141675fd0b74Schristos case 0xa0:
141775fd0b74Schristos goto op_semantics_10;
141875fd0b74Schristos break;
141975fd0b74Schristos case 0xb0:
142075fd0b74Schristos goto op_semantics_11;
142175fd0b74Schristos break;
142275fd0b74Schristos case 0xc0:
142375fd0b74Schristos goto op_semantics_12;
142475fd0b74Schristos break;
142575fd0b74Schristos case 0xd0:
142675fd0b74Schristos goto op_semantics_13;
142775fd0b74Schristos break;
142875fd0b74Schristos case 0xe0:
142975fd0b74Schristos goto op_semantics_14;
143075fd0b74Schristos break;
143175fd0b74Schristos case 0xf0:
143275fd0b74Schristos goto op_semantics_15;
143375fd0b74Schristos break;
143475fd0b74Schristos }
143575fd0b74Schristos break;
143675fd0b74Schristos case 0x0d:
143775fd0b74Schristos GETBYTE ();
143875fd0b74Schristos switch (op[1] & 0xf0)
143975fd0b74Schristos {
144075fd0b74Schristos case 0x00:
144175fd0b74Schristos goto op_semantics_1;
144275fd0b74Schristos break;
144375fd0b74Schristos case 0x10:
144475fd0b74Schristos goto op_semantics_2;
144575fd0b74Schristos break;
144675fd0b74Schristos case 0x20:
144775fd0b74Schristos goto op_semantics_3;
144875fd0b74Schristos break;
144975fd0b74Schristos case 0x30:
145075fd0b74Schristos goto op_semantics_4;
145175fd0b74Schristos break;
145275fd0b74Schristos case 0x40:
145375fd0b74Schristos case 0x50:
145475fd0b74Schristos goto op_semantics_16;
145575fd0b74Schristos break;
145675fd0b74Schristos case 0x60:
145775fd0b74Schristos goto op_semantics_6;
145875fd0b74Schristos break;
145975fd0b74Schristos case 0x70:
146075fd0b74Schristos goto op_semantics_7;
146175fd0b74Schristos break;
146275fd0b74Schristos case 0x80:
146375fd0b74Schristos goto op_semantics_8;
146475fd0b74Schristos break;
146575fd0b74Schristos case 0x90:
146675fd0b74Schristos goto op_semantics_9;
146775fd0b74Schristos break;
146875fd0b74Schristos case 0xa0:
146975fd0b74Schristos goto op_semantics_10;
147075fd0b74Schristos break;
147175fd0b74Schristos case 0xb0:
147275fd0b74Schristos goto op_semantics_11;
147375fd0b74Schristos break;
147475fd0b74Schristos case 0xc0:
147575fd0b74Schristos goto op_semantics_12;
147675fd0b74Schristos break;
147775fd0b74Schristos case 0xd0:
147875fd0b74Schristos goto op_semantics_13;
147975fd0b74Schristos break;
148075fd0b74Schristos case 0xe0:
148175fd0b74Schristos goto op_semantics_14;
148275fd0b74Schristos break;
148375fd0b74Schristos case 0xf0:
148475fd0b74Schristos goto op_semantics_15;
148575fd0b74Schristos break;
148675fd0b74Schristos }
148775fd0b74Schristos break;
148875fd0b74Schristos case 0x0e:
148975fd0b74Schristos GETBYTE ();
149075fd0b74Schristos switch (op[1] & 0xf0)
149175fd0b74Schristos {
149275fd0b74Schristos case 0x00:
149375fd0b74Schristos goto op_semantics_1;
149475fd0b74Schristos break;
149575fd0b74Schristos case 0x10:
149675fd0b74Schristos goto op_semantics_2;
149775fd0b74Schristos break;
149875fd0b74Schristos case 0x20:
149975fd0b74Schristos goto op_semantics_3;
150075fd0b74Schristos break;
150175fd0b74Schristos case 0x30:
150275fd0b74Schristos goto op_semantics_4;
150375fd0b74Schristos break;
150475fd0b74Schristos case 0x40:
150575fd0b74Schristos case 0x50:
150675fd0b74Schristos goto op_semantics_17;
150775fd0b74Schristos break;
150875fd0b74Schristos case 0x60:
150975fd0b74Schristos goto op_semantics_6;
151075fd0b74Schristos break;
151175fd0b74Schristos case 0x70:
151275fd0b74Schristos goto op_semantics_7;
151375fd0b74Schristos break;
151475fd0b74Schristos case 0x80:
151575fd0b74Schristos goto op_semantics_8;
151675fd0b74Schristos break;
151775fd0b74Schristos case 0x90:
151875fd0b74Schristos goto op_semantics_9;
151975fd0b74Schristos break;
152075fd0b74Schristos case 0xa0:
152175fd0b74Schristos goto op_semantics_10;
152275fd0b74Schristos break;
152375fd0b74Schristos case 0xb0:
152475fd0b74Schristos goto op_semantics_11;
152575fd0b74Schristos break;
152675fd0b74Schristos case 0xc0:
152775fd0b74Schristos goto op_semantics_12;
152875fd0b74Schristos break;
152975fd0b74Schristos case 0xd0:
153075fd0b74Schristos goto op_semantics_13;
153175fd0b74Schristos break;
153275fd0b74Schristos case 0xe0:
153375fd0b74Schristos goto op_semantics_14;
153475fd0b74Schristos break;
153575fd0b74Schristos case 0xf0:
153675fd0b74Schristos goto op_semantics_15;
153775fd0b74Schristos break;
153875fd0b74Schristos }
153975fd0b74Schristos break;
154075fd0b74Schristos case 0x0f:
154175fd0b74Schristos GETBYTE ();
154275fd0b74Schristos switch (op[1] & 0xf0)
154375fd0b74Schristos {
154475fd0b74Schristos case 0x00:
154575fd0b74Schristos goto op_semantics_1;
154675fd0b74Schristos break;
154775fd0b74Schristos case 0x10:
154875fd0b74Schristos goto op_semantics_2;
154975fd0b74Schristos break;
155075fd0b74Schristos case 0x20:
155175fd0b74Schristos goto op_semantics_3;
155275fd0b74Schristos break;
155375fd0b74Schristos case 0x30:
155475fd0b74Schristos goto op_semantics_4;
155575fd0b74Schristos break;
155675fd0b74Schristos case 0x40:
155775fd0b74Schristos case 0x50:
155875fd0b74Schristos goto op_semantics_18;
155975fd0b74Schristos break;
156075fd0b74Schristos case 0x60:
156175fd0b74Schristos goto op_semantics_6;
156275fd0b74Schristos break;
156375fd0b74Schristos case 0x70:
156475fd0b74Schristos goto op_semantics_7;
156575fd0b74Schristos break;
156675fd0b74Schristos case 0x80:
156775fd0b74Schristos goto op_semantics_8;
156875fd0b74Schristos break;
156975fd0b74Schristos case 0x90:
157075fd0b74Schristos goto op_semantics_9;
157175fd0b74Schristos break;
157275fd0b74Schristos case 0xa0:
157375fd0b74Schristos goto op_semantics_10;
157475fd0b74Schristos break;
157575fd0b74Schristos case 0xb0:
157675fd0b74Schristos goto op_semantics_11;
157775fd0b74Schristos break;
157875fd0b74Schristos case 0xc0:
157975fd0b74Schristos goto op_semantics_12;
158075fd0b74Schristos break;
158175fd0b74Schristos case 0xd0:
158275fd0b74Schristos goto op_semantics_13;
158375fd0b74Schristos break;
158475fd0b74Schristos case 0xe0:
158575fd0b74Schristos goto op_semantics_14;
158675fd0b74Schristos break;
158775fd0b74Schristos case 0xf0:
158875fd0b74Schristos goto op_semantics_15;
158975fd0b74Schristos break;
159075fd0b74Schristos }
159175fd0b74Schristos break;
159275fd0b74Schristos case 0x10:
159375fd0b74Schristos GETBYTE ();
159475fd0b74Schristos switch (op[1] & 0x00)
159575fd0b74Schristos {
159675fd0b74Schristos case 0x00:
159775fd0b74Schristos op_semantics_19:
159875fd0b74Schristos {
159975fd0b74Schristos /** 0001 00so c b ad dreg %S%b %1 */
1600ede78133Schristos #line 396 "msp430-decode.opc"
160175fd0b74Schristos int so AU = op[0] & 0x03;
1602ede78133Schristos #line 396 "msp430-decode.opc"
160375fd0b74Schristos int c AU = (op[1] >> 7) & 0x01;
1604ede78133Schristos #line 396 "msp430-decode.opc"
160575fd0b74Schristos int b AU = (op[1] >> 6) & 0x01;
1606ede78133Schristos #line 396 "msp430-decode.opc"
160775fd0b74Schristos int ad AU = (op[1] >> 4) & 0x03;
1608ede78133Schristos #line 396 "msp430-decode.opc"
160975fd0b74Schristos int dreg AU = op[1] & 0x0f;
161075fd0b74Schristos if (trace)
161175fd0b74Schristos {
161275fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
161375fd0b74Schristos "/** 0001 00so c b ad dreg %S%b %1 */",
161475fd0b74Schristos op[0], op[1]);
161575fd0b74Schristos printf (" so = 0x%x,", so);
161675fd0b74Schristos printf (" c = 0x%x,", c);
161775fd0b74Schristos printf (" b = 0x%x,", b);
161875fd0b74Schristos printf (" ad = 0x%x,", ad);
161975fd0b74Schristos printf (" dreg = 0x%x\n", dreg);
162075fd0b74Schristos }
162175fd0b74Schristos SYNTAX("%S%b %1");
1622ede78133Schristos #line 396 "msp430-decode.opc"
162375fd0b74Schristos
162475fd0b74Schristos ID (sopc_to_id (so,c)); ASX (dreg, ad, srxt_bits); ABW (al_bit, b);
162575fd0b74Schristos
162675fd0b74Schristos if (ad == 0)
162775fd0b74Schristos REPZC (srxt_bits, dsxt_bits);
162875fd0b74Schristos
162975fd0b74Schristos /* The helper functions encode for source, but it's
163075fd0b74Schristos both source and dest, with a few documented exceptions. */
163175fd0b74Schristos msp430->op[0] = msp430->op[1];
163275fd0b74Schristos
163375fd0b74Schristos /* RETI ignores the operand. */
163475fd0b74Schristos if (msp430->id == MSO_reti)
163575fd0b74Schristos msp430->syntax = "%S";
163675fd0b74Schristos
163775fd0b74Schristos switch (msp430->id)
163875fd0b74Schristos {
163975fd0b74Schristos case MSO_rrc: F_VNZC; break;
164075fd0b74Schristos case MSO_swpb: F_____; break;
164175fd0b74Schristos case MSO_rra: F_0NZC; break;
164275fd0b74Schristos case MSO_sxt: F_0NZC; break;
164375fd0b74Schristos case MSO_push: F_____; break;
164475fd0b74Schristos case MSO_call: F_____; break;
164575fd0b74Schristos case MSO_reti: F_VNZC; break;
164675fd0b74Schristos default: break;
164775fd0b74Schristos }
164875fd0b74Schristos
164975fd0b74Schristos /* 20xx 0010 0000 ---- ----
165075fd0b74Schristos 3cxx 0011 1100 ---- ----
165175fd0b74Schristos 001j mp-- ---- ----. */
165275fd0b74Schristos }
165375fd0b74Schristos break;
165475fd0b74Schristos }
165575fd0b74Schristos break;
165675fd0b74Schristos case 0x11:
165775fd0b74Schristos GETBYTE ();
165875fd0b74Schristos switch (op[1] & 0x00)
165975fd0b74Schristos {
166075fd0b74Schristos case 0x00:
166175fd0b74Schristos goto op_semantics_19;
166275fd0b74Schristos break;
166375fd0b74Schristos }
166475fd0b74Schristos break;
166575fd0b74Schristos case 0x12:
166675fd0b74Schristos GETBYTE ();
166775fd0b74Schristos switch (op[1] & 0x00)
166875fd0b74Schristos {
166975fd0b74Schristos case 0x00:
167075fd0b74Schristos goto op_semantics_19;
167175fd0b74Schristos break;
167275fd0b74Schristos }
167375fd0b74Schristos break;
167475fd0b74Schristos case 0x13:
167575fd0b74Schristos GETBYTE ();
167675fd0b74Schristos switch (op[1] & 0xff)
167775fd0b74Schristos {
167875fd0b74Schristos case 0x00:
167975fd0b74Schristos {
168075fd0b74Schristos /** 0001 0011 0000 0000 RETI */
168175fd0b74Schristos if (trace)
168275fd0b74Schristos {
168375fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
168475fd0b74Schristos "/** 0001 0011 0000 0000 RETI */",
168575fd0b74Schristos op[0], op[1]);
168675fd0b74Schristos }
168775fd0b74Schristos SYNTAX("RETI");
1688ede78133Schristos #line 550 "msp430-decode.opc"
168975fd0b74Schristos ID (MSO_reti);
169075fd0b74Schristos msp430->size = 20;
169175fd0b74Schristos msp430->ofs_430x = 1;
169275fd0b74Schristos
169375fd0b74Schristos }
169475fd0b74Schristos break;
169575fd0b74Schristos case 0x01:
169675fd0b74Schristos case 0x02:
169775fd0b74Schristos case 0x03:
169875fd0b74Schristos case 0x04:
169975fd0b74Schristos case 0x05:
170075fd0b74Schristos case 0x06:
170175fd0b74Schristos case 0x07:
170275fd0b74Schristos case 0x08:
170375fd0b74Schristos case 0x09:
170475fd0b74Schristos case 0x0a:
170575fd0b74Schristos case 0x0b:
170675fd0b74Schristos case 0x0c:
170775fd0b74Schristos case 0x0d:
170875fd0b74Schristos case 0x0e:
170975fd0b74Schristos case 0x0f:
171075fd0b74Schristos case 0x10:
171175fd0b74Schristos case 0x11:
171275fd0b74Schristos case 0x12:
171375fd0b74Schristos case 0x13:
171475fd0b74Schristos case 0x14:
171575fd0b74Schristos case 0x15:
171675fd0b74Schristos case 0x16:
171775fd0b74Schristos case 0x17:
171875fd0b74Schristos case 0x18:
171975fd0b74Schristos case 0x19:
172075fd0b74Schristos case 0x1a:
172175fd0b74Schristos case 0x1b:
172275fd0b74Schristos case 0x1c:
172375fd0b74Schristos case 0x1d:
172475fd0b74Schristos case 0x1e:
172575fd0b74Schristos case 0x1f:
172675fd0b74Schristos case 0x20:
172775fd0b74Schristos case 0x21:
172875fd0b74Schristos case 0x22:
172975fd0b74Schristos case 0x23:
173075fd0b74Schristos case 0x24:
173175fd0b74Schristos case 0x25:
173275fd0b74Schristos case 0x26:
173375fd0b74Schristos case 0x27:
173475fd0b74Schristos case 0x28:
173575fd0b74Schristos case 0x29:
173675fd0b74Schristos case 0x2a:
173775fd0b74Schristos case 0x2b:
173875fd0b74Schristos case 0x2c:
173975fd0b74Schristos case 0x2d:
174075fd0b74Schristos case 0x2e:
174175fd0b74Schristos case 0x2f:
174275fd0b74Schristos case 0x30:
174375fd0b74Schristos case 0x31:
174475fd0b74Schristos case 0x32:
174575fd0b74Schristos case 0x33:
174675fd0b74Schristos case 0x34:
174775fd0b74Schristos case 0x35:
174875fd0b74Schristos case 0x36:
174975fd0b74Schristos case 0x37:
175075fd0b74Schristos case 0x38:
175175fd0b74Schristos case 0x39:
175275fd0b74Schristos case 0x3a:
175375fd0b74Schristos case 0x3b:
175475fd0b74Schristos case 0x3c:
175575fd0b74Schristos case 0x3d:
175675fd0b74Schristos case 0x3e:
175775fd0b74Schristos case 0x3f:
175875fd0b74Schristos case 0xa0:
175975fd0b74Schristos case 0xa1:
176075fd0b74Schristos case 0xa2:
176175fd0b74Schristos case 0xa3:
176275fd0b74Schristos case 0xa4:
176375fd0b74Schristos case 0xa5:
176475fd0b74Schristos case 0xa6:
176575fd0b74Schristos case 0xa7:
176675fd0b74Schristos case 0xa8:
176775fd0b74Schristos case 0xa9:
176875fd0b74Schristos case 0xaa:
176975fd0b74Schristos case 0xab:
177075fd0b74Schristos case 0xac:
177175fd0b74Schristos case 0xad:
177275fd0b74Schristos case 0xae:
177375fd0b74Schristos case 0xaf:
177475fd0b74Schristos case 0xc0:
177575fd0b74Schristos case 0xc1:
177675fd0b74Schristos case 0xc2:
177775fd0b74Schristos case 0xc3:
177875fd0b74Schristos case 0xc4:
177975fd0b74Schristos case 0xc5:
178075fd0b74Schristos case 0xc6:
178175fd0b74Schristos case 0xc7:
178275fd0b74Schristos case 0xc8:
178375fd0b74Schristos case 0xc9:
178475fd0b74Schristos case 0xca:
178575fd0b74Schristos case 0xcb:
178675fd0b74Schristos case 0xcc:
178775fd0b74Schristos case 0xcd:
178875fd0b74Schristos case 0xce:
178975fd0b74Schristos case 0xcf:
179075fd0b74Schristos case 0xd0:
179175fd0b74Schristos case 0xd1:
179275fd0b74Schristos case 0xd2:
179375fd0b74Schristos case 0xd3:
179475fd0b74Schristos case 0xd4:
179575fd0b74Schristos case 0xd5:
179675fd0b74Schristos case 0xd6:
179775fd0b74Schristos case 0xd7:
179875fd0b74Schristos case 0xd8:
179975fd0b74Schristos case 0xd9:
180075fd0b74Schristos case 0xda:
180175fd0b74Schristos case 0xdb:
180275fd0b74Schristos case 0xdc:
180375fd0b74Schristos case 0xdd:
180475fd0b74Schristos case 0xde:
180575fd0b74Schristos case 0xdf:
180675fd0b74Schristos case 0xe0:
180775fd0b74Schristos case 0xe1:
180875fd0b74Schristos case 0xe2:
180975fd0b74Schristos case 0xe3:
181075fd0b74Schristos case 0xe4:
181175fd0b74Schristos case 0xe5:
181275fd0b74Schristos case 0xe6:
181375fd0b74Schristos case 0xe7:
181475fd0b74Schristos case 0xe8:
181575fd0b74Schristos case 0xe9:
181675fd0b74Schristos case 0xea:
181775fd0b74Schristos case 0xeb:
181875fd0b74Schristos case 0xec:
181975fd0b74Schristos case 0xed:
182075fd0b74Schristos case 0xee:
182175fd0b74Schristos case 0xef:
182275fd0b74Schristos case 0xf0:
182375fd0b74Schristos case 0xf1:
182475fd0b74Schristos case 0xf2:
182575fd0b74Schristos case 0xf3:
182675fd0b74Schristos case 0xf4:
182775fd0b74Schristos case 0xf5:
182875fd0b74Schristos case 0xf6:
182975fd0b74Schristos case 0xf7:
183075fd0b74Schristos case 0xf8:
183175fd0b74Schristos case 0xf9:
183275fd0b74Schristos case 0xfa:
183375fd0b74Schristos case 0xfb:
183475fd0b74Schristos case 0xfc:
183575fd0b74Schristos case 0xfd:
183675fd0b74Schristos case 0xfe:
183775fd0b74Schristos case 0xff:
183875fd0b74Schristos goto op_semantics_19;
183975fd0b74Schristos break;
184075fd0b74Schristos case 0x40:
184175fd0b74Schristos case 0x41:
184275fd0b74Schristos case 0x42:
184375fd0b74Schristos case 0x43:
184475fd0b74Schristos case 0x44:
184575fd0b74Schristos case 0x45:
184675fd0b74Schristos case 0x46:
184775fd0b74Schristos case 0x47:
184875fd0b74Schristos case 0x48:
184975fd0b74Schristos case 0x49:
185075fd0b74Schristos case 0x4a:
185175fd0b74Schristos case 0x4b:
185275fd0b74Schristos case 0x4c:
185375fd0b74Schristos case 0x4d:
185475fd0b74Schristos case 0x4e:
185575fd0b74Schristos case 0x4f:
185675fd0b74Schristos case 0x50:
185775fd0b74Schristos case 0x51:
185875fd0b74Schristos case 0x52:
185975fd0b74Schristos case 0x53:
186075fd0b74Schristos case 0x54:
186175fd0b74Schristos case 0x55:
186275fd0b74Schristos case 0x56:
186375fd0b74Schristos case 0x57:
186475fd0b74Schristos case 0x58:
186575fd0b74Schristos case 0x59:
186675fd0b74Schristos case 0x5a:
186775fd0b74Schristos case 0x5b:
186875fd0b74Schristos case 0x5c:
186975fd0b74Schristos case 0x5d:
187075fd0b74Schristos case 0x5e:
187175fd0b74Schristos case 0x5f:
187275fd0b74Schristos case 0x60:
187375fd0b74Schristos case 0x61:
187475fd0b74Schristos case 0x62:
187575fd0b74Schristos case 0x63:
187675fd0b74Schristos case 0x64:
187775fd0b74Schristos case 0x65:
187875fd0b74Schristos case 0x66:
187975fd0b74Schristos case 0x67:
188075fd0b74Schristos case 0x68:
188175fd0b74Schristos case 0x69:
188275fd0b74Schristos case 0x6a:
188375fd0b74Schristos case 0x6b:
188475fd0b74Schristos case 0x6c:
188575fd0b74Schristos case 0x6d:
188675fd0b74Schristos case 0x6e:
188775fd0b74Schristos case 0x6f:
188875fd0b74Schristos case 0x70:
188975fd0b74Schristos case 0x71:
189075fd0b74Schristos case 0x72:
189175fd0b74Schristos case 0x73:
189275fd0b74Schristos case 0x74:
189375fd0b74Schristos case 0x75:
189475fd0b74Schristos case 0x76:
189575fd0b74Schristos case 0x77:
189675fd0b74Schristos case 0x78:
189775fd0b74Schristos case 0x79:
189875fd0b74Schristos case 0x7a:
189975fd0b74Schristos case 0x7b:
190075fd0b74Schristos case 0x7c:
190175fd0b74Schristos case 0x7d:
190275fd0b74Schristos case 0x7e:
190375fd0b74Schristos case 0x7f:
190475fd0b74Schristos {
190575fd0b74Schristos /** 0001 0011 01as dstr CALLA %0 */
1906ede78133Schristos #line 555 "msp430-decode.opc"
190775fd0b74Schristos int as AU = (op[1] >> 4) & 0x03;
1908ede78133Schristos #line 555 "msp430-decode.opc"
190975fd0b74Schristos int dstr AU = op[1] & 0x0f;
191075fd0b74Schristos if (trace)
191175fd0b74Schristos {
191275fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
191375fd0b74Schristos "/** 0001 0011 01as dstr CALLA %0 */",
191475fd0b74Schristos op[0], op[1]);
191575fd0b74Schristos printf (" as = 0x%x,", as);
191675fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
191775fd0b74Schristos }
191875fd0b74Schristos SYNTAX("CALLA %0");
1919ede78133Schristos #line 555 "msp430-decode.opc"
192075fd0b74Schristos ID (MSO_call); AS (dstr, as);
192175fd0b74Schristos msp430->size = 20;
192275fd0b74Schristos msp430->ofs_430x = 1;
192375fd0b74Schristos
192475fd0b74Schristos }
192575fd0b74Schristos break;
192675fd0b74Schristos case 0x80:
192775fd0b74Schristos case 0x81:
192875fd0b74Schristos case 0x82:
192975fd0b74Schristos case 0x83:
193075fd0b74Schristos case 0x84:
193175fd0b74Schristos case 0x85:
193275fd0b74Schristos case 0x86:
193375fd0b74Schristos case 0x87:
193475fd0b74Schristos case 0x88:
193575fd0b74Schristos case 0x89:
193675fd0b74Schristos case 0x8a:
193775fd0b74Schristos case 0x8b:
193875fd0b74Schristos case 0x8c:
193975fd0b74Schristos case 0x8d:
194075fd0b74Schristos case 0x8e:
194175fd0b74Schristos case 0x8f:
194275fd0b74Schristos {
194375fd0b74Schristos /** 0001 0011 1000 extb CALLA %0 */
1944ede78133Schristos #line 560 "msp430-decode.opc"
194575fd0b74Schristos int extb AU = op[1] & 0x0f;
194675fd0b74Schristos if (trace)
194775fd0b74Schristos {
194875fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
194975fd0b74Schristos "/** 0001 0011 1000 extb CALLA %0 */",
195075fd0b74Schristos op[0], op[1]);
195175fd0b74Schristos printf (" extb = 0x%x\n", extb);
195275fd0b74Schristos }
195375fd0b74Schristos SYNTAX("CALLA %0");
1954ede78133Schristos #line 560 "msp430-decode.opc"
195575fd0b74Schristos ID (MSO_call); SA (IMMU(2) | (extb << 16));
195675fd0b74Schristos msp430->size = 20;
195775fd0b74Schristos msp430->ofs_430x = 1;
195875fd0b74Schristos
195975fd0b74Schristos }
196075fd0b74Schristos break;
196175fd0b74Schristos case 0x90:
196275fd0b74Schristos case 0x91:
196375fd0b74Schristos case 0x92:
196475fd0b74Schristos case 0x93:
196575fd0b74Schristos case 0x94:
196675fd0b74Schristos case 0x95:
196775fd0b74Schristos case 0x96:
196875fd0b74Schristos case 0x97:
196975fd0b74Schristos case 0x98:
197075fd0b74Schristos case 0x99:
197175fd0b74Schristos case 0x9a:
197275fd0b74Schristos case 0x9b:
197375fd0b74Schristos case 0x9c:
197475fd0b74Schristos case 0x9d:
197575fd0b74Schristos case 0x9e:
197675fd0b74Schristos case 0x9f:
197775fd0b74Schristos {
197875fd0b74Schristos /** 0001 0011 1001 extb CALLA %0 */
1979ede78133Schristos #line 565 "msp430-decode.opc"
198075fd0b74Schristos int extb AU = op[1] & 0x0f;
198175fd0b74Schristos if (trace)
198275fd0b74Schristos {
198375fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
198475fd0b74Schristos "/** 0001 0011 1001 extb CALLA %0 */",
198575fd0b74Schristos op[0], op[1]);
198675fd0b74Schristos printf (" extb = 0x%x\n", extb);
198775fd0b74Schristos }
198875fd0b74Schristos SYNTAX("CALLA %0");
1989ede78133Schristos #line 565 "msp430-decode.opc"
199075fd0b74Schristos raddr = IMMU(2) | (extb << 16);
199175fd0b74Schristos if (raddr & 0x80000)
199275fd0b74Schristos raddr -= 0x100000;
199375fd0b74Schristos ID (MSO_call); SA (pc + raddr + msp430->n_bytes);
199475fd0b74Schristos msp430->size = 20;
199575fd0b74Schristos msp430->ofs_430x = 1;
199675fd0b74Schristos
199775fd0b74Schristos }
199875fd0b74Schristos break;
199975fd0b74Schristos case 0xb0:
200075fd0b74Schristos case 0xb1:
200175fd0b74Schristos case 0xb2:
200275fd0b74Schristos case 0xb3:
200375fd0b74Schristos case 0xb4:
200475fd0b74Schristos case 0xb5:
200575fd0b74Schristos case 0xb6:
200675fd0b74Schristos case 0xb7:
200775fd0b74Schristos case 0xb8:
200875fd0b74Schristos case 0xb9:
200975fd0b74Schristos case 0xba:
201075fd0b74Schristos case 0xbb:
201175fd0b74Schristos case 0xbc:
201275fd0b74Schristos case 0xbd:
201375fd0b74Schristos case 0xbe:
201475fd0b74Schristos case 0xbf:
201575fd0b74Schristos {
201675fd0b74Schristos /** 0001 0011 1011 extb CALLA %0 */
2017ede78133Schristos #line 573 "msp430-decode.opc"
201875fd0b74Schristos int extb AU = op[1] & 0x0f;
201975fd0b74Schristos if (trace)
202075fd0b74Schristos {
202175fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
202275fd0b74Schristos "/** 0001 0011 1011 extb CALLA %0 */",
202375fd0b74Schristos op[0], op[1]);
202475fd0b74Schristos printf (" extb = 0x%x\n", extb);
202575fd0b74Schristos }
202675fd0b74Schristos SYNTAX("CALLA %0");
2027ede78133Schristos #line 573 "msp430-decode.opc"
202875fd0b74Schristos ID (MSO_call); SC (IMMU(2) | (extb << 16));
202975fd0b74Schristos msp430->size = 20;
203075fd0b74Schristos msp430->ofs_430x = 1;
203175fd0b74Schristos
203275fd0b74Schristos }
203375fd0b74Schristos break;
203475fd0b74Schristos }
203575fd0b74Schristos break;
203675fd0b74Schristos case 0x14:
203775fd0b74Schristos GETBYTE ();
203875fd0b74Schristos switch (op[1] & 0x00)
203975fd0b74Schristos {
204075fd0b74Schristos case 0x00:
204175fd0b74Schristos op_semantics_20:
204275fd0b74Schristos {
204375fd0b74Schristos /** 0001 010w bits srcr PUSHM.A %0 */
2044ede78133Schristos #line 578 "msp430-decode.opc"
204575fd0b74Schristos int w AU = op[0] & 0x01;
2046ede78133Schristos #line 578 "msp430-decode.opc"
204775fd0b74Schristos int bits AU = (op[1] >> 4) & 0x0f;
2048ede78133Schristos #line 578 "msp430-decode.opc"
204975fd0b74Schristos int srcr AU = op[1] & 0x0f;
205075fd0b74Schristos if (trace)
205175fd0b74Schristos {
205275fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
205375fd0b74Schristos "/** 0001 010w bits srcr PUSHM.A %0 */",
205475fd0b74Schristos op[0], op[1]);
205575fd0b74Schristos printf (" w = 0x%x,", w);
205675fd0b74Schristos printf (" bits = 0x%x,", bits);
205775fd0b74Schristos printf (" srcr = 0x%x\n", srcr);
205875fd0b74Schristos }
205975fd0b74Schristos SYNTAX("PUSHM.A %0");
2060ede78133Schristos #line 578 "msp430-decode.opc"
206175fd0b74Schristos ID (MSO_push); SR (srcr);
206275fd0b74Schristos msp430->size = w ? 16 : 20;
206375fd0b74Schristos msp430->repeats = bits;
206475fd0b74Schristos msp430->ofs_430x = 1;
206575fd0b74Schristos
206675fd0b74Schristos }
206775fd0b74Schristos break;
206875fd0b74Schristos }
206975fd0b74Schristos break;
207075fd0b74Schristos case 0x15:
207175fd0b74Schristos GETBYTE ();
207275fd0b74Schristos switch (op[1] & 0x00)
207375fd0b74Schristos {
207475fd0b74Schristos case 0x00:
207575fd0b74Schristos goto op_semantics_20;
207675fd0b74Schristos break;
207775fd0b74Schristos }
207875fd0b74Schristos break;
207975fd0b74Schristos case 0x16:
208075fd0b74Schristos GETBYTE ();
208175fd0b74Schristos switch (op[1] & 0x00)
208275fd0b74Schristos {
208375fd0b74Schristos case 0x00:
208475fd0b74Schristos op_semantics_21:
208575fd0b74Schristos {
208675fd0b74Schristos /** 0001 011w bits dstr POPM.A %0 */
2087ede78133Schristos #line 584 "msp430-decode.opc"
208875fd0b74Schristos int w AU = op[0] & 0x01;
2089ede78133Schristos #line 584 "msp430-decode.opc"
209075fd0b74Schristos int bits AU = (op[1] >> 4) & 0x0f;
2091ede78133Schristos #line 584 "msp430-decode.opc"
209275fd0b74Schristos int dstr AU = op[1] & 0x0f;
209375fd0b74Schristos if (trace)
209475fd0b74Schristos {
209575fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
209675fd0b74Schristos "/** 0001 011w bits dstr POPM.A %0 */",
209775fd0b74Schristos op[0], op[1]);
209875fd0b74Schristos printf (" w = 0x%x,", w);
209975fd0b74Schristos printf (" bits = 0x%x,", bits);
210075fd0b74Schristos printf (" dstr = 0x%x\n", dstr);
210175fd0b74Schristos }
210275fd0b74Schristos SYNTAX("POPM.A %0");
2103ede78133Schristos #line 584 "msp430-decode.opc"
210475fd0b74Schristos ID (MSO_pop); DR (dstr);
210575fd0b74Schristos msp430->size = w ? 16 : 20;
210675fd0b74Schristos msp430->repeats = bits;
210775fd0b74Schristos msp430->ofs_430x = 1;
210875fd0b74Schristos
210975fd0b74Schristos }
211075fd0b74Schristos break;
211175fd0b74Schristos }
211275fd0b74Schristos break;
211375fd0b74Schristos case 0x17:
211475fd0b74Schristos GETBYTE ();
211575fd0b74Schristos switch (op[1] & 0x00)
211675fd0b74Schristos {
211775fd0b74Schristos case 0x00:
211875fd0b74Schristos goto op_semantics_21;
211975fd0b74Schristos break;
212075fd0b74Schristos }
212175fd0b74Schristos break;
212275fd0b74Schristos case 0x18:
212375fd0b74Schristos GETBYTE ();
212475fd0b74Schristos switch (op[1] & 0x30)
212575fd0b74Schristos {
212675fd0b74Schristos case 0x00:
212775fd0b74Schristos op_semantics_22:
212875fd0b74Schristos {
212975fd0b74Schristos /** 0001 1srx t l 00 dsxt 430x */
2130ede78133Schristos #line 352 "msp430-decode.opc"
213175fd0b74Schristos int srx AU = op[0] & 0x07;
2132ede78133Schristos #line 352 "msp430-decode.opc"
213375fd0b74Schristos int t AU = (op[1] >> 7) & 0x01;
2134ede78133Schristos #line 352 "msp430-decode.opc"
213575fd0b74Schristos int l AU = (op[1] >> 6) & 0x01;
2136ede78133Schristos #line 352 "msp430-decode.opc"
213775fd0b74Schristos int dsxt AU = op[1] & 0x0f;
213875fd0b74Schristos if (trace)
213975fd0b74Schristos {
214075fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
214175fd0b74Schristos "/** 0001 1srx t l 00 dsxt 430x */",
214275fd0b74Schristos op[0], op[1]);
214375fd0b74Schristos printf (" srx = 0x%x,", srx);
214475fd0b74Schristos printf (" t = 0x%x,", t);
214575fd0b74Schristos printf (" l = 0x%x,", l);
214675fd0b74Schristos printf (" dsxt = 0x%x\n", dsxt);
214775fd0b74Schristos }
214875fd0b74Schristos SYNTAX("430x");
2149ede78133Schristos #line 352 "msp430-decode.opc"
215075fd0b74Schristos
215175fd0b74Schristos al_bit = l;
215275fd0b74Schristos srxt_bits = srx * 2 + t;
215375fd0b74Schristos dsxt_bits = dsxt;
215475fd0b74Schristos op = op_buf + lds.op_ptr;
215575fd0b74Schristos msp430->ofs_430x = 1;
215675fd0b74Schristos goto post_extension_word;
215775fd0b74Schristos
215875fd0b74Schristos /* double-op insns:
215975fd0b74Schristos opcode:4 sreg:4 Ad:1 BW:1 As:2 Dreg:4
216075fd0b74Schristos
216175fd0b74Schristos single-op insn:
216275fd0b74Schristos opcode:9 BW:1 Ad:2 DSreg:4
216375fd0b74Schristos
216475fd0b74Schristos jumps:
216575fd0b74Schristos opcode:3 Cond:3 pcrel:10. */
216675fd0b74Schristos
216775fd0b74Schristos /* Double-Operand "opcode" fields. */
216875fd0b74Schristos
216975fd0b74Schristos }
217075fd0b74Schristos break;
217175fd0b74Schristos default: UNSUPPORTED(); break;
217275fd0b74Schristos }
217375fd0b74Schristos break;
217475fd0b74Schristos case 0x19:
217575fd0b74Schristos GETBYTE ();
217675fd0b74Schristos switch (op[1] & 0x30)
217775fd0b74Schristos {
217875fd0b74Schristos case 0x00:
217975fd0b74Schristos goto op_semantics_22;
218075fd0b74Schristos break;
218175fd0b74Schristos default: UNSUPPORTED(); break;
218275fd0b74Schristos }
218375fd0b74Schristos break;
218475fd0b74Schristos case 0x1a:
218575fd0b74Schristos GETBYTE ();
218675fd0b74Schristos switch (op[1] & 0x30)
218775fd0b74Schristos {
218875fd0b74Schristos case 0x00:
218975fd0b74Schristos goto op_semantics_22;
219075fd0b74Schristos break;
219175fd0b74Schristos default: UNSUPPORTED(); break;
219275fd0b74Schristos }
219375fd0b74Schristos break;
219475fd0b74Schristos case 0x1b:
219575fd0b74Schristos GETBYTE ();
219675fd0b74Schristos switch (op[1] & 0x30)
219775fd0b74Schristos {
219875fd0b74Schristos case 0x00:
219975fd0b74Schristos goto op_semantics_22;
220075fd0b74Schristos break;
220175fd0b74Schristos default: UNSUPPORTED(); break;
220275fd0b74Schristos }
220375fd0b74Schristos break;
220475fd0b74Schristos case 0x1c:
220575fd0b74Schristos GETBYTE ();
220675fd0b74Schristos switch (op[1] & 0x30)
220775fd0b74Schristos {
220875fd0b74Schristos case 0x00:
220975fd0b74Schristos goto op_semantics_22;
221075fd0b74Schristos break;
221175fd0b74Schristos default: UNSUPPORTED(); break;
221275fd0b74Schristos }
221375fd0b74Schristos break;
221475fd0b74Schristos case 0x1d:
221575fd0b74Schristos GETBYTE ();
221675fd0b74Schristos switch (op[1] & 0x30)
221775fd0b74Schristos {
221875fd0b74Schristos case 0x00:
221975fd0b74Schristos goto op_semantics_22;
222075fd0b74Schristos break;
222175fd0b74Schristos default: UNSUPPORTED(); break;
222275fd0b74Schristos }
222375fd0b74Schristos break;
222475fd0b74Schristos case 0x1e:
222575fd0b74Schristos GETBYTE ();
222675fd0b74Schristos switch (op[1] & 0x30)
222775fd0b74Schristos {
222875fd0b74Schristos case 0x00:
222975fd0b74Schristos goto op_semantics_22;
223075fd0b74Schristos break;
223175fd0b74Schristos default: UNSUPPORTED(); break;
223275fd0b74Schristos }
223375fd0b74Schristos break;
223475fd0b74Schristos case 0x1f:
223575fd0b74Schristos GETBYTE ();
223675fd0b74Schristos switch (op[1] & 0x30)
223775fd0b74Schristos {
223875fd0b74Schristos case 0x00:
223975fd0b74Schristos goto op_semantics_22;
224075fd0b74Schristos break;
224175fd0b74Schristos default: UNSUPPORTED(); break;
224275fd0b74Schristos }
224375fd0b74Schristos break;
224475fd0b74Schristos case 0x20:
224575fd0b74Schristos GETBYTE ();
224675fd0b74Schristos switch (op[1] & 0x00)
224775fd0b74Schristos {
224875fd0b74Schristos case 0x00:
224975fd0b74Schristos op_semantics_23:
225075fd0b74Schristos {
225175fd0b74Schristos /** 001jmp aa addrlsbs %J %1 */
2252ede78133Schristos #line 426 "msp430-decode.opc"
225375fd0b74Schristos int jmp AU = (op[0] >> 2) & 0x07;
2254ede78133Schristos #line 426 "msp430-decode.opc"
225575fd0b74Schristos int aa AU = op[0] & 0x03;
2256ede78133Schristos #line 426 "msp430-decode.opc"
225775fd0b74Schristos int addrlsbs AU = op[1];
225875fd0b74Schristos if (trace)
225975fd0b74Schristos {
226075fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
226175fd0b74Schristos "/** 001jmp aa addrlsbs %J %1 */",
226275fd0b74Schristos op[0], op[1]);
226375fd0b74Schristos printf (" jmp = 0x%x,", jmp);
226475fd0b74Schristos printf (" aa = 0x%x,", aa);
226575fd0b74Schristos printf (" addrlsbs = 0x%x\n", addrlsbs);
226675fd0b74Schristos }
226775fd0b74Schristos SYNTAX("%J %1");
2268ede78133Schristos #line 426 "msp430-decode.opc"
226975fd0b74Schristos
227075fd0b74Schristos raddr = (aa << 9) | (addrlsbs << 1);
227175fd0b74Schristos if (raddr & 0x400)
227275fd0b74Schristos raddr = raddr - 0x800;
227375fd0b74Schristos /* This is a pc-relative jump, but we don't use SM because that
227475fd0b74Schristos would load the target address from the memory at X(PC), not use
227575fd0b74Schristos PC+X *as* the address. So we use SC to use the address, not the
227675fd0b74Schristos data at that address. */
227775fd0b74Schristos ID (MSO_jmp); SC (pc + raddr + msp430->n_bytes);
227875fd0b74Schristos msp430->cond = jmp;
227975fd0b74Schristos
228075fd0b74Schristos /* Extended instructions. */
228175fd0b74Schristos
228275fd0b74Schristos }
228375fd0b74Schristos break;
228475fd0b74Schristos }
228575fd0b74Schristos break;
228675fd0b74Schristos case 0x21:
228775fd0b74Schristos GETBYTE ();
228875fd0b74Schristos switch (op[1] & 0x00)
228975fd0b74Schristos {
229075fd0b74Schristos case 0x00:
229175fd0b74Schristos goto op_semantics_23;
229275fd0b74Schristos break;
229375fd0b74Schristos }
229475fd0b74Schristos break;
229575fd0b74Schristos case 0x22:
229675fd0b74Schristos GETBYTE ();
229775fd0b74Schristos switch (op[1] & 0x00)
229875fd0b74Schristos {
229975fd0b74Schristos case 0x00:
230075fd0b74Schristos goto op_semantics_23;
230175fd0b74Schristos break;
230275fd0b74Schristos }
230375fd0b74Schristos break;
230475fd0b74Schristos case 0x23:
230575fd0b74Schristos GETBYTE ();
230675fd0b74Schristos switch (op[1] & 0x00)
230775fd0b74Schristos {
230875fd0b74Schristos case 0x00:
230975fd0b74Schristos goto op_semantics_23;
231075fd0b74Schristos break;
231175fd0b74Schristos }
231275fd0b74Schristos break;
231375fd0b74Schristos case 0x24:
231475fd0b74Schristos GETBYTE ();
231575fd0b74Schristos switch (op[1] & 0x00)
231675fd0b74Schristos {
231775fd0b74Schristos case 0x00:
231875fd0b74Schristos goto op_semantics_23;
231975fd0b74Schristos break;
232075fd0b74Schristos }
232175fd0b74Schristos break;
232275fd0b74Schristos case 0x25:
232375fd0b74Schristos GETBYTE ();
232475fd0b74Schristos switch (op[1] & 0x00)
232575fd0b74Schristos {
232675fd0b74Schristos case 0x00:
232775fd0b74Schristos goto op_semantics_23;
232875fd0b74Schristos break;
232975fd0b74Schristos }
233075fd0b74Schristos break;
233175fd0b74Schristos case 0x26:
233275fd0b74Schristos GETBYTE ();
233375fd0b74Schristos switch (op[1] & 0x00)
233475fd0b74Schristos {
233575fd0b74Schristos case 0x00:
233675fd0b74Schristos goto op_semantics_23;
233775fd0b74Schristos break;
233875fd0b74Schristos }
233975fd0b74Schristos break;
234075fd0b74Schristos case 0x27:
234175fd0b74Schristos GETBYTE ();
234275fd0b74Schristos switch (op[1] & 0x00)
234375fd0b74Schristos {
234475fd0b74Schristos case 0x00:
234575fd0b74Schristos goto op_semantics_23;
234675fd0b74Schristos break;
234775fd0b74Schristos }
234875fd0b74Schristos break;
234975fd0b74Schristos case 0x28:
235075fd0b74Schristos GETBYTE ();
235175fd0b74Schristos switch (op[1] & 0x00)
235275fd0b74Schristos {
235375fd0b74Schristos case 0x00:
235475fd0b74Schristos goto op_semantics_23;
235575fd0b74Schristos break;
235675fd0b74Schristos }
235775fd0b74Schristos break;
235875fd0b74Schristos case 0x29:
235975fd0b74Schristos GETBYTE ();
236075fd0b74Schristos switch (op[1] & 0x00)
236175fd0b74Schristos {
236275fd0b74Schristos case 0x00:
236375fd0b74Schristos goto op_semantics_23;
236475fd0b74Schristos break;
236575fd0b74Schristos }
236675fd0b74Schristos break;
236775fd0b74Schristos case 0x2a:
236875fd0b74Schristos GETBYTE ();
236975fd0b74Schristos switch (op[1] & 0x00)
237075fd0b74Schristos {
237175fd0b74Schristos case 0x00:
237275fd0b74Schristos goto op_semantics_23;
237375fd0b74Schristos break;
237475fd0b74Schristos }
237575fd0b74Schristos break;
237675fd0b74Schristos case 0x2b:
237775fd0b74Schristos GETBYTE ();
237875fd0b74Schristos switch (op[1] & 0x00)
237975fd0b74Schristos {
238075fd0b74Schristos case 0x00:
238175fd0b74Schristos goto op_semantics_23;
238275fd0b74Schristos break;
238375fd0b74Schristos }
238475fd0b74Schristos break;
238575fd0b74Schristos case 0x2c:
238675fd0b74Schristos GETBYTE ();
238775fd0b74Schristos switch (op[1] & 0x00)
238875fd0b74Schristos {
238975fd0b74Schristos case 0x00:
239075fd0b74Schristos goto op_semantics_23;
239175fd0b74Schristos break;
239275fd0b74Schristos }
239375fd0b74Schristos break;
239475fd0b74Schristos case 0x2d:
239575fd0b74Schristos GETBYTE ();
239675fd0b74Schristos switch (op[1] & 0x00)
239775fd0b74Schristos {
239875fd0b74Schristos case 0x00:
239975fd0b74Schristos goto op_semantics_23;
240075fd0b74Schristos break;
240175fd0b74Schristos }
240275fd0b74Schristos break;
240375fd0b74Schristos case 0x2e:
240475fd0b74Schristos GETBYTE ();
240575fd0b74Schristos switch (op[1] & 0x00)
240675fd0b74Schristos {
240775fd0b74Schristos case 0x00:
240875fd0b74Schristos goto op_semantics_23;
240975fd0b74Schristos break;
241075fd0b74Schristos }
241175fd0b74Schristos break;
241275fd0b74Schristos case 0x2f:
241375fd0b74Schristos GETBYTE ();
241475fd0b74Schristos switch (op[1] & 0x00)
241575fd0b74Schristos {
241675fd0b74Schristos case 0x00:
241775fd0b74Schristos goto op_semantics_23;
241875fd0b74Schristos break;
241975fd0b74Schristos }
242075fd0b74Schristos break;
242175fd0b74Schristos case 0x30:
242275fd0b74Schristos GETBYTE ();
242375fd0b74Schristos switch (op[1] & 0x00)
242475fd0b74Schristos {
242575fd0b74Schristos case 0x00:
242675fd0b74Schristos goto op_semantics_23;
242775fd0b74Schristos break;
242875fd0b74Schristos }
242975fd0b74Schristos break;
243075fd0b74Schristos case 0x31:
243175fd0b74Schristos GETBYTE ();
243275fd0b74Schristos switch (op[1] & 0x00)
243375fd0b74Schristos {
243475fd0b74Schristos case 0x00:
243575fd0b74Schristos goto op_semantics_23;
243675fd0b74Schristos break;
243775fd0b74Schristos }
243875fd0b74Schristos break;
243975fd0b74Schristos case 0x32:
244075fd0b74Schristos GETBYTE ();
244175fd0b74Schristos switch (op[1] & 0x00)
244275fd0b74Schristos {
244375fd0b74Schristos case 0x00:
244475fd0b74Schristos goto op_semantics_23;
244575fd0b74Schristos break;
244675fd0b74Schristos }
244775fd0b74Schristos break;
244875fd0b74Schristos case 0x33:
244975fd0b74Schristos GETBYTE ();
245075fd0b74Schristos switch (op[1] & 0x00)
245175fd0b74Schristos {
245275fd0b74Schristos case 0x00:
245375fd0b74Schristos goto op_semantics_23;
245475fd0b74Schristos break;
245575fd0b74Schristos }
245675fd0b74Schristos break;
245775fd0b74Schristos case 0x34:
245875fd0b74Schristos GETBYTE ();
245975fd0b74Schristos switch (op[1] & 0x00)
246075fd0b74Schristos {
246175fd0b74Schristos case 0x00:
246275fd0b74Schristos goto op_semantics_23;
246375fd0b74Schristos break;
246475fd0b74Schristos }
246575fd0b74Schristos break;
246675fd0b74Schristos case 0x35:
246775fd0b74Schristos GETBYTE ();
246875fd0b74Schristos switch (op[1] & 0x00)
246975fd0b74Schristos {
247075fd0b74Schristos case 0x00:
247175fd0b74Schristos goto op_semantics_23;
247275fd0b74Schristos break;
247375fd0b74Schristos }
247475fd0b74Schristos break;
247575fd0b74Schristos case 0x36:
247675fd0b74Schristos GETBYTE ();
247775fd0b74Schristos switch (op[1] & 0x00)
247875fd0b74Schristos {
247975fd0b74Schristos case 0x00:
248075fd0b74Schristos goto op_semantics_23;
248175fd0b74Schristos break;
248275fd0b74Schristos }
248375fd0b74Schristos break;
248475fd0b74Schristos case 0x37:
248575fd0b74Schristos GETBYTE ();
248675fd0b74Schristos switch (op[1] & 0x00)
248775fd0b74Schristos {
248875fd0b74Schristos case 0x00:
248975fd0b74Schristos goto op_semantics_23;
249075fd0b74Schristos break;
249175fd0b74Schristos }
249275fd0b74Schristos break;
249375fd0b74Schristos case 0x38:
249475fd0b74Schristos GETBYTE ();
249575fd0b74Schristos switch (op[1] & 0x00)
249675fd0b74Schristos {
249775fd0b74Schristos case 0x00:
249875fd0b74Schristos goto op_semantics_23;
249975fd0b74Schristos break;
250075fd0b74Schristos }
250175fd0b74Schristos break;
250275fd0b74Schristos case 0x39:
250375fd0b74Schristos GETBYTE ();
250475fd0b74Schristos switch (op[1] & 0x00)
250575fd0b74Schristos {
250675fd0b74Schristos case 0x00:
250775fd0b74Schristos goto op_semantics_23;
250875fd0b74Schristos break;
250975fd0b74Schristos }
251075fd0b74Schristos break;
251175fd0b74Schristos case 0x3a:
251275fd0b74Schristos GETBYTE ();
251375fd0b74Schristos switch (op[1] & 0x00)
251475fd0b74Schristos {
251575fd0b74Schristos case 0x00:
251675fd0b74Schristos goto op_semantics_23;
251775fd0b74Schristos break;
251875fd0b74Schristos }
251975fd0b74Schristos break;
252075fd0b74Schristos case 0x3b:
252175fd0b74Schristos GETBYTE ();
252275fd0b74Schristos switch (op[1] & 0x00)
252375fd0b74Schristos {
252475fd0b74Schristos case 0x00:
252575fd0b74Schristos goto op_semantics_23;
252675fd0b74Schristos break;
252775fd0b74Schristos }
252875fd0b74Schristos break;
252975fd0b74Schristos case 0x3c:
253075fd0b74Schristos GETBYTE ();
253175fd0b74Schristos switch (op[1] & 0x00)
253275fd0b74Schristos {
253375fd0b74Schristos case 0x00:
253475fd0b74Schristos goto op_semantics_23;
253575fd0b74Schristos break;
253675fd0b74Schristos }
253775fd0b74Schristos break;
253875fd0b74Schristos case 0x3d:
253975fd0b74Schristos GETBYTE ();
254075fd0b74Schristos switch (op[1] & 0x00)
254175fd0b74Schristos {
254275fd0b74Schristos case 0x00:
254375fd0b74Schristos goto op_semantics_23;
254475fd0b74Schristos break;
254575fd0b74Schristos }
254675fd0b74Schristos break;
254775fd0b74Schristos case 0x3e:
254875fd0b74Schristos GETBYTE ();
254975fd0b74Schristos switch (op[1] & 0x00)
255075fd0b74Schristos {
255175fd0b74Schristos case 0x00:
255275fd0b74Schristos goto op_semantics_23;
255375fd0b74Schristos break;
255475fd0b74Schristos }
255575fd0b74Schristos break;
255675fd0b74Schristos case 0x3f:
255775fd0b74Schristos GETBYTE ();
255875fd0b74Schristos switch (op[1] & 0x00)
255975fd0b74Schristos {
256075fd0b74Schristos case 0x00:
256175fd0b74Schristos goto op_semantics_23;
256275fd0b74Schristos break;
256375fd0b74Schristos }
256475fd0b74Schristos break;
256575fd0b74Schristos case 0x40:
256675fd0b74Schristos GETBYTE ();
256775fd0b74Schristos switch (op[1] & 0x00)
256875fd0b74Schristos {
256975fd0b74Schristos case 0x00:
257075fd0b74Schristos op_semantics_24:
257175fd0b74Schristos {
257275fd0b74Schristos /** dopc sreg a b as dreg %D%b %1,%0 */
2573ede78133Schristos #line 373 "msp430-decode.opc"
257475fd0b74Schristos int dopc AU = (op[0] >> 4) & 0x0f;
2575ede78133Schristos #line 373 "msp430-decode.opc"
257675fd0b74Schristos int sreg AU = op[0] & 0x0f;
2577ede78133Schristos #line 373 "msp430-decode.opc"
257875fd0b74Schristos int a AU = (op[1] >> 7) & 0x01;
2579ede78133Schristos #line 373 "msp430-decode.opc"
258075fd0b74Schristos int b AU = (op[1] >> 6) & 0x01;
2581ede78133Schristos #line 373 "msp430-decode.opc"
258275fd0b74Schristos int as AU = (op[1] >> 4) & 0x03;
2583ede78133Schristos #line 373 "msp430-decode.opc"
258475fd0b74Schristos int dreg AU = op[1] & 0x0f;
258575fd0b74Schristos if (trace)
258675fd0b74Schristos {
258775fd0b74Schristos printf ("\033[33m%s\033[0m %02x %02x\n",
258875fd0b74Schristos "/** dopc sreg a b as dreg %D%b %1,%0 */",
258975fd0b74Schristos op[0], op[1]);
259075fd0b74Schristos printf (" dopc = 0x%x,", dopc);
259175fd0b74Schristos printf (" sreg = 0x%x,", sreg);
259275fd0b74Schristos printf (" a = 0x%x,", a);
259375fd0b74Schristos printf (" b = 0x%x,", b);
259475fd0b74Schristos printf (" as = 0x%x,", as);
259575fd0b74Schristos printf (" dreg = 0x%x\n", dreg);
259675fd0b74Schristos }
259775fd0b74Schristos SYNTAX("%D%b %1,%0");
2598ede78133Schristos #line 373 "msp430-decode.opc"
259975fd0b74Schristos
260075fd0b74Schristos ID (dopc_to_id (dopc)); ASX (sreg, as, srxt_bits); ADX (dreg, a, dsxt_bits); ABW (al_bit, b);
260175fd0b74Schristos if (a == 0 && as == 0)
260275fd0b74Schristos REPZC (srxt_bits, dsxt_bits);
260375fd0b74Schristos
260475fd0b74Schristos switch (msp430->id)
260575fd0b74Schristos {
260675fd0b74Schristos case MSO_mov: F_____; break;
260775fd0b74Schristos case MSO_add: F_VNZC; break;
260875fd0b74Schristos case MSO_addc: F_VNZC; break;
260975fd0b74Schristos case MSO_subc: F_VNZC; break;
261075fd0b74Schristos case MSO_sub: F_VNZC; break;
261175fd0b74Schristos case MSO_cmp: F_VNZC; break;
261275fd0b74Schristos case MSO_dadd: F_VNZC; break;
261375fd0b74Schristos case MSO_bit: F_0NZC; break;
261475fd0b74Schristos case MSO_bic: F_____; break;
261575fd0b74Schristos case MSO_bis: F_____; break;
261675fd0b74Schristos case MSO_xor: F_VNZC; break;
261775fd0b74Schristos case MSO_and: F_0NZC; break;
261875fd0b74Schristos default: break;
261975fd0b74Schristos }
262075fd0b74Schristos
262175fd0b74Schristos }
262275fd0b74Schristos break;
262375fd0b74Schristos }
262475fd0b74Schristos break;
262575fd0b74Schristos case 0x41:
262675fd0b74Schristos GETBYTE ();
262775fd0b74Schristos switch (op[1] & 0x00)
262875fd0b74Schristos {
262975fd0b74Schristos case 0x00:
263075fd0b74Schristos goto op_semantics_24;
263175fd0b74Schristos break;
263275fd0b74Schristos }
263375fd0b74Schristos break;
263475fd0b74Schristos case 0x42:
263575fd0b74Schristos GETBYTE ();
263675fd0b74Schristos switch (op[1] & 0x00)
263775fd0b74Schristos {
263875fd0b74Schristos case 0x00:
263975fd0b74Schristos goto op_semantics_24;
264075fd0b74Schristos break;
264175fd0b74Schristos }
264275fd0b74Schristos break;
264375fd0b74Schristos case 0x43:
264475fd0b74Schristos GETBYTE ();
264575fd0b74Schristos switch (op[1] & 0x00)
264675fd0b74Schristos {
264775fd0b74Schristos case 0x00:
264875fd0b74Schristos goto op_semantics_24;
264975fd0b74Schristos break;
265075fd0b74Schristos }
265175fd0b74Schristos break;
265275fd0b74Schristos case 0x44:
265375fd0b74Schristos GETBYTE ();
265475fd0b74Schristos switch (op[1] & 0x00)
265575fd0b74Schristos {
265675fd0b74Schristos case 0x00:
265775fd0b74Schristos goto op_semantics_24;
265875fd0b74Schristos break;
265975fd0b74Schristos }
266075fd0b74Schristos break;
266175fd0b74Schristos case 0x45:
266275fd0b74Schristos GETBYTE ();
266375fd0b74Schristos switch (op[1] & 0x00)
266475fd0b74Schristos {
266575fd0b74Schristos case 0x00:
266675fd0b74Schristos goto op_semantics_24;
266775fd0b74Schristos break;
266875fd0b74Schristos }
266975fd0b74Schristos break;
267075fd0b74Schristos case 0x46:
267175fd0b74Schristos GETBYTE ();
267275fd0b74Schristos switch (op[1] & 0x00)
267375fd0b74Schristos {
267475fd0b74Schristos case 0x00:
267575fd0b74Schristos goto op_semantics_24;
267675fd0b74Schristos break;
267775fd0b74Schristos }
267875fd0b74Schristos break;
267975fd0b74Schristos case 0x47:
268075fd0b74Schristos GETBYTE ();
268175fd0b74Schristos switch (op[1] & 0x00)
268275fd0b74Schristos {
268375fd0b74Schristos case 0x00:
268475fd0b74Schristos goto op_semantics_24;
268575fd0b74Schristos break;
268675fd0b74Schristos }
268775fd0b74Schristos break;
268875fd0b74Schristos case 0x48:
268975fd0b74Schristos GETBYTE ();
269075fd0b74Schristos switch (op[1] & 0x00)
269175fd0b74Schristos {
269275fd0b74Schristos case 0x00:
269375fd0b74Schristos goto op_semantics_24;
269475fd0b74Schristos break;
269575fd0b74Schristos }
269675fd0b74Schristos break;
269775fd0b74Schristos case 0x49:
269875fd0b74Schristos GETBYTE ();
269975fd0b74Schristos switch (op[1] & 0x00)
270075fd0b74Schristos {
270175fd0b74Schristos case 0x00:
270275fd0b74Schristos goto op_semantics_24;
270375fd0b74Schristos break;
270475fd0b74Schristos }
270575fd0b74Schristos break;
270675fd0b74Schristos case 0x4a:
270775fd0b74Schristos GETBYTE ();
270875fd0b74Schristos switch (op[1] & 0x00)
270975fd0b74Schristos {
271075fd0b74Schristos case 0x00:
271175fd0b74Schristos goto op_semantics_24;
271275fd0b74Schristos break;
271375fd0b74Schristos }
271475fd0b74Schristos break;
271575fd0b74Schristos case 0x4b:
271675fd0b74Schristos GETBYTE ();
271775fd0b74Schristos switch (op[1] & 0x00)
271875fd0b74Schristos {
271975fd0b74Schristos case 0x00:
272075fd0b74Schristos goto op_semantics_24;
272175fd0b74Schristos break;
272275fd0b74Schristos }
272375fd0b74Schristos break;
272475fd0b74Schristos case 0x4c:
272575fd0b74Schristos GETBYTE ();
272675fd0b74Schristos switch (op[1] & 0x00)
272775fd0b74Schristos {
272875fd0b74Schristos case 0x00:
272975fd0b74Schristos goto op_semantics_24;
273075fd0b74Schristos break;
273175fd0b74Schristos }
273275fd0b74Schristos break;
273375fd0b74Schristos case 0x4d:
273475fd0b74Schristos GETBYTE ();
273575fd0b74Schristos switch (op[1] & 0x00)
273675fd0b74Schristos {
273775fd0b74Schristos case 0x00:
273875fd0b74Schristos goto op_semantics_24;
273975fd0b74Schristos break;
274075fd0b74Schristos }
274175fd0b74Schristos break;
274275fd0b74Schristos case 0x4e:
274375fd0b74Schristos GETBYTE ();
274475fd0b74Schristos switch (op[1] & 0x00)
274575fd0b74Schristos {
274675fd0b74Schristos case 0x00:
274775fd0b74Schristos goto op_semantics_24;
274875fd0b74Schristos break;
274975fd0b74Schristos }
275075fd0b74Schristos break;
275175fd0b74Schristos case 0x4f:
275275fd0b74Schristos GETBYTE ();
275375fd0b74Schristos switch (op[1] & 0x00)
275475fd0b74Schristos {
275575fd0b74Schristos case 0x00:
275675fd0b74Schristos goto op_semantics_24;
275775fd0b74Schristos break;
275875fd0b74Schristos }
275975fd0b74Schristos break;
276075fd0b74Schristos case 0x50:
276175fd0b74Schristos GETBYTE ();
276275fd0b74Schristos switch (op[1] & 0x00)
276375fd0b74Schristos {
276475fd0b74Schristos case 0x00:
276575fd0b74Schristos goto op_semantics_24;
276675fd0b74Schristos break;
276775fd0b74Schristos }
276875fd0b74Schristos break;
276975fd0b74Schristos case 0x51:
277075fd0b74Schristos GETBYTE ();
277175fd0b74Schristos switch (op[1] & 0x00)
277275fd0b74Schristos {
277375fd0b74Schristos case 0x00:
277475fd0b74Schristos goto op_semantics_24;
277575fd0b74Schristos break;
277675fd0b74Schristos }
277775fd0b74Schristos break;
277875fd0b74Schristos case 0x52:
277975fd0b74Schristos GETBYTE ();
278075fd0b74Schristos switch (op[1] & 0x00)
278175fd0b74Schristos {
278275fd0b74Schristos case 0x00:
278375fd0b74Schristos goto op_semantics_24;
278475fd0b74Schristos break;
278575fd0b74Schristos }
278675fd0b74Schristos break;
278775fd0b74Schristos case 0x53:
278875fd0b74Schristos GETBYTE ();
278975fd0b74Schristos switch (op[1] & 0x00)
279075fd0b74Schristos {
279175fd0b74Schristos case 0x00:
279275fd0b74Schristos goto op_semantics_24;
279375fd0b74Schristos break;
279475fd0b74Schristos }
279575fd0b74Schristos break;
279675fd0b74Schristos case 0x54:
279775fd0b74Schristos GETBYTE ();
279875fd0b74Schristos switch (op[1] & 0x00)
279975fd0b74Schristos {
280075fd0b74Schristos case 0x00:
280175fd0b74Schristos goto op_semantics_24;
280275fd0b74Schristos break;
280375fd0b74Schristos }
280475fd0b74Schristos break;
280575fd0b74Schristos case 0x55:
280675fd0b74Schristos GETBYTE ();
280775fd0b74Schristos switch (op[1] & 0x00)
280875fd0b74Schristos {
280975fd0b74Schristos case 0x00:
281075fd0b74Schristos goto op_semantics_24;
281175fd0b74Schristos break;
281275fd0b74Schristos }
281375fd0b74Schristos break;
281475fd0b74Schristos case 0x56:
281575fd0b74Schristos GETBYTE ();
281675fd0b74Schristos switch (op[1] & 0x00)
281775fd0b74Schristos {
281875fd0b74Schristos case 0x00:
281975fd0b74Schristos goto op_semantics_24;
282075fd0b74Schristos break;
282175fd0b74Schristos }
282275fd0b74Schristos break;
282375fd0b74Schristos case 0x57:
282475fd0b74Schristos GETBYTE ();
282575fd0b74Schristos switch (op[1] & 0x00)
282675fd0b74Schristos {
282775fd0b74Schristos case 0x00:
282875fd0b74Schristos goto op_semantics_24;
282975fd0b74Schristos break;
283075fd0b74Schristos }
283175fd0b74Schristos break;
283275fd0b74Schristos case 0x58:
283375fd0b74Schristos GETBYTE ();
283475fd0b74Schristos switch (op[1] & 0x00)
283575fd0b74Schristos {
283675fd0b74Schristos case 0x00:
283775fd0b74Schristos goto op_semantics_24;
283875fd0b74Schristos break;
283975fd0b74Schristos }
284075fd0b74Schristos break;
284175fd0b74Schristos case 0x59:
284275fd0b74Schristos GETBYTE ();
284375fd0b74Schristos switch (op[1] & 0x00)
284475fd0b74Schristos {
284575fd0b74Schristos case 0x00:
284675fd0b74Schristos goto op_semantics_24;
284775fd0b74Schristos break;
284875fd0b74Schristos }
284975fd0b74Schristos break;
285075fd0b74Schristos case 0x5a:
285175fd0b74Schristos GETBYTE ();
285275fd0b74Schristos switch (op[1] & 0x00)
285375fd0b74Schristos {
285475fd0b74Schristos case 0x00:
285575fd0b74Schristos goto op_semantics_24;
285675fd0b74Schristos break;
285775fd0b74Schristos }
285875fd0b74Schristos break;
285975fd0b74Schristos case 0x5b:
286075fd0b74Schristos GETBYTE ();
286175fd0b74Schristos switch (op[1] & 0x00)
286275fd0b74Schristos {
286375fd0b74Schristos case 0x00:
286475fd0b74Schristos goto op_semantics_24;
286575fd0b74Schristos break;
286675fd0b74Schristos }
286775fd0b74Schristos break;
286875fd0b74Schristos case 0x5c:
286975fd0b74Schristos GETBYTE ();
287075fd0b74Schristos switch (op[1] & 0x00)
287175fd0b74Schristos {
287275fd0b74Schristos case 0x00:
287375fd0b74Schristos goto op_semantics_24;
287475fd0b74Schristos break;
287575fd0b74Schristos }
287675fd0b74Schristos break;
287775fd0b74Schristos case 0x5d:
287875fd0b74Schristos GETBYTE ();
287975fd0b74Schristos switch (op[1] & 0x00)
288075fd0b74Schristos {
288175fd0b74Schristos case 0x00:
288275fd0b74Schristos goto op_semantics_24;
288375fd0b74Schristos break;
288475fd0b74Schristos }
288575fd0b74Schristos break;
288675fd0b74Schristos case 0x5e:
288775fd0b74Schristos GETBYTE ();
288875fd0b74Schristos switch (op[1] & 0x00)
288975fd0b74Schristos {
289075fd0b74Schristos case 0x00:
289175fd0b74Schristos goto op_semantics_24;
289275fd0b74Schristos break;
289375fd0b74Schristos }
289475fd0b74Schristos break;
289575fd0b74Schristos case 0x5f:
289675fd0b74Schristos GETBYTE ();
289775fd0b74Schristos switch (op[1] & 0x00)
289875fd0b74Schristos {
289975fd0b74Schristos case 0x00:
290075fd0b74Schristos goto op_semantics_24;
290175fd0b74Schristos break;
290275fd0b74Schristos }
290375fd0b74Schristos break;
290475fd0b74Schristos case 0x60:
290575fd0b74Schristos GETBYTE ();
290675fd0b74Schristos switch (op[1] & 0x00)
290775fd0b74Schristos {
290875fd0b74Schristos case 0x00:
290975fd0b74Schristos goto op_semantics_24;
291075fd0b74Schristos break;
291175fd0b74Schristos }
291275fd0b74Schristos break;
291375fd0b74Schristos case 0x61:
291475fd0b74Schristos GETBYTE ();
291575fd0b74Schristos switch (op[1] & 0x00)
291675fd0b74Schristos {
291775fd0b74Schristos case 0x00:
291875fd0b74Schristos goto op_semantics_24;
291975fd0b74Schristos break;
292075fd0b74Schristos }
292175fd0b74Schristos break;
292275fd0b74Schristos case 0x62:
292375fd0b74Schristos GETBYTE ();
292475fd0b74Schristos switch (op[1] & 0x00)
292575fd0b74Schristos {
292675fd0b74Schristos case 0x00:
292775fd0b74Schristos goto op_semantics_24;
292875fd0b74Schristos break;
292975fd0b74Schristos }
293075fd0b74Schristos break;
293175fd0b74Schristos case 0x63:
293275fd0b74Schristos GETBYTE ();
293375fd0b74Schristos switch (op[1] & 0x00)
293475fd0b74Schristos {
293575fd0b74Schristos case 0x00:
293675fd0b74Schristos goto op_semantics_24;
293775fd0b74Schristos break;
293875fd0b74Schristos }
293975fd0b74Schristos break;
294075fd0b74Schristos case 0x64:
294175fd0b74Schristos GETBYTE ();
294275fd0b74Schristos switch (op[1] & 0x00)
294375fd0b74Schristos {
294475fd0b74Schristos case 0x00:
294575fd0b74Schristos goto op_semantics_24;
294675fd0b74Schristos break;
294775fd0b74Schristos }
294875fd0b74Schristos break;
294975fd0b74Schristos case 0x65:
295075fd0b74Schristos GETBYTE ();
295175fd0b74Schristos switch (op[1] & 0x00)
295275fd0b74Schristos {
295375fd0b74Schristos case 0x00:
295475fd0b74Schristos goto op_semantics_24;
295575fd0b74Schristos break;
295675fd0b74Schristos }
295775fd0b74Schristos break;
295875fd0b74Schristos case 0x66:
295975fd0b74Schristos GETBYTE ();
296075fd0b74Schristos switch (op[1] & 0x00)
296175fd0b74Schristos {
296275fd0b74Schristos case 0x00:
296375fd0b74Schristos goto op_semantics_24;
296475fd0b74Schristos break;
296575fd0b74Schristos }
296675fd0b74Schristos break;
296775fd0b74Schristos case 0x67:
296875fd0b74Schristos GETBYTE ();
296975fd0b74Schristos switch (op[1] & 0x00)
297075fd0b74Schristos {
297175fd0b74Schristos case 0x00:
297275fd0b74Schristos goto op_semantics_24;
297375fd0b74Schristos break;
297475fd0b74Schristos }
297575fd0b74Schristos break;
297675fd0b74Schristos case 0x68:
297775fd0b74Schristos GETBYTE ();
297875fd0b74Schristos switch (op[1] & 0x00)
297975fd0b74Schristos {
298075fd0b74Schristos case 0x00:
298175fd0b74Schristos goto op_semantics_24;
298275fd0b74Schristos break;
298375fd0b74Schristos }
298475fd0b74Schristos break;
298575fd0b74Schristos case 0x69:
298675fd0b74Schristos GETBYTE ();
298775fd0b74Schristos switch (op[1] & 0x00)
298875fd0b74Schristos {
298975fd0b74Schristos case 0x00:
299075fd0b74Schristos goto op_semantics_24;
299175fd0b74Schristos break;
299275fd0b74Schristos }
299375fd0b74Schristos break;
299475fd0b74Schristos case 0x6a:
299575fd0b74Schristos GETBYTE ();
299675fd0b74Schristos switch (op[1] & 0x00)
299775fd0b74Schristos {
299875fd0b74Schristos case 0x00:
299975fd0b74Schristos goto op_semantics_24;
300075fd0b74Schristos break;
300175fd0b74Schristos }
300275fd0b74Schristos break;
300375fd0b74Schristos case 0x6b:
300475fd0b74Schristos GETBYTE ();
300575fd0b74Schristos switch (op[1] & 0x00)
300675fd0b74Schristos {
300775fd0b74Schristos case 0x00:
300875fd0b74Schristos goto op_semantics_24;
300975fd0b74Schristos break;
301075fd0b74Schristos }
301175fd0b74Schristos break;
301275fd0b74Schristos case 0x6c:
301375fd0b74Schristos GETBYTE ();
301475fd0b74Schristos switch (op[1] & 0x00)
301575fd0b74Schristos {
301675fd0b74Schristos case 0x00:
301775fd0b74Schristos goto op_semantics_24;
301875fd0b74Schristos break;
301975fd0b74Schristos }
302075fd0b74Schristos break;
302175fd0b74Schristos case 0x6d:
302275fd0b74Schristos GETBYTE ();
302375fd0b74Schristos switch (op[1] & 0x00)
302475fd0b74Schristos {
302575fd0b74Schristos case 0x00:
302675fd0b74Schristos goto op_semantics_24;
302775fd0b74Schristos break;
302875fd0b74Schristos }
302975fd0b74Schristos break;
303075fd0b74Schristos case 0x6e:
303175fd0b74Schristos GETBYTE ();
303275fd0b74Schristos switch (op[1] & 0x00)
303375fd0b74Schristos {
303475fd0b74Schristos case 0x00:
303575fd0b74Schristos goto op_semantics_24;
303675fd0b74Schristos break;
303775fd0b74Schristos }
303875fd0b74Schristos break;
303975fd0b74Schristos case 0x6f:
304075fd0b74Schristos GETBYTE ();
304175fd0b74Schristos switch (op[1] & 0x00)
304275fd0b74Schristos {
304375fd0b74Schristos case 0x00:
304475fd0b74Schristos goto op_semantics_24;
304575fd0b74Schristos break;
304675fd0b74Schristos }
304775fd0b74Schristos break;
304875fd0b74Schristos case 0x70:
304975fd0b74Schristos GETBYTE ();
305075fd0b74Schristos switch (op[1] & 0x00)
305175fd0b74Schristos {
305275fd0b74Schristos case 0x00:
305375fd0b74Schristos goto op_semantics_24;
305475fd0b74Schristos break;
305575fd0b74Schristos }
305675fd0b74Schristos break;
305775fd0b74Schristos case 0x71:
305875fd0b74Schristos GETBYTE ();
305975fd0b74Schristos switch (op[1] & 0x00)
306075fd0b74Schristos {
306175fd0b74Schristos case 0x00:
306275fd0b74Schristos goto op_semantics_24;
306375fd0b74Schristos break;
306475fd0b74Schristos }
306575fd0b74Schristos break;
306675fd0b74Schristos case 0x72:
306775fd0b74Schristos GETBYTE ();
306875fd0b74Schristos switch (op[1] & 0x00)
306975fd0b74Schristos {
307075fd0b74Schristos case 0x00:
307175fd0b74Schristos goto op_semantics_24;
307275fd0b74Schristos break;
307375fd0b74Schristos }
307475fd0b74Schristos break;
307575fd0b74Schristos case 0x73:
307675fd0b74Schristos GETBYTE ();
307775fd0b74Schristos switch (op[1] & 0x00)
307875fd0b74Schristos {
307975fd0b74Schristos case 0x00:
308075fd0b74Schristos goto op_semantics_24;
308175fd0b74Schristos break;
308275fd0b74Schristos }
308375fd0b74Schristos break;
308475fd0b74Schristos case 0x74:
308575fd0b74Schristos GETBYTE ();
308675fd0b74Schristos switch (op[1] & 0x00)
308775fd0b74Schristos {
308875fd0b74Schristos case 0x00:
308975fd0b74Schristos goto op_semantics_24;
309075fd0b74Schristos break;
309175fd0b74Schristos }
309275fd0b74Schristos break;
309375fd0b74Schristos case 0x75:
309475fd0b74Schristos GETBYTE ();
309575fd0b74Schristos switch (op[1] & 0x00)
309675fd0b74Schristos {
309775fd0b74Schristos case 0x00:
309875fd0b74Schristos goto op_semantics_24;
309975fd0b74Schristos break;
310075fd0b74Schristos }
310175fd0b74Schristos break;
310275fd0b74Schristos case 0x76:
310375fd0b74Schristos GETBYTE ();
310475fd0b74Schristos switch (op[1] & 0x00)
310575fd0b74Schristos {
310675fd0b74Schristos case 0x00:
310775fd0b74Schristos goto op_semantics_24;
310875fd0b74Schristos break;
310975fd0b74Schristos }
311075fd0b74Schristos break;
311175fd0b74Schristos case 0x77:
311275fd0b74Schristos GETBYTE ();
311375fd0b74Schristos switch (op[1] & 0x00)
311475fd0b74Schristos {
311575fd0b74Schristos case 0x00:
311675fd0b74Schristos goto op_semantics_24;
311775fd0b74Schristos break;
311875fd0b74Schristos }
311975fd0b74Schristos break;
312075fd0b74Schristos case 0x78:
312175fd0b74Schristos GETBYTE ();
312275fd0b74Schristos switch (op[1] & 0x00)
312375fd0b74Schristos {
312475fd0b74Schristos case 0x00:
312575fd0b74Schristos goto op_semantics_24;
312675fd0b74Schristos break;
312775fd0b74Schristos }
312875fd0b74Schristos break;
312975fd0b74Schristos case 0x79:
313075fd0b74Schristos GETBYTE ();
313175fd0b74Schristos switch (op[1] & 0x00)
313275fd0b74Schristos {
313375fd0b74Schristos case 0x00:
313475fd0b74Schristos goto op_semantics_24;
313575fd0b74Schristos break;
313675fd0b74Schristos }
313775fd0b74Schristos break;
313875fd0b74Schristos case 0x7a:
313975fd0b74Schristos GETBYTE ();
314075fd0b74Schristos switch (op[1] & 0x00)
314175fd0b74Schristos {
314275fd0b74Schristos case 0x00:
314375fd0b74Schristos goto op_semantics_24;
314475fd0b74Schristos break;
314575fd0b74Schristos }
314675fd0b74Schristos break;
314775fd0b74Schristos case 0x7b:
314875fd0b74Schristos GETBYTE ();
314975fd0b74Schristos switch (op[1] & 0x00)
315075fd0b74Schristos {
315175fd0b74Schristos case 0x00:
315275fd0b74Schristos goto op_semantics_24;
315375fd0b74Schristos break;
315475fd0b74Schristos }
315575fd0b74Schristos break;
315675fd0b74Schristos case 0x7c:
315775fd0b74Schristos GETBYTE ();
315875fd0b74Schristos switch (op[1] & 0x00)
315975fd0b74Schristos {
316075fd0b74Schristos case 0x00:
316175fd0b74Schristos goto op_semantics_24;
316275fd0b74Schristos break;
316375fd0b74Schristos }
316475fd0b74Schristos break;
316575fd0b74Schristos case 0x7d:
316675fd0b74Schristos GETBYTE ();
316775fd0b74Schristos switch (op[1] & 0x00)
316875fd0b74Schristos {
316975fd0b74Schristos case 0x00:
317075fd0b74Schristos goto op_semantics_24;
317175fd0b74Schristos break;
317275fd0b74Schristos }
317375fd0b74Schristos break;
317475fd0b74Schristos case 0x7e:
317575fd0b74Schristos GETBYTE ();
317675fd0b74Schristos switch (op[1] & 0x00)
317775fd0b74Schristos {
317875fd0b74Schristos case 0x00:
317975fd0b74Schristos goto op_semantics_24;
318075fd0b74Schristos break;
318175fd0b74Schristos }
318275fd0b74Schristos break;
318375fd0b74Schristos case 0x7f:
318475fd0b74Schristos GETBYTE ();
318575fd0b74Schristos switch (op[1] & 0x00)
318675fd0b74Schristos {
318775fd0b74Schristos case 0x00:
318875fd0b74Schristos goto op_semantics_24;
318975fd0b74Schristos break;
319075fd0b74Schristos }
319175fd0b74Schristos break;
319275fd0b74Schristos case 0x80:
319375fd0b74Schristos GETBYTE ();
319475fd0b74Schristos switch (op[1] & 0x00)
319575fd0b74Schristos {
319675fd0b74Schristos case 0x00:
319775fd0b74Schristos goto op_semantics_24;
319875fd0b74Schristos break;
319975fd0b74Schristos }
320075fd0b74Schristos break;
320175fd0b74Schristos case 0x81:
320275fd0b74Schristos GETBYTE ();
320375fd0b74Schristos switch (op[1] & 0x00)
320475fd0b74Schristos {
320575fd0b74Schristos case 0x00:
320675fd0b74Schristos goto op_semantics_24;
320775fd0b74Schristos break;
320875fd0b74Schristos }
320975fd0b74Schristos break;
321075fd0b74Schristos case 0x82:
321175fd0b74Schristos GETBYTE ();
321275fd0b74Schristos switch (op[1] & 0x00)
321375fd0b74Schristos {
321475fd0b74Schristos case 0x00:
321575fd0b74Schristos goto op_semantics_24;
321675fd0b74Schristos break;
321775fd0b74Schristos }
321875fd0b74Schristos break;
321975fd0b74Schristos case 0x83:
322075fd0b74Schristos GETBYTE ();
322175fd0b74Schristos switch (op[1] & 0x00)
322275fd0b74Schristos {
322375fd0b74Schristos case 0x00:
322475fd0b74Schristos goto op_semantics_24;
322575fd0b74Schristos break;
322675fd0b74Schristos }
322775fd0b74Schristos break;
322875fd0b74Schristos case 0x84:
322975fd0b74Schristos GETBYTE ();
323075fd0b74Schristos switch (op[1] & 0x00)
323175fd0b74Schristos {
323275fd0b74Schristos case 0x00:
323375fd0b74Schristos goto op_semantics_24;
323475fd0b74Schristos break;
323575fd0b74Schristos }
323675fd0b74Schristos break;
323775fd0b74Schristos case 0x85:
323875fd0b74Schristos GETBYTE ();
323975fd0b74Schristos switch (op[1] & 0x00)
324075fd0b74Schristos {
324175fd0b74Schristos case 0x00:
324275fd0b74Schristos goto op_semantics_24;
324375fd0b74Schristos break;
324475fd0b74Schristos }
324575fd0b74Schristos break;
324675fd0b74Schristos case 0x86:
324775fd0b74Schristos GETBYTE ();
324875fd0b74Schristos switch (op[1] & 0x00)
324975fd0b74Schristos {
325075fd0b74Schristos case 0x00:
325175fd0b74Schristos goto op_semantics_24;
325275fd0b74Schristos break;
325375fd0b74Schristos }
325475fd0b74Schristos break;
325575fd0b74Schristos case 0x87:
325675fd0b74Schristos GETBYTE ();
325775fd0b74Schristos switch (op[1] & 0x00)
325875fd0b74Schristos {
325975fd0b74Schristos case 0x00:
326075fd0b74Schristos goto op_semantics_24;
326175fd0b74Schristos break;
326275fd0b74Schristos }
326375fd0b74Schristos break;
326475fd0b74Schristos case 0x88:
326575fd0b74Schristos GETBYTE ();
326675fd0b74Schristos switch (op[1] & 0x00)
326775fd0b74Schristos {
326875fd0b74Schristos case 0x00:
326975fd0b74Schristos goto op_semantics_24;
327075fd0b74Schristos break;
327175fd0b74Schristos }
327275fd0b74Schristos break;
327375fd0b74Schristos case 0x89:
327475fd0b74Schristos GETBYTE ();
327575fd0b74Schristos switch (op[1] & 0x00)
327675fd0b74Schristos {
327775fd0b74Schristos case 0x00:
327875fd0b74Schristos goto op_semantics_24;
327975fd0b74Schristos break;
328075fd0b74Schristos }
328175fd0b74Schristos break;
328275fd0b74Schristos case 0x8a:
328375fd0b74Schristos GETBYTE ();
328475fd0b74Schristos switch (op[1] & 0x00)
328575fd0b74Schristos {
328675fd0b74Schristos case 0x00:
328775fd0b74Schristos goto op_semantics_24;
328875fd0b74Schristos break;
328975fd0b74Schristos }
329075fd0b74Schristos break;
329175fd0b74Schristos case 0x8b:
329275fd0b74Schristos GETBYTE ();
329375fd0b74Schristos switch (op[1] & 0x00)
329475fd0b74Schristos {
329575fd0b74Schristos case 0x00:
329675fd0b74Schristos goto op_semantics_24;
329775fd0b74Schristos break;
329875fd0b74Schristos }
329975fd0b74Schristos break;
330075fd0b74Schristos case 0x8c:
330175fd0b74Schristos GETBYTE ();
330275fd0b74Schristos switch (op[1] & 0x00)
330375fd0b74Schristos {
330475fd0b74Schristos case 0x00:
330575fd0b74Schristos goto op_semantics_24;
330675fd0b74Schristos break;
330775fd0b74Schristos }
330875fd0b74Schristos break;
330975fd0b74Schristos case 0x8d:
331075fd0b74Schristos GETBYTE ();
331175fd0b74Schristos switch (op[1] & 0x00)
331275fd0b74Schristos {
331375fd0b74Schristos case 0x00:
331475fd0b74Schristos goto op_semantics_24;
331575fd0b74Schristos break;
331675fd0b74Schristos }
331775fd0b74Schristos break;
331875fd0b74Schristos case 0x8e:
331975fd0b74Schristos GETBYTE ();
332075fd0b74Schristos switch (op[1] & 0x00)
332175fd0b74Schristos {
332275fd0b74Schristos case 0x00:
332375fd0b74Schristos goto op_semantics_24;
332475fd0b74Schristos break;
332575fd0b74Schristos }
332675fd0b74Schristos break;
332775fd0b74Schristos case 0x8f:
332875fd0b74Schristos GETBYTE ();
332975fd0b74Schristos switch (op[1] & 0x00)
333075fd0b74Schristos {
333175fd0b74Schristos case 0x00:
333275fd0b74Schristos goto op_semantics_24;
333375fd0b74Schristos break;
333475fd0b74Schristos }
333575fd0b74Schristos break;
333675fd0b74Schristos case 0x90:
333775fd0b74Schristos GETBYTE ();
333875fd0b74Schristos switch (op[1] & 0x00)
333975fd0b74Schristos {
334075fd0b74Schristos case 0x00:
334175fd0b74Schristos goto op_semantics_24;
334275fd0b74Schristos break;
334375fd0b74Schristos }
334475fd0b74Schristos break;
334575fd0b74Schristos case 0x91:
334675fd0b74Schristos GETBYTE ();
334775fd0b74Schristos switch (op[1] & 0x00)
334875fd0b74Schristos {
334975fd0b74Schristos case 0x00:
335075fd0b74Schristos goto op_semantics_24;
335175fd0b74Schristos break;
335275fd0b74Schristos }
335375fd0b74Schristos break;
335475fd0b74Schristos case 0x92:
335575fd0b74Schristos GETBYTE ();
335675fd0b74Schristos switch (op[1] & 0x00)
335775fd0b74Schristos {
335875fd0b74Schristos case 0x00:
335975fd0b74Schristos goto op_semantics_24;
336075fd0b74Schristos break;
336175fd0b74Schristos }
336275fd0b74Schristos break;
336375fd0b74Schristos case 0x93:
336475fd0b74Schristos GETBYTE ();
336575fd0b74Schristos switch (op[1] & 0x00)
336675fd0b74Schristos {
336775fd0b74Schristos case 0x00:
336875fd0b74Schristos goto op_semantics_24;
336975fd0b74Schristos break;
337075fd0b74Schristos }
337175fd0b74Schristos break;
337275fd0b74Schristos case 0x94:
337375fd0b74Schristos GETBYTE ();
337475fd0b74Schristos switch (op[1] & 0x00)
337575fd0b74Schristos {
337675fd0b74Schristos case 0x00:
337775fd0b74Schristos goto op_semantics_24;
337875fd0b74Schristos break;
337975fd0b74Schristos }
338075fd0b74Schristos break;
338175fd0b74Schristos case 0x95:
338275fd0b74Schristos GETBYTE ();
338375fd0b74Schristos switch (op[1] & 0x00)
338475fd0b74Schristos {
338575fd0b74Schristos case 0x00:
338675fd0b74Schristos goto op_semantics_24;
338775fd0b74Schristos break;
338875fd0b74Schristos }
338975fd0b74Schristos break;
339075fd0b74Schristos case 0x96:
339175fd0b74Schristos GETBYTE ();
339275fd0b74Schristos switch (op[1] & 0x00)
339375fd0b74Schristos {
339475fd0b74Schristos case 0x00:
339575fd0b74Schristos goto op_semantics_24;
339675fd0b74Schristos break;
339775fd0b74Schristos }
339875fd0b74Schristos break;
339975fd0b74Schristos case 0x97:
340075fd0b74Schristos GETBYTE ();
340175fd0b74Schristos switch (op[1] & 0x00)
340275fd0b74Schristos {
340375fd0b74Schristos case 0x00:
340475fd0b74Schristos goto op_semantics_24;
340575fd0b74Schristos break;
340675fd0b74Schristos }
340775fd0b74Schristos break;
340875fd0b74Schristos case 0x98:
340975fd0b74Schristos GETBYTE ();
341075fd0b74Schristos switch (op[1] & 0x00)
341175fd0b74Schristos {
341275fd0b74Schristos case 0x00:
341375fd0b74Schristos goto op_semantics_24;
341475fd0b74Schristos break;
341575fd0b74Schristos }
341675fd0b74Schristos break;
341775fd0b74Schristos case 0x99:
341875fd0b74Schristos GETBYTE ();
341975fd0b74Schristos switch (op[1] & 0x00)
342075fd0b74Schristos {
342175fd0b74Schristos case 0x00:
342275fd0b74Schristos goto op_semantics_24;
342375fd0b74Schristos break;
342475fd0b74Schristos }
342575fd0b74Schristos break;
342675fd0b74Schristos case 0x9a:
342775fd0b74Schristos GETBYTE ();
342875fd0b74Schristos switch (op[1] & 0x00)
342975fd0b74Schristos {
343075fd0b74Schristos case 0x00:
343175fd0b74Schristos goto op_semantics_24;
343275fd0b74Schristos break;
343375fd0b74Schristos }
343475fd0b74Schristos break;
343575fd0b74Schristos case 0x9b:
343675fd0b74Schristos GETBYTE ();
343775fd0b74Schristos switch (op[1] & 0x00)
343875fd0b74Schristos {
343975fd0b74Schristos case 0x00:
344075fd0b74Schristos goto op_semantics_24;
344175fd0b74Schristos break;
344275fd0b74Schristos }
344375fd0b74Schristos break;
344475fd0b74Schristos case 0x9c:
344575fd0b74Schristos GETBYTE ();
344675fd0b74Schristos switch (op[1] & 0x00)
344775fd0b74Schristos {
344875fd0b74Schristos case 0x00:
344975fd0b74Schristos goto op_semantics_24;
345075fd0b74Schristos break;
345175fd0b74Schristos }
345275fd0b74Schristos break;
345375fd0b74Schristos case 0x9d:
345475fd0b74Schristos GETBYTE ();
345575fd0b74Schristos switch (op[1] & 0x00)
345675fd0b74Schristos {
345775fd0b74Schristos case 0x00:
345875fd0b74Schristos goto op_semantics_24;
345975fd0b74Schristos break;
346075fd0b74Schristos }
346175fd0b74Schristos break;
346275fd0b74Schristos case 0x9e:
346375fd0b74Schristos GETBYTE ();
346475fd0b74Schristos switch (op[1] & 0x00)
346575fd0b74Schristos {
346675fd0b74Schristos case 0x00:
346775fd0b74Schristos goto op_semantics_24;
346875fd0b74Schristos break;
346975fd0b74Schristos }
347075fd0b74Schristos break;
347175fd0b74Schristos case 0x9f:
347275fd0b74Schristos GETBYTE ();
347375fd0b74Schristos switch (op[1] & 0x00)
347475fd0b74Schristos {
347575fd0b74Schristos case 0x00:
347675fd0b74Schristos goto op_semantics_24;
347775fd0b74Schristos break;
347875fd0b74Schristos }
347975fd0b74Schristos break;
348075fd0b74Schristos case 0xa0:
348175fd0b74Schristos GETBYTE ();
348275fd0b74Schristos switch (op[1] & 0x00)
348375fd0b74Schristos {
348475fd0b74Schristos case 0x00:
348575fd0b74Schristos goto op_semantics_24;
348675fd0b74Schristos break;
348775fd0b74Schristos }
348875fd0b74Schristos break;
348975fd0b74Schristos case 0xa1:
349075fd0b74Schristos GETBYTE ();
349175fd0b74Schristos switch (op[1] & 0x00)
349275fd0b74Schristos {
349375fd0b74Schristos case 0x00:
349475fd0b74Schristos goto op_semantics_24;
349575fd0b74Schristos break;
349675fd0b74Schristos }
349775fd0b74Schristos break;
349875fd0b74Schristos case 0xa2:
349975fd0b74Schristos GETBYTE ();
350075fd0b74Schristos switch (op[1] & 0x00)
350175fd0b74Schristos {
350275fd0b74Schristos case 0x00:
350375fd0b74Schristos goto op_semantics_24;
350475fd0b74Schristos break;
350575fd0b74Schristos }
350675fd0b74Schristos break;
350775fd0b74Schristos case 0xa3:
350875fd0b74Schristos GETBYTE ();
350975fd0b74Schristos switch (op[1] & 0x00)
351075fd0b74Schristos {
351175fd0b74Schristos case 0x00:
351275fd0b74Schristos goto op_semantics_24;
351375fd0b74Schristos break;
351475fd0b74Schristos }
351575fd0b74Schristos break;
351675fd0b74Schristos case 0xa4:
351775fd0b74Schristos GETBYTE ();
351875fd0b74Schristos switch (op[1] & 0x00)
351975fd0b74Schristos {
352075fd0b74Schristos case 0x00:
352175fd0b74Schristos goto op_semantics_24;
352275fd0b74Schristos break;
352375fd0b74Schristos }
352475fd0b74Schristos break;
352575fd0b74Schristos case 0xa5:
352675fd0b74Schristos GETBYTE ();
352775fd0b74Schristos switch (op[1] & 0x00)
352875fd0b74Schristos {
352975fd0b74Schristos case 0x00:
353075fd0b74Schristos goto op_semantics_24;
353175fd0b74Schristos break;
353275fd0b74Schristos }
353375fd0b74Schristos break;
353475fd0b74Schristos case 0xa6:
353575fd0b74Schristos GETBYTE ();
353675fd0b74Schristos switch (op[1] & 0x00)
353775fd0b74Schristos {
353875fd0b74Schristos case 0x00:
353975fd0b74Schristos goto op_semantics_24;
354075fd0b74Schristos break;
354175fd0b74Schristos }
354275fd0b74Schristos break;
354375fd0b74Schristos case 0xa7:
354475fd0b74Schristos GETBYTE ();
354575fd0b74Schristos switch (op[1] & 0x00)
354675fd0b74Schristos {
354775fd0b74Schristos case 0x00:
354875fd0b74Schristos goto op_semantics_24;
354975fd0b74Schristos break;
355075fd0b74Schristos }
355175fd0b74Schristos break;
355275fd0b74Schristos case 0xa8:
355375fd0b74Schristos GETBYTE ();
355475fd0b74Schristos switch (op[1] & 0x00)
355575fd0b74Schristos {
355675fd0b74Schristos case 0x00:
355775fd0b74Schristos goto op_semantics_24;
355875fd0b74Schristos break;
355975fd0b74Schristos }
356075fd0b74Schristos break;
356175fd0b74Schristos case 0xa9:
356275fd0b74Schristos GETBYTE ();
356375fd0b74Schristos switch (op[1] & 0x00)
356475fd0b74Schristos {
356575fd0b74Schristos case 0x00:
356675fd0b74Schristos goto op_semantics_24;
356775fd0b74Schristos break;
356875fd0b74Schristos }
356975fd0b74Schristos break;
357075fd0b74Schristos case 0xaa:
357175fd0b74Schristos GETBYTE ();
357275fd0b74Schristos switch (op[1] & 0x00)
357375fd0b74Schristos {
357475fd0b74Schristos case 0x00:
357575fd0b74Schristos goto op_semantics_24;
357675fd0b74Schristos break;
357775fd0b74Schristos }
357875fd0b74Schristos break;
357975fd0b74Schristos case 0xab:
358075fd0b74Schristos GETBYTE ();
358175fd0b74Schristos switch (op[1] & 0x00)
358275fd0b74Schristos {
358375fd0b74Schristos case 0x00:
358475fd0b74Schristos goto op_semantics_24;
358575fd0b74Schristos break;
358675fd0b74Schristos }
358775fd0b74Schristos break;
358875fd0b74Schristos case 0xac:
358975fd0b74Schristos GETBYTE ();
359075fd0b74Schristos switch (op[1] & 0x00)
359175fd0b74Schristos {
359275fd0b74Schristos case 0x00:
359375fd0b74Schristos goto op_semantics_24;
359475fd0b74Schristos break;
359575fd0b74Schristos }
359675fd0b74Schristos break;
359775fd0b74Schristos case 0xad:
359875fd0b74Schristos GETBYTE ();
359975fd0b74Schristos switch (op[1] & 0x00)
360075fd0b74Schristos {
360175fd0b74Schristos case 0x00:
360275fd0b74Schristos goto op_semantics_24;
360375fd0b74Schristos break;
360475fd0b74Schristos }
360575fd0b74Schristos break;
360675fd0b74Schristos case 0xae:
360775fd0b74Schristos GETBYTE ();
360875fd0b74Schristos switch (op[1] & 0x00)
360975fd0b74Schristos {
361075fd0b74Schristos case 0x00:
361175fd0b74Schristos goto op_semantics_24;
361275fd0b74Schristos break;
361375fd0b74Schristos }
361475fd0b74Schristos break;
361575fd0b74Schristos case 0xaf:
361675fd0b74Schristos GETBYTE ();
361775fd0b74Schristos switch (op[1] & 0x00)
361875fd0b74Schristos {
361975fd0b74Schristos case 0x00:
362075fd0b74Schristos goto op_semantics_24;
362175fd0b74Schristos break;
362275fd0b74Schristos }
362375fd0b74Schristos break;
362475fd0b74Schristos case 0xb0:
362575fd0b74Schristos GETBYTE ();
362675fd0b74Schristos switch (op[1] & 0x00)
362775fd0b74Schristos {
362875fd0b74Schristos case 0x00:
362975fd0b74Schristos goto op_semantics_24;
363075fd0b74Schristos break;
363175fd0b74Schristos }
363275fd0b74Schristos break;
363375fd0b74Schristos case 0xb1:
363475fd0b74Schristos GETBYTE ();
363575fd0b74Schristos switch (op[1] & 0x00)
363675fd0b74Schristos {
363775fd0b74Schristos case 0x00:
363875fd0b74Schristos goto op_semantics_24;
363975fd0b74Schristos break;
364075fd0b74Schristos }
364175fd0b74Schristos break;
364275fd0b74Schristos case 0xb2:
364375fd0b74Schristos GETBYTE ();
364475fd0b74Schristos switch (op[1] & 0x00)
364575fd0b74Schristos {
364675fd0b74Schristos case 0x00:
364775fd0b74Schristos goto op_semantics_24;
364875fd0b74Schristos break;
364975fd0b74Schristos }
365075fd0b74Schristos break;
365175fd0b74Schristos case 0xb3:
365275fd0b74Schristos GETBYTE ();
365375fd0b74Schristos switch (op[1] & 0x00)
365475fd0b74Schristos {
365575fd0b74Schristos case 0x00:
365675fd0b74Schristos goto op_semantics_24;
365775fd0b74Schristos break;
365875fd0b74Schristos }
365975fd0b74Schristos break;
366075fd0b74Schristos case 0xb4:
366175fd0b74Schristos GETBYTE ();
366275fd0b74Schristos switch (op[1] & 0x00)
366375fd0b74Schristos {
366475fd0b74Schristos case 0x00:
366575fd0b74Schristos goto op_semantics_24;
366675fd0b74Schristos break;
366775fd0b74Schristos }
366875fd0b74Schristos break;
366975fd0b74Schristos case 0xb5:
367075fd0b74Schristos GETBYTE ();
367175fd0b74Schristos switch (op[1] & 0x00)
367275fd0b74Schristos {
367375fd0b74Schristos case 0x00:
367475fd0b74Schristos goto op_semantics_24;
367575fd0b74Schristos break;
367675fd0b74Schristos }
367775fd0b74Schristos break;
367875fd0b74Schristos case 0xb6:
367975fd0b74Schristos GETBYTE ();
368075fd0b74Schristos switch (op[1] & 0x00)
368175fd0b74Schristos {
368275fd0b74Schristos case 0x00:
368375fd0b74Schristos goto op_semantics_24;
368475fd0b74Schristos break;
368575fd0b74Schristos }
368675fd0b74Schristos break;
368775fd0b74Schristos case 0xb7:
368875fd0b74Schristos GETBYTE ();
368975fd0b74Schristos switch (op[1] & 0x00)
369075fd0b74Schristos {
369175fd0b74Schristos case 0x00:
369275fd0b74Schristos goto op_semantics_24;
369375fd0b74Schristos break;
369475fd0b74Schristos }
369575fd0b74Schristos break;
369675fd0b74Schristos case 0xb8:
369775fd0b74Schristos GETBYTE ();
369875fd0b74Schristos switch (op[1] & 0x00)
369975fd0b74Schristos {
370075fd0b74Schristos case 0x00:
370175fd0b74Schristos goto op_semantics_24;
370275fd0b74Schristos break;
370375fd0b74Schristos }
370475fd0b74Schristos break;
370575fd0b74Schristos case 0xb9:
370675fd0b74Schristos GETBYTE ();
370775fd0b74Schristos switch (op[1] & 0x00)
370875fd0b74Schristos {
370975fd0b74Schristos case 0x00:
371075fd0b74Schristos goto op_semantics_24;
371175fd0b74Schristos break;
371275fd0b74Schristos }
371375fd0b74Schristos break;
371475fd0b74Schristos case 0xba:
371575fd0b74Schristos GETBYTE ();
371675fd0b74Schristos switch (op[1] & 0x00)
371775fd0b74Schristos {
371875fd0b74Schristos case 0x00:
371975fd0b74Schristos goto op_semantics_24;
372075fd0b74Schristos break;
372175fd0b74Schristos }
372275fd0b74Schristos break;
372375fd0b74Schristos case 0xbb:
372475fd0b74Schristos GETBYTE ();
372575fd0b74Schristos switch (op[1] & 0x00)
372675fd0b74Schristos {
372775fd0b74Schristos case 0x00:
372875fd0b74Schristos goto op_semantics_24;
372975fd0b74Schristos break;
373075fd0b74Schristos }
373175fd0b74Schristos break;
373275fd0b74Schristos case 0xbc:
373375fd0b74Schristos GETBYTE ();
373475fd0b74Schristos switch (op[1] & 0x00)
373575fd0b74Schristos {
373675fd0b74Schristos case 0x00:
373775fd0b74Schristos goto op_semantics_24;
373875fd0b74Schristos break;
373975fd0b74Schristos }
374075fd0b74Schristos break;
374175fd0b74Schristos case 0xbd:
374275fd0b74Schristos GETBYTE ();
374375fd0b74Schristos switch (op[1] & 0x00)
374475fd0b74Schristos {
374575fd0b74Schristos case 0x00:
374675fd0b74Schristos goto op_semantics_24;
374775fd0b74Schristos break;
374875fd0b74Schristos }
374975fd0b74Schristos break;
375075fd0b74Schristos case 0xbe:
375175fd0b74Schristos GETBYTE ();
375275fd0b74Schristos switch (op[1] & 0x00)
375375fd0b74Schristos {
375475fd0b74Schristos case 0x00:
375575fd0b74Schristos goto op_semantics_24;
375675fd0b74Schristos break;
375775fd0b74Schristos }
375875fd0b74Schristos break;
375975fd0b74Schristos case 0xbf:
376075fd0b74Schristos GETBYTE ();
376175fd0b74Schristos switch (op[1] & 0x00)
376275fd0b74Schristos {
376375fd0b74Schristos case 0x00:
376475fd0b74Schristos goto op_semantics_24;
376575fd0b74Schristos break;
376675fd0b74Schristos }
376775fd0b74Schristos break;
376875fd0b74Schristos case 0xc0:
376975fd0b74Schristos GETBYTE ();
377075fd0b74Schristos switch (op[1] & 0x00)
377175fd0b74Schristos {
377275fd0b74Schristos case 0x00:
377375fd0b74Schristos goto op_semantics_24;
377475fd0b74Schristos break;
377575fd0b74Schristos }
377675fd0b74Schristos break;
377775fd0b74Schristos case 0xc1:
377875fd0b74Schristos GETBYTE ();
377975fd0b74Schristos switch (op[1] & 0x00)
378075fd0b74Schristos {
378175fd0b74Schristos case 0x00:
378275fd0b74Schristos goto op_semantics_24;
378375fd0b74Schristos break;
378475fd0b74Schristos }
378575fd0b74Schristos break;
378675fd0b74Schristos case 0xc2:
378775fd0b74Schristos GETBYTE ();
378875fd0b74Schristos switch (op[1] & 0x00)
378975fd0b74Schristos {
379075fd0b74Schristos case 0x00:
379175fd0b74Schristos goto op_semantics_24;
379275fd0b74Schristos break;
379375fd0b74Schristos }
379475fd0b74Schristos break;
379575fd0b74Schristos case 0xc3:
379675fd0b74Schristos GETBYTE ();
379775fd0b74Schristos switch (op[1] & 0x00)
379875fd0b74Schristos {
379975fd0b74Schristos case 0x00:
380075fd0b74Schristos goto op_semantics_24;
380175fd0b74Schristos break;
380275fd0b74Schristos }
380375fd0b74Schristos break;
380475fd0b74Schristos case 0xc4:
380575fd0b74Schristos GETBYTE ();
380675fd0b74Schristos switch (op[1] & 0x00)
380775fd0b74Schristos {
380875fd0b74Schristos case 0x00:
380975fd0b74Schristos goto op_semantics_24;
381075fd0b74Schristos break;
381175fd0b74Schristos }
381275fd0b74Schristos break;
381375fd0b74Schristos case 0xc5:
381475fd0b74Schristos GETBYTE ();
381575fd0b74Schristos switch (op[1] & 0x00)
381675fd0b74Schristos {
381775fd0b74Schristos case 0x00:
381875fd0b74Schristos goto op_semantics_24;
381975fd0b74Schristos break;
382075fd0b74Schristos }
382175fd0b74Schristos break;
382275fd0b74Schristos case 0xc6:
382375fd0b74Schristos GETBYTE ();
382475fd0b74Schristos switch (op[1] & 0x00)
382575fd0b74Schristos {
382675fd0b74Schristos case 0x00:
382775fd0b74Schristos goto op_semantics_24;
382875fd0b74Schristos break;
382975fd0b74Schristos }
383075fd0b74Schristos break;
383175fd0b74Schristos case 0xc7:
383275fd0b74Schristos GETBYTE ();
383375fd0b74Schristos switch (op[1] & 0x00)
383475fd0b74Schristos {
383575fd0b74Schristos case 0x00:
383675fd0b74Schristos goto op_semantics_24;
383775fd0b74Schristos break;
383875fd0b74Schristos }
383975fd0b74Schristos break;
384075fd0b74Schristos case 0xc8:
384175fd0b74Schristos GETBYTE ();
384275fd0b74Schristos switch (op[1] & 0x00)
384375fd0b74Schristos {
384475fd0b74Schristos case 0x00:
384575fd0b74Schristos goto op_semantics_24;
384675fd0b74Schristos break;
384775fd0b74Schristos }
384875fd0b74Schristos break;
384975fd0b74Schristos case 0xc9:
385075fd0b74Schristos GETBYTE ();
385175fd0b74Schristos switch (op[1] & 0x00)
385275fd0b74Schristos {
385375fd0b74Schristos case 0x00:
385475fd0b74Schristos goto op_semantics_24;
385575fd0b74Schristos break;
385675fd0b74Schristos }
385775fd0b74Schristos break;
385875fd0b74Schristos case 0xca:
385975fd0b74Schristos GETBYTE ();
386075fd0b74Schristos switch (op[1] & 0x00)
386175fd0b74Schristos {
386275fd0b74Schristos case 0x00:
386375fd0b74Schristos goto op_semantics_24;
386475fd0b74Schristos break;
386575fd0b74Schristos }
386675fd0b74Schristos break;
386775fd0b74Schristos case 0xcb:
386875fd0b74Schristos GETBYTE ();
386975fd0b74Schristos switch (op[1] & 0x00)
387075fd0b74Schristos {
387175fd0b74Schristos case 0x00:
387275fd0b74Schristos goto op_semantics_24;
387375fd0b74Schristos break;
387475fd0b74Schristos }
387575fd0b74Schristos break;
387675fd0b74Schristos case 0xcc:
387775fd0b74Schristos GETBYTE ();
387875fd0b74Schristos switch (op[1] & 0x00)
387975fd0b74Schristos {
388075fd0b74Schristos case 0x00:
388175fd0b74Schristos goto op_semantics_24;
388275fd0b74Schristos break;
388375fd0b74Schristos }
388475fd0b74Schristos break;
388575fd0b74Schristos case 0xcd:
388675fd0b74Schristos GETBYTE ();
388775fd0b74Schristos switch (op[1] & 0x00)
388875fd0b74Schristos {
388975fd0b74Schristos case 0x00:
389075fd0b74Schristos goto op_semantics_24;
389175fd0b74Schristos break;
389275fd0b74Schristos }
389375fd0b74Schristos break;
389475fd0b74Schristos case 0xce:
389575fd0b74Schristos GETBYTE ();
389675fd0b74Schristos switch (op[1] & 0x00)
389775fd0b74Schristos {
389875fd0b74Schristos case 0x00:
389975fd0b74Schristos goto op_semantics_24;
390075fd0b74Schristos break;
390175fd0b74Schristos }
390275fd0b74Schristos break;
390375fd0b74Schristos case 0xcf:
390475fd0b74Schristos GETBYTE ();
390575fd0b74Schristos switch (op[1] & 0x00)
390675fd0b74Schristos {
390775fd0b74Schristos case 0x00:
390875fd0b74Schristos goto op_semantics_24;
390975fd0b74Schristos break;
391075fd0b74Schristos }
391175fd0b74Schristos break;
391275fd0b74Schristos case 0xd0:
391375fd0b74Schristos GETBYTE ();
391475fd0b74Schristos switch (op[1] & 0x00)
391575fd0b74Schristos {
391675fd0b74Schristos case 0x00:
391775fd0b74Schristos goto op_semantics_24;
391875fd0b74Schristos break;
391975fd0b74Schristos }
392075fd0b74Schristos break;
392175fd0b74Schristos case 0xd1:
392275fd0b74Schristos GETBYTE ();
392375fd0b74Schristos switch (op[1] & 0x00)
392475fd0b74Schristos {
392575fd0b74Schristos case 0x00:
392675fd0b74Schristos goto op_semantics_24;
392775fd0b74Schristos break;
392875fd0b74Schristos }
392975fd0b74Schristos break;
393075fd0b74Schristos case 0xd2:
393175fd0b74Schristos GETBYTE ();
393275fd0b74Schristos switch (op[1] & 0x00)
393375fd0b74Schristos {
393475fd0b74Schristos case 0x00:
393575fd0b74Schristos goto op_semantics_24;
393675fd0b74Schristos break;
393775fd0b74Schristos }
393875fd0b74Schristos break;
393975fd0b74Schristos case 0xd3:
394075fd0b74Schristos GETBYTE ();
394175fd0b74Schristos switch (op[1] & 0x00)
394275fd0b74Schristos {
394375fd0b74Schristos case 0x00:
394475fd0b74Schristos goto op_semantics_24;
394575fd0b74Schristos break;
394675fd0b74Schristos }
394775fd0b74Schristos break;
394875fd0b74Schristos case 0xd4:
394975fd0b74Schristos GETBYTE ();
395075fd0b74Schristos switch (op[1] & 0x00)
395175fd0b74Schristos {
395275fd0b74Schristos case 0x00:
395375fd0b74Schristos goto op_semantics_24;
395475fd0b74Schristos break;
395575fd0b74Schristos }
395675fd0b74Schristos break;
395775fd0b74Schristos case 0xd5:
395875fd0b74Schristos GETBYTE ();
395975fd0b74Schristos switch (op[1] & 0x00)
396075fd0b74Schristos {
396175fd0b74Schristos case 0x00:
396275fd0b74Schristos goto op_semantics_24;
396375fd0b74Schristos break;
396475fd0b74Schristos }
396575fd0b74Schristos break;
396675fd0b74Schristos case 0xd6:
396775fd0b74Schristos GETBYTE ();
396875fd0b74Schristos switch (op[1] & 0x00)
396975fd0b74Schristos {
397075fd0b74Schristos case 0x00:
397175fd0b74Schristos goto op_semantics_24;
397275fd0b74Schristos break;
397375fd0b74Schristos }
397475fd0b74Schristos break;
397575fd0b74Schristos case 0xd7:
397675fd0b74Schristos GETBYTE ();
397775fd0b74Schristos switch (op[1] & 0x00)
397875fd0b74Schristos {
397975fd0b74Schristos case 0x00:
398075fd0b74Schristos goto op_semantics_24;
398175fd0b74Schristos break;
398275fd0b74Schristos }
398375fd0b74Schristos break;
398475fd0b74Schristos case 0xd8:
398575fd0b74Schristos GETBYTE ();
398675fd0b74Schristos switch (op[1] & 0x00)
398775fd0b74Schristos {
398875fd0b74Schristos case 0x00:
398975fd0b74Schristos goto op_semantics_24;
399075fd0b74Schristos break;
399175fd0b74Schristos }
399275fd0b74Schristos break;
399375fd0b74Schristos case 0xd9:
399475fd0b74Schristos GETBYTE ();
399575fd0b74Schristos switch (op[1] & 0x00)
399675fd0b74Schristos {
399775fd0b74Schristos case 0x00:
399875fd0b74Schristos goto op_semantics_24;
399975fd0b74Schristos break;
400075fd0b74Schristos }
400175fd0b74Schristos break;
400275fd0b74Schristos case 0xda:
400375fd0b74Schristos GETBYTE ();
400475fd0b74Schristos switch (op[1] & 0x00)
400575fd0b74Schristos {
400675fd0b74Schristos case 0x00:
400775fd0b74Schristos goto op_semantics_24;
400875fd0b74Schristos break;
400975fd0b74Schristos }
401075fd0b74Schristos break;
401175fd0b74Schristos case 0xdb:
401275fd0b74Schristos GETBYTE ();
401375fd0b74Schristos switch (op[1] & 0x00)
401475fd0b74Schristos {
401575fd0b74Schristos case 0x00:
401675fd0b74Schristos goto op_semantics_24;
401775fd0b74Schristos break;
401875fd0b74Schristos }
401975fd0b74Schristos break;
402075fd0b74Schristos case 0xdc:
402175fd0b74Schristos GETBYTE ();
402275fd0b74Schristos switch (op[1] & 0x00)
402375fd0b74Schristos {
402475fd0b74Schristos case 0x00:
402575fd0b74Schristos goto op_semantics_24;
402675fd0b74Schristos break;
402775fd0b74Schristos }
402875fd0b74Schristos break;
402975fd0b74Schristos case 0xdd:
403075fd0b74Schristos GETBYTE ();
403175fd0b74Schristos switch (op[1] & 0x00)
403275fd0b74Schristos {
403375fd0b74Schristos case 0x00:
403475fd0b74Schristos goto op_semantics_24;
403575fd0b74Schristos break;
403675fd0b74Schristos }
403775fd0b74Schristos break;
403875fd0b74Schristos case 0xde:
403975fd0b74Schristos GETBYTE ();
404075fd0b74Schristos switch (op[1] & 0x00)
404175fd0b74Schristos {
404275fd0b74Schristos case 0x00:
404375fd0b74Schristos goto op_semantics_24;
404475fd0b74Schristos break;
404575fd0b74Schristos }
404675fd0b74Schristos break;
404775fd0b74Schristos case 0xdf:
404875fd0b74Schristos GETBYTE ();
404975fd0b74Schristos switch (op[1] & 0x00)
405075fd0b74Schristos {
405175fd0b74Schristos case 0x00:
405275fd0b74Schristos goto op_semantics_24;
405375fd0b74Schristos break;
405475fd0b74Schristos }
405575fd0b74Schristos break;
405675fd0b74Schristos case 0xe0:
405775fd0b74Schristos GETBYTE ();
405875fd0b74Schristos switch (op[1] & 0x00)
405975fd0b74Schristos {
406075fd0b74Schristos case 0x00:
406175fd0b74Schristos goto op_semantics_24;
406275fd0b74Schristos break;
406375fd0b74Schristos }
406475fd0b74Schristos break;
406575fd0b74Schristos case 0xe1:
406675fd0b74Schristos GETBYTE ();
406775fd0b74Schristos switch (op[1] & 0x00)
406875fd0b74Schristos {
406975fd0b74Schristos case 0x00:
407075fd0b74Schristos goto op_semantics_24;
407175fd0b74Schristos break;
407275fd0b74Schristos }
407375fd0b74Schristos break;
407475fd0b74Schristos case 0xe2:
407575fd0b74Schristos GETBYTE ();
407675fd0b74Schristos switch (op[1] & 0x00)
407775fd0b74Schristos {
407875fd0b74Schristos case 0x00:
407975fd0b74Schristos goto op_semantics_24;
408075fd0b74Schristos break;
408175fd0b74Schristos }
408275fd0b74Schristos break;
408375fd0b74Schristos case 0xe3:
408475fd0b74Schristos GETBYTE ();
408575fd0b74Schristos switch (op[1] & 0x00)
408675fd0b74Schristos {
408775fd0b74Schristos case 0x00:
408875fd0b74Schristos goto op_semantics_24;
408975fd0b74Schristos break;
409075fd0b74Schristos }
409175fd0b74Schristos break;
409275fd0b74Schristos case 0xe4:
409375fd0b74Schristos GETBYTE ();
409475fd0b74Schristos switch (op[1] & 0x00)
409575fd0b74Schristos {
409675fd0b74Schristos case 0x00:
409775fd0b74Schristos goto op_semantics_24;
409875fd0b74Schristos break;
409975fd0b74Schristos }
410075fd0b74Schristos break;
410175fd0b74Schristos case 0xe5:
410275fd0b74Schristos GETBYTE ();
410375fd0b74Schristos switch (op[1] & 0x00)
410475fd0b74Schristos {
410575fd0b74Schristos case 0x00:
410675fd0b74Schristos goto op_semantics_24;
410775fd0b74Schristos break;
410875fd0b74Schristos }
410975fd0b74Schristos break;
411075fd0b74Schristos case 0xe6:
411175fd0b74Schristos GETBYTE ();
411275fd0b74Schristos switch (op[1] & 0x00)
411375fd0b74Schristos {
411475fd0b74Schristos case 0x00:
411575fd0b74Schristos goto op_semantics_24;
411675fd0b74Schristos break;
411775fd0b74Schristos }
411875fd0b74Schristos break;
411975fd0b74Schristos case 0xe7:
412075fd0b74Schristos GETBYTE ();
412175fd0b74Schristos switch (op[1] & 0x00)
412275fd0b74Schristos {
412375fd0b74Schristos case 0x00:
412475fd0b74Schristos goto op_semantics_24;
412575fd0b74Schristos break;
412675fd0b74Schristos }
412775fd0b74Schristos break;
412875fd0b74Schristos case 0xe8:
412975fd0b74Schristos GETBYTE ();
413075fd0b74Schristos switch (op[1] & 0x00)
413175fd0b74Schristos {
413275fd0b74Schristos case 0x00:
413375fd0b74Schristos goto op_semantics_24;
413475fd0b74Schristos break;
413575fd0b74Schristos }
413675fd0b74Schristos break;
413775fd0b74Schristos case 0xe9:
413875fd0b74Schristos GETBYTE ();
413975fd0b74Schristos switch (op[1] & 0x00)
414075fd0b74Schristos {
414175fd0b74Schristos case 0x00:
414275fd0b74Schristos goto op_semantics_24;
414375fd0b74Schristos break;
414475fd0b74Schristos }
414575fd0b74Schristos break;
414675fd0b74Schristos case 0xea:
414775fd0b74Schristos GETBYTE ();
414875fd0b74Schristos switch (op[1] & 0x00)
414975fd0b74Schristos {
415075fd0b74Schristos case 0x00:
415175fd0b74Schristos goto op_semantics_24;
415275fd0b74Schristos break;
415375fd0b74Schristos }
415475fd0b74Schristos break;
415575fd0b74Schristos case 0xeb:
415675fd0b74Schristos GETBYTE ();
415775fd0b74Schristos switch (op[1] & 0x00)
415875fd0b74Schristos {
415975fd0b74Schristos case 0x00:
416075fd0b74Schristos goto op_semantics_24;
416175fd0b74Schristos break;
416275fd0b74Schristos }
416375fd0b74Schristos break;
416475fd0b74Schristos case 0xec:
416575fd0b74Schristos GETBYTE ();
416675fd0b74Schristos switch (op[1] & 0x00)
416775fd0b74Schristos {
416875fd0b74Schristos case 0x00:
416975fd0b74Schristos goto op_semantics_24;
417075fd0b74Schristos break;
417175fd0b74Schristos }
417275fd0b74Schristos break;
417375fd0b74Schristos case 0xed:
417475fd0b74Schristos GETBYTE ();
417575fd0b74Schristos switch (op[1] & 0x00)
417675fd0b74Schristos {
417775fd0b74Schristos case 0x00:
417875fd0b74Schristos goto op_semantics_24;
417975fd0b74Schristos break;
418075fd0b74Schristos }
418175fd0b74Schristos break;
418275fd0b74Schristos case 0xee:
418375fd0b74Schristos GETBYTE ();
418475fd0b74Schristos switch (op[1] & 0x00)
418575fd0b74Schristos {
418675fd0b74Schristos case 0x00:
418775fd0b74Schristos goto op_semantics_24;
418875fd0b74Schristos break;
418975fd0b74Schristos }
419075fd0b74Schristos break;
419175fd0b74Schristos case 0xef:
419275fd0b74Schristos GETBYTE ();
419375fd0b74Schristos switch (op[1] & 0x00)
419475fd0b74Schristos {
419575fd0b74Schristos case 0x00:
419675fd0b74Schristos goto op_semantics_24;
419775fd0b74Schristos break;
419875fd0b74Schristos }
419975fd0b74Schristos break;
420075fd0b74Schristos case 0xf0:
420175fd0b74Schristos GETBYTE ();
420275fd0b74Schristos switch (op[1] & 0x00)
420375fd0b74Schristos {
420475fd0b74Schristos case 0x00:
420575fd0b74Schristos goto op_semantics_24;
420675fd0b74Schristos break;
420775fd0b74Schristos }
420875fd0b74Schristos break;
420975fd0b74Schristos case 0xf1:
421075fd0b74Schristos GETBYTE ();
421175fd0b74Schristos switch (op[1] & 0x00)
421275fd0b74Schristos {
421375fd0b74Schristos case 0x00:
421475fd0b74Schristos goto op_semantics_24;
421575fd0b74Schristos break;
421675fd0b74Schristos }
421775fd0b74Schristos break;
421875fd0b74Schristos case 0xf2:
421975fd0b74Schristos GETBYTE ();
422075fd0b74Schristos switch (op[1] & 0x00)
422175fd0b74Schristos {
422275fd0b74Schristos case 0x00:
422375fd0b74Schristos goto op_semantics_24;
422475fd0b74Schristos break;
422575fd0b74Schristos }
422675fd0b74Schristos break;
422775fd0b74Schristos case 0xf3:
422875fd0b74Schristos GETBYTE ();
422975fd0b74Schristos switch (op[1] & 0x00)
423075fd0b74Schristos {
423175fd0b74Schristos case 0x00:
423275fd0b74Schristos goto op_semantics_24;
423375fd0b74Schristos break;
423475fd0b74Schristos }
423575fd0b74Schristos break;
423675fd0b74Schristos case 0xf4:
423775fd0b74Schristos GETBYTE ();
423875fd0b74Schristos switch (op[1] & 0x00)
423975fd0b74Schristos {
424075fd0b74Schristos case 0x00:
424175fd0b74Schristos goto op_semantics_24;
424275fd0b74Schristos break;
424375fd0b74Schristos }
424475fd0b74Schristos break;
424575fd0b74Schristos case 0xf5:
424675fd0b74Schristos GETBYTE ();
424775fd0b74Schristos switch (op[1] & 0x00)
424875fd0b74Schristos {
424975fd0b74Schristos case 0x00:
425075fd0b74Schristos goto op_semantics_24;
425175fd0b74Schristos break;
425275fd0b74Schristos }
425375fd0b74Schristos break;
425475fd0b74Schristos case 0xf6:
425575fd0b74Schristos GETBYTE ();
425675fd0b74Schristos switch (op[1] & 0x00)
425775fd0b74Schristos {
425875fd0b74Schristos case 0x00:
425975fd0b74Schristos goto op_semantics_24;
426075fd0b74Schristos break;
426175fd0b74Schristos }
426275fd0b74Schristos break;
426375fd0b74Schristos case 0xf7:
426475fd0b74Schristos GETBYTE ();
426575fd0b74Schristos switch (op[1] & 0x00)
426675fd0b74Schristos {
426775fd0b74Schristos case 0x00:
426875fd0b74Schristos goto op_semantics_24;
426975fd0b74Schristos break;
427075fd0b74Schristos }
427175fd0b74Schristos break;
427275fd0b74Schristos case 0xf8:
427375fd0b74Schristos GETBYTE ();
427475fd0b74Schristos switch (op[1] & 0x00)
427575fd0b74Schristos {
427675fd0b74Schristos case 0x00:
427775fd0b74Schristos goto op_semantics_24;
427875fd0b74Schristos break;
427975fd0b74Schristos }
428075fd0b74Schristos break;
428175fd0b74Schristos case 0xf9:
428275fd0b74Schristos GETBYTE ();
428375fd0b74Schristos switch (op[1] & 0x00)
428475fd0b74Schristos {
428575fd0b74Schristos case 0x00:
428675fd0b74Schristos goto op_semantics_24;
428775fd0b74Schristos break;
428875fd0b74Schristos }
428975fd0b74Schristos break;
429075fd0b74Schristos case 0xfa:
429175fd0b74Schristos GETBYTE ();
429275fd0b74Schristos switch (op[1] & 0x00)
429375fd0b74Schristos {
429475fd0b74Schristos case 0x00:
429575fd0b74Schristos goto op_semantics_24;
429675fd0b74Schristos break;
429775fd0b74Schristos }
429875fd0b74Schristos break;
429975fd0b74Schristos case 0xfb:
430075fd0b74Schristos GETBYTE ();
430175fd0b74Schristos switch (op[1] & 0x00)
430275fd0b74Schristos {
430375fd0b74Schristos case 0x00:
430475fd0b74Schristos goto op_semantics_24;
430575fd0b74Schristos break;
430675fd0b74Schristos }
430775fd0b74Schristos break;
430875fd0b74Schristos case 0xfc:
430975fd0b74Schristos GETBYTE ();
431075fd0b74Schristos switch (op[1] & 0x00)
431175fd0b74Schristos {
431275fd0b74Schristos case 0x00:
431375fd0b74Schristos goto op_semantics_24;
431475fd0b74Schristos break;
431575fd0b74Schristos }
431675fd0b74Schristos break;
431775fd0b74Schristos case 0xfd:
431875fd0b74Schristos GETBYTE ();
431975fd0b74Schristos switch (op[1] & 0x00)
432075fd0b74Schristos {
432175fd0b74Schristos case 0x00:
432275fd0b74Schristos goto op_semantics_24;
432375fd0b74Schristos break;
432475fd0b74Schristos }
432575fd0b74Schristos break;
432675fd0b74Schristos case 0xfe:
432775fd0b74Schristos GETBYTE ();
432875fd0b74Schristos switch (op[1] & 0x00)
432975fd0b74Schristos {
433075fd0b74Schristos case 0x00:
433175fd0b74Schristos goto op_semantics_24;
433275fd0b74Schristos break;
433375fd0b74Schristos }
433475fd0b74Schristos break;
433575fd0b74Schristos case 0xff:
433675fd0b74Schristos GETBYTE ();
433775fd0b74Schristos switch (op[1] & 0x00)
433875fd0b74Schristos {
433975fd0b74Schristos case 0x00:
434075fd0b74Schristos goto op_semantics_24;
434175fd0b74Schristos break;
434275fd0b74Schristos }
434375fd0b74Schristos break;
434475fd0b74Schristos }
4345ede78133Schristos #line 590 "msp430-decode.opc"
434675fd0b74Schristos
434775fd0b74Schristos return msp430->n_bytes;
434875fd0b74Schristos }
4349