#define sign_extend(N,SIZE) (((int)((N) << (sizeof(unsigned)*8-(SIZE)))) >> (sizeof(unsigned)*8-(SIZE)))
#include <assert.h>

#line 1 "decoder.m"
/*
 * Copyright (C) 1998-2001, The University of Queensland
 *
 * See the file "LICENSE.TERMS" for information on usage and
 * redistribution of this file, and for a DISCLAIMER OF ALL
 * WARRANTIES.
 *
 */

/*==============================================================================
 * FILE:	   decoder.m
 * OVERVIEW:   This file contains the high level decoding functionality, for example matching logues, calls, branches,
 *				etc. Ordinary instructions are processed in decoder_low.m
 *============================================================================*/ 
/*
 * $Revision: 1.65 $	// 1.33.2.2
 *
 * 26 Apr 02 - Mike: Changes for boomerang
 * 18 Nov 02 - Mike: Mods for MOV.Ed.Iv^od etc. Also suppressed warning re name
 * 09 Dec 02 - Mike: Changed DIS_REG32 to use dis_Reg again, because in the
 *				SSL file we have reg32 instead of r[reg32] (compat with SPARC)
 * 07 May 03 - Mike: Fixed several arithmetic and logical "iodb" instructions
 *				that had 8 bit instead of 32 bit modrm sizes
 * 24 Oct 03 - Mike: Fixed DIS_IDXP1: did not have +32 in macro
 * 02 Sep 05 - Mike: POP.Evod/w take Eaddr now, not Mem
*/

#include <assert.h>
#if defined(_MSC_VER) && _MSC_VER <= 1100
#include "signature.h"
#endif

#include "rtl.h"
#include "decoder.h"
#include "pentiumdecoder.h"
#include "prog.h"
#include "exp.h"
#include "proc.h"
#include "boomerang.h"
#include "statement.h"

#define DIS_R8	  (dis_Reg(r8+8))
#define DIS_R16	  (dis_Reg(r16+0))
#define DIS_R32	  (dis_Reg(r32+24))
#define DIS_REG8  (dis_Reg(reg+8))
#define DIS_REG16 (dis_Reg(reg+0))
#define DIS_REG32 (dis_Reg(reg+24))
#define DIS_SR16  (dis_Reg(sr16+16))
#define DIS_IDX	  (dis_Reg(idx+32))
#define DIS_IDXP1 (dis_Reg((idx+1)%7+32))

#define DIS_EADDR32 (dis_Eaddr(Eaddr, 32))
#define DIS_EADDR16 (dis_Eaddr(Eaddr, 16))
#define DIS_EADDR8	(dis_Eaddr(Eaddr,  8))
#define DIS_MEM		(dis_Mem(Mem))
#define DIS_MEM16	(dis_Mem(Mem16))	// Probably needs changing
#define DIS_MEM32	(dis_Mem(Mem32))	// Probably needs changing
#define DIS_MEM64	(dis_Mem(Mem64))	// Probably needs changing
#define DIS_MEM80	(dis_Mem(Mem80))	// Probably needs changing

#define DIS_I32		(addReloc(new Const(i32)))
#define DIS_I16		(new Const(i16))
#define DIS_I8		(new Const(i8))
#define DIS_COUNT	(new Const(count))
#define DIS_OFF		(addReloc(new Const(off)))


// Function to generate statements for the BSF/BSR series (Bit Scan Forward/
// Reverse)
void genBSFR(ADDRESS pc, Exp* reg, Exp* modrm, int init, int size, OPER incdec,
	int numBytes);

/**********************************
 * PentiumDecoder methods.
 **********************************/   

/*==============================================================================
 * FUNCTION:	   unused
 * OVERVIEW:	   A dummy function to suppress "unused local variable" messages
 * PARAMETERS:	   x: integer variable to be "used"
 * RETURNS:		   Nothing
 *============================================================================*/
void PentiumDecoder::unused(int x)
{}

/*==============================================================================
 * FUNCTION:	   PentiumDecoder::decodeInstruction
 * OVERVIEW:	   Decodes a machine instruction and returns an RTL instance. In most cases a single instruction is
 *					decoded. However, if a higher level construct that may consist of multiple instructions is matched,
 *					then there may be a need to return more than one RTL. The caller_prologue2 is an example of such
 *					a construct which encloses an abritary instruction that must be decoded into its own RTL.
 * PARAMETERS:	   pc - the native address of the pc
 *				   delta - the difference between the above address and the host address of the pc (i.e. the address
 *					that the pc is at in the loaded object file)
 *				   RTLDict - the dictionary of RTL templates used to instantiate the RTL for the instruction being
 *					decoded
 *				   proc - the enclosing procedure
 * RETURNS:		   a DecodeResult structure containing all the information gathered during decoding
 *============================================================================*/
static DecodeResult result;
DecodeResult& PentiumDecoder::decodeInstruction (ADDRESS pc, int delta)
{
	ADDRESS hostPC = pc + delta;

	// Clear the result structure;
	result.reset();

	// The actual list of instantiated Statements
	std::list<Statement*>* stmts = NULL;


	ADDRESS nextPC = NO_ADDRESS;


#line 112 "decoder.m"
{ 
  dword MATCH_p = 
    
#line 112 "decoder.m"
    hostPC
    ;
  char *MATCH_name;
  char *MATCH_name_page_0[] = {"REPNE.MOVSB", "JMP.Jvow", };
  char *MATCH_name_page_1[] = {"REPNE.MOVSvow", "REPNE.STOSvow", };
  char *MATCH_name_page_2[] = {"REPNE.CMPSvow", "REPNE.LODSvow", };
  char *MATCH_name_page_3[] = {"REP.MOVSvow", "REPNE.SCASvow", };
  char *MATCH_name_page_4[] = {"REPNE.MOVSvod", "REPNE.STOSB", };
  char *MATCH_name_page_5[] = {"REPNE.CMPSB", "REPNE.STOSvod", };
  char *MATCH_name_page_6[] = {"REPNE.CMPSvod", "REPNE.LODSB", };
  char *MATCH_name_page_7[] = {"REP.MOVSB", "REPNE.LODSvod", };
  char *MATCH_name_page_8[] = {"REP.MOVSvod", "REPNE.SCASB", };
  char *MATCH_name_page_9[] = {"REP.CMPSB", "REPNE.SCASvod", };
  char *MATCH_name_page_10[] = {"REP.CMPSvow", "REP.STOSvow", };
  char *MATCH_name_page_13[] = {"REP.CMPSvod", "REP.STOSB", };
  char *MATCH_name_col_59[] = {(char *)0, "JMP.Jvod", (char *)0, "JMP.Jb", };
  unsigned /* [0..255] */ MATCH_w_8_0;
  unsigned /* [0..255] */ MATCH_w_8_8;
  unsigned /* [0..65535] */ MATCH_w_16_8;
  unsigned MATCH_w_32_8;
  unsigned /* [0..255] */ MATCH_w_8_16;
  unsigned /* [0..65535] */ MATCH_w_16_16;
  unsigned MATCH_w_32_16;
  unsigned /* [0..255] */ MATCH_w_8_24;
  unsigned /* [0..65535] */ MATCH_w_16_24;
  unsigned MATCH_w_32_24;
  unsigned /* [0..255] */ MATCH_w_8_32;
  unsigned /* [0..65535] */ MATCH_w_16_32;
  unsigned MATCH_w_32_32;
  unsigned /* [0..255] */ MATCH_w_8_40;
  unsigned /* [0..65535] */ MATCH_w_16_40;
  unsigned /* [0..255] */ MATCH_w_8_48;
  unsigned MATCH_w_32_48;
  unsigned /* [0..255] */ MATCH_w_8_56;
  unsigned /* [0..65535] */ MATCH_w_16_56;
  unsigned MATCH_w_32_56;
  unsigned /* [0..255] */ MATCH_w_8_64;
  unsigned /* [0..65535] */ MATCH_w_16_64;
  unsigned /* [0..255] */ MATCH_w_8_72;
  { 
    MATCH_w_8_0 = getByte(MATCH_p); 
    if ((MATCH_w_8_0 >> 3 & 0x1) /* page at 0 */ == 1) 
      
        switch((MATCH_w_8_0 >> 4 & 0xf) /* row at 0 */) {
          case 0: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c786; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c788;  /*opt-block+*/
                              else 
                                goto MATCH_label_c787;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c789; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1543 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ORmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c787;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c788;  /*opt-block+*/
                        else 
                          goto MATCH_label_c789;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c786; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c790; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c792;  /*opt-block+*/
                              else 
                                goto MATCH_label_c791;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c793; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1513 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ORmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c791;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c792;  /*opt-block+*/
                        else 
                          goto MATCH_label_c793;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c790; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c794; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c796;  /*opt-block+*/
                              else 
                                goto MATCH_label_c795;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c797; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1471 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ORrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c795;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c796;  /*opt-block+*/
                        else 
                          goto MATCH_label_c797;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c794; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c798; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c800;  /*opt-block+*/
                              else 
                                goto MATCH_label_c799;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c801; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1441 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ORrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c799;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c800;  /*opt-block+*/
                        else 
                          goto MATCH_label_c801;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c798; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1738 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ORiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1690 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ORiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 817 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "PUSH.CS");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 4 & 0xf) /* row at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1098 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "INVD");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c802; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c804;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c803;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c805; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 429 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SLDT", DIS_EADDR32);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c803;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c804;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c805;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c802; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  { 
                                                    unsigned Mem = 
                                                      2 + 
                                                      addressToPC(MATCH_p);
                                                    nextPC = 3 + MATCH_p; 
                                                    
#line 405 "decoder.m"
                                                    

                                                    		stmts = instantiate(pc,	 "STR", DIS_MEM);

                                                    

                                                    
                                                    
                                                    
                                                  }
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c807;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c806;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c808; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 405 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "STR", DIS_MEM);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c806;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c807;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c808;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c64; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: case 6: case 7: 
                                      goto MATCH_label_c64; break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c809; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c811;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c810;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c812; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 1040 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "LTR", DIS_EADDR32);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c810;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c811;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c812;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c809; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c813; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c815;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c814;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c816; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 375 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "VERR", DIS_EADDR32);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c814;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c815;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c816;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c813; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c817; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c819;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c818;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c820; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 372 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "VERW", DIS_EADDR32);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c818;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c819;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c820;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c817; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 366 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "WBINVD");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  { 
                                                    unsigned Mem = 
                                                      2 + 
                                                      addressToPC(MATCH_p);
                                                    nextPC = 3 + MATCH_p; 
                                                    
#line 459 "decoder.m"
                                                    

                                                    		stmts = instantiate(pc,	 "SGDT", DIS_MEM);

                                                    

                                                    	// Sets are now in the high level instructions

                                                    
                                                    
                                                    
                                                  }
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c822;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c821;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c823; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 459 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SGDT", DIS_MEM);

                                              

                                              	// Sets are now in the high level instructions

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c821;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c822;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c823;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c64; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  { 
                                                    unsigned Mem = 
                                                      2 + 
                                                      addressToPC(MATCH_p);
                                                    nextPC = 3 + MATCH_p; 
                                                    
#line 456 "decoder.m"
                                                    

                                                    		stmts = instantiate(pc,	 "SIDT", DIS_MEM);

                                                    

                                                    
                                                    
                                                    
                                                  }
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c825;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c824;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c826; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 456 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SIDT", DIS_MEM);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c824;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c825;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c826;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c64; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: case 3: case 5: case 6: 
                                      goto MATCH_label_c64; break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c827; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c829;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c828;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c830; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 426 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SMSW", DIS_EADDR32);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c828;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c829;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c830;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c827; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  { 
                                                    unsigned Mem = 
                                                      2 + 
                                                      addressToPC(MATCH_p);
                                                    nextPC = 3 + MATCH_p; 
                                                    
#line 1095 "decoder.m"
                                                    

                                                    		stmts = instantiate(pc,	 "INVLPG", DIS_MEM);

                                                    

                                                    
                                                    
                                                    
                                                  }
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c832;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c831;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c833; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 1095 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "INVLPG", DIS_MEM);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c831;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c832;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c833;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c64; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c834; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c836;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c835;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c837; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1082 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LAR.od", DIS_REG32, DIS_EADDR32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c835;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c836;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c837;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c834; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c838; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c840;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c839;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c841; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1046 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LSLod", DIS_REG32, DIS_EADDR32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c839;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c840;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c841;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c838; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 4: case 5: case 7: 
                              goto MATCH_label_c64; break;
                            case 6: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 0) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1259 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "CLTS");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 1: case 2: case 4: case 5: case 6: case 7: 
                      case 13: case 14: case 15: 
                        goto MATCH_label_c64; break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 0) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 363 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "WRMSR");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 1: case 3: case 4: case 5: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 0) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 596 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RDMSR");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 8: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 246 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Sod", 6, relocd, BRANCH_JMI)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 1: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 244 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NSod", 6, relocd, BRANCH_JPOS)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 2: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 242 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Pod", 6, relocd, BRANCH_JPAR)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 3: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 240 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NPod", 6, relocd, (BRANCH_TYPE)0)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 4: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 238 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Lod", 6, relocd, BRANCH_JSL)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 5: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 236 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NLod", 6, relocd, BRANCH_JSGE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 6: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 234 "decoder.m"
                                  

                                  		COND_JUMP("Jv.LEod", 6, relocd, BRANCH_JSLE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 7: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 232 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NLEod", 6, relocd, BRANCH_JSG)

                                  
                                  
                                  
                                }
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        else 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 263 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Ood", 6, relocd, (BRANCH_TYPE)0)

                                  

                                  
                                  
                                  
                                }
                                
                                break;
                              case 1: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 260 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NOod", 6, relocd, (BRANCH_TYPE)0)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 2: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 258 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Bod", 6, relocd, BRANCH_JUL)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 3: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 256 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NBod", 6, relocd, BRANCH_JUGE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 4: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 254 "decoder.m"
                                  

                                  		COND_JUMP("Jv.Zod", 6, relocd, BRANCH_JE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 5: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 252 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NZod", 6, relocd, BRANCH_JNE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 6: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 250 "decoder.m"
                                  

                                  		COND_JUMP("Jv.BEod", 6, relocd, BRANCH_JULE)

                                  
                                  
                                  
                                }
                                
                                break;
                              case 7: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned relocd = 
                                    6 + MATCH_w_32_16 /* i32 at 16 */ + 
                                    addressToPC(MATCH_p);
                                  nextPC = 6 + MATCH_p; 
                                  
#line 248 "decoder.m"
                                  

                                  		COND_JUMP("Jv.NBEod", 6, relocd, BRANCH_JUG)

                                  
                                  
                                  
                                }
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        break;
                      case 9: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.S"; 
                                            goto MATCH_label_c866; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.S"; 
                                              goto MATCH_label_c868; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.S"; 
                                              goto MATCH_label_c867; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.S"; 
                                            goto MATCH_label_c869; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.S"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 287 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JMI)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.S"; 
                                        goto MATCH_label_c867; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.S"; 
                                        goto MATCH_label_c868; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.S"; 
                                        goto MATCH_label_c869; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.S"; 
                                      goto MATCH_label_c866; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 1: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NS"; 
                                            goto MATCH_label_c870; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NS"; 
                                              goto MATCH_label_c872; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NS"; 
                                              goto MATCH_label_c871; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NS"; 
                                            goto MATCH_label_c873; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NS"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 284 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JPOS)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NS"; 
                                        goto MATCH_label_c871; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NS"; 
                                        goto MATCH_label_c872; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NS"; 
                                        goto MATCH_label_c873; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NS"; 
                                      goto MATCH_label_c870; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 2: case 3: 
                                goto MATCH_label_c64; break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.L"; 
                                            goto MATCH_label_c874; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.L"; 
                                              goto MATCH_label_c876; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.L"; 
                                              goto MATCH_label_c875; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.L"; 
                                            goto MATCH_label_c877; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.L"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 275 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JSL)

                                          	//| SETb.NP(Eaddr) [name] =>

                                          	//	stmts = instantiate(pc, name, DIS_EADDR8);

                                          	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

                                          	//| SETb.P(Eaddr) [name] =>

                                          	//	stmts = instantiate(pc, name, DIS_EADDR8);

                                          	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.L"; 
                                        goto MATCH_label_c875; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.L"; 
                                        goto MATCH_label_c876; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.L"; 
                                        goto MATCH_label_c877; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.L"; 
                                      goto MATCH_label_c874; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 5: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NL"; 
                                            goto MATCH_label_c878; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NL"; 
                                              goto MATCH_label_c880; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NL"; 
                                              goto MATCH_label_c879; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NL"; 
                                            goto MATCH_label_c881; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NL"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 272 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JSGE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NL"; 
                                        goto MATCH_label_c879; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NL"; 
                                        goto MATCH_label_c880; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NL"; 
                                        goto MATCH_label_c881; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NL"; 
                                      goto MATCH_label_c878; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 6: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.LE"; 
                                            goto MATCH_label_c882; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.LE"; 
                                              goto MATCH_label_c884; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.LE"; 
                                              goto MATCH_label_c883; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.LE"; 
                                            goto MATCH_label_c885; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.LE"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 269 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JSLE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.LE"; 
                                        goto MATCH_label_c883; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.LE"; 
                                        goto MATCH_label_c884; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.LE"; 
                                        goto MATCH_label_c885; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.LE"; 
                                      goto MATCH_label_c882; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NLE"; 
                                            goto MATCH_label_c886; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NLE"; 
                                              goto MATCH_label_c888; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NLE"; 
                                              goto MATCH_label_c887; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NLE"; 
                                            goto MATCH_label_c889; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NLE"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 266 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JSG)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NLE"; 
                                        goto MATCH_label_c887; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NLE"; 
                                        goto MATCH_label_c888; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NLE"; 
                                        goto MATCH_label_c889; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NLE"; 
                                      goto MATCH_label_c886; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        else 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: case 1: 
                                goto MATCH_label_c64; break;
                              case 2: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.B"; 
                                            goto MATCH_label_c842; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.B"; 
                                              goto MATCH_label_c844; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.B"; 
                                              goto MATCH_label_c843; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.B"; 
                                            goto MATCH_label_c845; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.B"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 305 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JUL)

                                          	//| SETb.NO(Eaddr) [name] =>

                                          	//	stmts = instantiate(pc, name, DIS_EADDR8);

                                          	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

                                          	//| SETb.O(Eaddr) [name] =>

                                          	//	stmts = instantiate(pc, name, DIS_EADDR8);

                                          	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

                                          

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.B"; 
                                        goto MATCH_label_c843; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.B"; 
                                        goto MATCH_label_c844; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.B"; 
                                        goto MATCH_label_c845; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.B"; 
                                      goto MATCH_label_c842; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 3: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NB"; 
                                            goto MATCH_label_c846; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NB"; 
                                              goto MATCH_label_c848; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NB"; 
                                              goto MATCH_label_c847; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NB"; 
                                            goto MATCH_label_c849; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NB"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 302 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JUGE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NB"; 
                                        goto MATCH_label_c847; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NB"; 
                                        goto MATCH_label_c848; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NB"; 
                                        goto MATCH_label_c849; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NB"; 
                                      goto MATCH_label_c846; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.Z"; 
                                            goto MATCH_label_c850; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.Z"; 
                                              goto MATCH_label_c852; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.Z"; 
                                              goto MATCH_label_c851; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.Z"; 
                                            goto MATCH_label_c853; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.Z"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 299 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.Z"; 
                                        goto MATCH_label_c851; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.Z"; 
                                        goto MATCH_label_c852; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.Z"; 
                                        goto MATCH_label_c853; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.Z"; 
                                      goto MATCH_label_c850; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 5: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NZ"; 
                                            goto MATCH_label_c854; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NZ"; 
                                              goto MATCH_label_c856; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NZ"; 
                                              goto MATCH_label_c855; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NZ"; 
                                            goto MATCH_label_c857; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NZ"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 296 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JNE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NZ"; 
                                        goto MATCH_label_c855; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NZ"; 
                                        goto MATCH_label_c856; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NZ"; 
                                        goto MATCH_label_c857; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NZ"; 
                                      goto MATCH_label_c854; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 6: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.BE"; 
                                            goto MATCH_label_c858; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.BE"; 
                                              goto MATCH_label_c860; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.BE"; 
                                              goto MATCH_label_c859; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.BE"; 
                                            goto MATCH_label_c861; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.BE"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 293 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JULE)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.BE"; 
                                        goto MATCH_label_c859; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.BE"; 
                                        goto MATCH_label_c860; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.BE"; 
                                        goto MATCH_label_c861; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.BE"; 
                                      goto MATCH_label_c858; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_name = "SETb.NBE"; 
                                            goto MATCH_label_c862; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_name = "SETb.NBE"; 
                                              goto MATCH_label_c864; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_name = "SETb.NBE"; 
                                              goto MATCH_label_c863; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_name = "SETb.NBE"; 
                                            goto MATCH_label_c865; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NBE"; 
                                        { 
                                          char *name = MATCH_name;
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 290 "decoder.m"
                                          

                                          		stmts = instantiate(pc, name, DIS_EADDR8);

                                          		SETS(name, DIS_EADDR8, BRANCH_JUG)

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NBE"; 
                                        goto MATCH_label_c863; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_name = "SETb.NBE"; 
                                        goto MATCH_label_c864; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_name = "SETb.NBE"; 
                                        goto MATCH_label_c865; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_name = "SETb.NBE"; 
                                      goto MATCH_label_c862; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        break;
                      case 10: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 802 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "PUSH.GS");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                nextPC = 2 + MATCH_p; 
                                
#line 805 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "PUSH.FS");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              
                              break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 856 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "POP.GS");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                nextPC = 2 + MATCH_p; 
                                
#line 859 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "POP.FS");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              
                              break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 475 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RSM");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1232 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "CPUID");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c894; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c896;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c895;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c897; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1316 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "BTSod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c895;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c896;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c897;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c894; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c890; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c892;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c891;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c893; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1352 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "BTod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c891;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c892;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c893;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c890; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 4: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c902; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c904; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c903; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_w_8_56 = 
                                              getByte(7 + MATCH_p); 
                                            goto MATCH_label_c905; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_40 = getByte(5 + MATCH_p); 
                                        { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          unsigned count = 
                                            (MATCH_w_8_40 & 0xff) 
                                                  /* i8 at 40 */;
                                          unsigned reg = 
                                            (MATCH_w_8_16 >> 3 & 0x7) 
                                                  /* reg_opcode at 16 */;
                                          nextPC = 6 + MATCH_p; 
                                          
#line 450 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "SHRD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

                                          

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                        goto MATCH_label_c903; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_64 = getByte(8 + MATCH_p); 
                                        goto MATCH_label_c904; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                        goto MATCH_label_c905; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c902; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c898; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c900; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c899; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_w_8_56 = 
                                              getByte(7 + MATCH_p); 
                                            goto MATCH_label_c901; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_40 = getByte(5 + MATCH_p); 
                                        { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          unsigned count = 
                                            (MATCH_w_8_40 & 0xff) 
                                                  /* i8 at 40 */;
                                          unsigned reg = 
                                            (MATCH_w_8_16 >> 3 & 0x7) 
                                                  /* reg_opcode at 16 */;
                                          nextPC = 6 + MATCH_p; 
                                          
#line 444 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "SHLD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

                                          

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                        goto MATCH_label_c899; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_64 = getByte(8 + MATCH_p); 
                                        goto MATCH_label_c900; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                        goto MATCH_label_c901; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c898; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c910; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c912;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c911;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c913; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 438 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SHRD.CLod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c911;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c912;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c913;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c910; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c906; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c908;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c907;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c909; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 432 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SHLD.CLod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c907;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c908;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c909;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c906; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 6: 
                              goto MATCH_label_c64; break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c914; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c916;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c915;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c917; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1166 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "IMULrmod", DIS_REG32, DIS_EADDR32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c915;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c916;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c917;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c914; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 11: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: case 1: 
                                goto MATCH_label_c64; break;
                              case 2: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: case 1: case 2: case 3: 
                                      goto MATCH_label_c64; break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c947; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c949; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c948; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c950; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1346 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "BTiod", DIS_EADDR32, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c948; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c949; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c950; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c947; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c951; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c953; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c952; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c954; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1310 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "BTSiod", DIS_I8, DIS_EADDR32);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c952; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c953; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c954; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c951; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c955; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c957; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c956; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c958; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1322 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "BTRiod", DIS_EADDR32, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c956; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c957; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c958; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c955; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c959; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c961; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c960; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c962; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1334 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "BTCiod", DIS_EADDR32, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c960; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c961; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c962; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c959; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                                break;
                              case 3: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c963; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c965;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c964;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c966; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1340 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "BTCod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c964;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c965;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c966;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c963; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c967; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c969;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c968;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c970; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1372 "decoder.m"
                                        

                                        		//stmts = instantiate(pc,  "BSFod", DIS_REG32, DIS_EADDR32);

                                        		genBSFR(pc, DIS_REG32, DIS_EADDR32, -1, 32, opPlus, nextPC-hostPC);

                                        		return result;

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c968;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c969;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c970;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c967; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 5: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c971; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c973;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c972;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c974; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1361 "decoder.m"
                                        

                                        		//stmts = instantiate(pc,  "BSRod", DIS_REG32, DIS_EADDR32);

                                        		// Bit Scan Forward: need helper function

                                        		genBSFR(pc, DIS_REG32, DIS_EADDR32, 32, 32, opMinus, nextPC-hostPC);

                                        		return result;

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c972;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c973;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c974;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c971; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 6: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c975; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c977;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c976;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c978; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned r32 = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 949 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVSX.Gv.Ebod", DIS_R32, DIS_EADDR8);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c976;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c977;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c978;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c975; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c979; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c981;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c980;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c982; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned r32 = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 946 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVSX.Gv.Ew", DIS_R32, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c980;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c981;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c982;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c979; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        else 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c918; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c920;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c919;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c921; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1244 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "CMPXCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c919;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c920;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c921;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c918; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 1: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c922; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c924;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c923;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c925; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1238 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c923;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c924;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c925;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c922; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 2: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              unsigned reg = 
                                                (MATCH_w_8_16 >> 3 & 0x7) 
                                                      /* reg_opcode at 16 */;
                                              nextPC = 3 + MATCH_p; 
                                              
#line 1043 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "LSS", DIS_REG32, DIS_MEM);

                                              

                                              
                                              
                                              
                                            }
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c927;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c926;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c928; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Mem = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1043 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LSS", DIS_REG32, DIS_MEM);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c926;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c927;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c928;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c64; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 3: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c929; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c931;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c930;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c932; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1328 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "BTRod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c930;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c931;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c932;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c929; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              unsigned reg = 
                                                (MATCH_w_8_16 >> 3 & 0x7) 
                                                      /* reg_opcode at 16 */;
                                              nextPC = 3 + MATCH_p; 
                                              
#line 1064 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "LFS", DIS_REG32, DIS_MEM);

                                              

                                              
                                              
                                              
                                            }
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c934;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c933;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c935; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Mem = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1064 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LFS", DIS_REG32, DIS_MEM);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c933;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c934;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c935;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c64; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 5: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              unsigned reg = 
                                                (MATCH_w_8_16 >> 3 & 0x7) 
                                                      /* reg_opcode at 16 */;
                                              nextPC = 3 + MATCH_p; 
                                              
#line 1061 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "LGS", DIS_REG32, DIS_MEM);

                                              

                                              
                                              
                                              
                                            }
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c937;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c936;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c938; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Mem = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1061 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LGS", DIS_REG32, DIS_MEM);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c936;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c937;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c938;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c64; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 6: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c939; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c941;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c940;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c942; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned r32 = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 940 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVZX.Gv.Ebod", DIS_R32, DIS_EADDR8);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c940;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c941;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c942;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c939; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c943; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c945;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c944;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c946; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned r32 = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 937 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVZX.Gv.Ew", DIS_R32, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c944;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c945;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c946;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c943; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        break;
                      case 12: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 1358 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "BSWAP", DIS_R32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c983; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c985;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c984;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c986; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 360 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "XADD.Eb.Gb", DIS_EADDR8, DIS_REG8);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c984;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c985;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c986;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c983; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 1: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c987; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c989;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c988;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c990; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 354 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "XADD.Ev.Gvod", DIS_EADDR32, DIS_REG32);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c988;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c989;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c990;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c987; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 2: case 3: case 4: case 5: case 6: 
                                goto MATCH_label_c64; break;
                              case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */ == 1) 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              { 
                                                unsigned Mem = 
                                                  2 + addressToPC(MATCH_p);
                                                nextPC = 3 + MATCH_p; 
                                                
#line 1235 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "CMPXCHG8B", DIS_MEM);

                                                

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c992;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c991;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c993; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Mem = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1235 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "CMPXCHG8B", DIS_MEM);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c991;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c992;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c993;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c64; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/  
                                else 
                                  goto MATCH_label_c64;  /*opt-block+*/
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 4 & 0xf) -- row at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 1: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c994; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c996;  /*opt-block+*/
                              else 
                                goto MATCH_label_c995;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c997; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1537 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SBBmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c995;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c996;  /*opt-block+*/
                        else 
                          goto MATCH_label_c997;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c994; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c998; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1000;  /*opt-block+*/
                              else 
                                goto MATCH_label_c999;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1001; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1501 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SBBmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c999;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1000;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1001;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c998; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1002; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1004;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1003;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1005; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1465 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SBBrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1003;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1004;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1005;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1002; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1006; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1008;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1007;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1009; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1429 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SBBrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1007;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1008;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1009;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1006; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1732 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "SBBiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1684 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "SBBiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 811 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "PUSH.DS");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 862 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "POP.DS");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 2: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1010; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1012;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1011;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1013; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1531 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SUBmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1011;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1012;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1013;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1010; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1014; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1016;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1015;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1017; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1489 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SUBmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1015;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1016;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1017;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1014; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1018; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1020;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1019;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1021; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1459 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SUBrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1019;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1020;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1021;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1018; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1022; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1024;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1023;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1025; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1417 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "SUBrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1023;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1024;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1025;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1022; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1726 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "SUBiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1678 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "SUBiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 330 "decoder.m"
                  		 // For now, treat seg.cs as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1220 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "DAS");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 3: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1026; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1028;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1027;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1029; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1525 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "CMPmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1027;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1028;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1029;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1026; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1030; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1032;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1031;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1033; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1477 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "CMPmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1031;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1032;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1033;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1030; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1034; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1036;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1035;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1037; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1453 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "CMPrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1035;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1036;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1037;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1034; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1038; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1040;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1039;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1041; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1405 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "CMPrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1039;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1040;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1041;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1038; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1720 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "CMPiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1672 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "CMPiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 333 "decoder.m"
                  		 // For now, treat seg.ds as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  goto MATCH_label_c64; break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 4: 
            { 
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 1 + MATCH_p; 
              
#line 1205 "decoder.m"
              

              		stmts = instantiate(pc,	 "DECod", DIS_R32);

              

              
              
              
            }
            
            break;
          case 5: 
            { 
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 1 + MATCH_p; 
              
#line 871 "decoder.m"
              

              		stmts = instantiate(pc,	 "POPod", DIS_R32);

              

              
              
              
            }
            
            break;
          case 6: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 820 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "PUSH.Ivod", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c1042; 
                              
                              break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c1044; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c1043; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 5: 
                              MATCH_w_32_48 = getDword(6 + MATCH_p); 
                              goto MATCH_label_c1045; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          MATCH_w_32_32 = getDword(4 + MATCH_p); 
                          { 
                            unsigned Eaddr = 1 + addressToPC(MATCH_p);
                            unsigned i32 = MATCH_w_32_32 /* i32 at 32 */;
                            unsigned reg = 
                              (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                            nextPC = 8 + MATCH_p; 
                            
#line 1154 "decoder.m"
                            

                            		stmts = instantiate(pc,	 "IMUL.Ivd", DIS_REG32, DIS_EADDR32, DIS_I32);

                            

                            
                            
                            
                          }
                          
                        } /*opt-block*/
                        else { 
                          MATCH_w_32_24 = getDword(3 + MATCH_p); 
                          goto MATCH_label_c1043; 
                          
                        } /*opt-block*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          MATCH_w_32_56 = getDword(7 + MATCH_p); 
                          goto MATCH_label_c1044; 
                          
                        } /*opt-block*/
                        else { 
                          MATCH_w_32_48 = getDword(6 + MATCH_p); 
                          goto MATCH_label_c1045; 
                          
                        } /*opt-block*/
                        
                        break;
                      case 3: 
                        MATCH_w_32_16 = getDword(2 + MATCH_p); 
                        goto MATCH_label_c1042; 
                        
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 826 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "PUSH.Ixob", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c1046; 
                              
                              break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c1048; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c1047; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 5: 
                              MATCH_w_8_48 = getByte(6 + MATCH_p); 
                              goto MATCH_label_c1049; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          MATCH_w_8_32 = getByte(4 + MATCH_p); 
                          { 
                            unsigned Eaddr = 1 + addressToPC(MATCH_p);
                            int /* [~128..127] */ i8 = 
                              sign_extend((MATCH_w_8_32 & 0xff) 
                                                /* i8 at 32 */, 8);
                            unsigned reg = 
                              (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                            nextPC = 5 + MATCH_p; 
                            
#line 1160 "decoder.m"
                            

                            		stmts = instantiate(pc,	 "IMUL.Ibod", DIS_REG32, DIS_EADDR32, DIS_I8);

                            

                            
                            
                            
                          }
                          
                        } /*opt-block*/
                        else { 
                          MATCH_w_8_24 = getByte(3 + MATCH_p); 
                          goto MATCH_label_c1047; 
                          
                        } /*opt-block*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          MATCH_w_8_56 = getByte(7 + MATCH_p); 
                          goto MATCH_label_c1048; 
                          
                        } /*opt-block*/
                        else { 
                          MATCH_w_8_48 = getByte(6 + MATCH_p); 
                          goto MATCH_label_c1049; 
                          
                        } /*opt-block*/
                        
                        break;
                      case 3: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        goto MATCH_label_c1046; 
                        
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: case 5: case 6: case 7: 
                  goto MATCH_label_c64; break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 7: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 174 "decoder.m"
                    

                    		COND_JUMP("Jb.S", 2, relocd, BRANCH_JMI)

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 172 "decoder.m"
                    

                    		COND_JUMP("Jb.NS", 2, relocd, BRANCH_JPOS)

                    
                    
                    
                  }
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 170 "decoder.m"
                    

                    		COND_JUMP("Jb.P", 2, relocd, BRANCH_JPAR)

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 168 "decoder.m"
                    

                    		COND_JUMP("Jb.NP", 2, relocd, (BRANCH_TYPE)0)

                    
                    
                    
                  }
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 166 "decoder.m"
                    

                    		COND_JUMP("Jb.L", 2, relocd, BRANCH_JSL)

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 164 "decoder.m"
                    

                    		COND_JUMP("Jb.NL", 2, relocd, BRANCH_JSGE)

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 162 "decoder.m"
                    

                    		COND_JUMP("Jb.LE", 2, relocd, BRANCH_JSLE)

                    
                    
                    
                  }
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 160 "decoder.m"
                    

                    		COND_JUMP("Jb.NLE", 2, relocd, BRANCH_JSG)

                    
                    
                    
                  }
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 8: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1050; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1052;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1051;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1053; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1037 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "MOVmrb", DIS_EADDR8, DIS_REG8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1051;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1052;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1053;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1050; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1054; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1056;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1055;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1057; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1031 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "MOVmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1055;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1056;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1057;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1054; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1058; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1060;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1059;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1061; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1028 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "MOVrmb", DIS_REG8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1059;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1060;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1061;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1058; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c1062; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1064;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1063;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1065; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1022 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "MOVrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1063;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1064;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1065;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c1062; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: case 6: 
                  goto MATCH_label_c64; break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                unsigned reg = 
                                  (MATCH_w_8_8 >> 3 & 0x7) 
                                        /* reg_opcode at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1073 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "LEA.od", DIS_REG32, DIS_MEM);

                                

                                
                                
                                
                              }
                              
                              break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1067;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1066;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c1068; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Mem = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1073 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "LEA.od", DIS_REG32, DIS_MEM);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1066;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c1067;  /*opt-block+*/
                        else 
                          goto MATCH_label_c1068;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c64; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  if ((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */ == 0) 
                    
                      switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                        case 0: 
                          
                            switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                              case 0: case 1: case 2: case 3: case 6: case 7: 
                                goto MATCH_label_c1069; break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 & 0x7) 
                                        /* base at 16 */ == 5 && 
                                  (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ && 
                                  (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ < 8)) 
                                  goto MATCH_label_c1071;  /*opt-block+*/
                                else 
                                  goto MATCH_label_c1070;  /*opt-block+*/
                                
                                break;
                              case 5: 
                                goto MATCH_label_c1072; break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                          break;
                        case 1: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ < 8)) { 
                            unsigned Eaddr = 1 + addressToPC(MATCH_p);
                            nextPC = 4 + MATCH_p; 
                            
#line 877 "decoder.m"
                            

                            		stmts = instantiate(pc,	 "POP.Evod", DIS_EADDR32);

                            

                            
                            
                            
                          } /*opt-block*//*opt-block+*/
                          else 
                            goto MATCH_label_c1070;  /*opt-block+*/
                          
                          break;
                        case 2: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                            goto MATCH_label_c1071;  /*opt-block+*/
                          else 
                            goto MATCH_label_c1072;  /*opt-block+*/
                          
                          break;
                        case 3: 
                          goto MATCH_label_c1069; break;
                        default: assert(0);
                      } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/  
                  else 
                    goto MATCH_label_c64;  /*opt-block+*/
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 9: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1271 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CWDE");

                  

                  
                  
                  
                  
                  break;
                case 1: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1226 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CDQ");

                  

                  
                  
                  
                  
                  break;
                case 2: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  MATCH_w_16_40 = getWord(5 + MATCH_p); 
                  { 
                    unsigned off = MATCH_w_32_8 /* i32 at 8 */;
                    unsigned seg = (MATCH_w_16_40 & 0xffff) /* i16 at 40 */;
                    nextPC = 7 + MATCH_p; 
                    
#line 1279 "decoder.m"
                    

                    		unused(seg); unused(off);

                    		stmts = instantiate(pc, "NOP");

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  nextPC = 1 + MATCH_p; 
                  
#line 369 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "WAIT");

                  

                  
                  
                  
                  
                  break;
                case 4: case 5: 
                  goto MATCH_label_c64; break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 472 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "SAHF");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1088 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "LAHF");

                  

                  	/* Branches have been handled in decodeInstruction() now */

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 10: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned i8 = (MATCH_w_8_8 & 0xff) /* i8 at 8 */;
                    nextPC = 2 + MATCH_p; 
                    
#line 402 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "TEST.AL.Ib", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 396 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "TEST.eAX.Ivod", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 2: 
                  nextPC = 1 + MATCH_p; 
                  
#line 414 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "STOSB");

                  

                  
                  
                  
                  
                  break;
                case 3: 
                  nextPC = 1 + MATCH_p; 
                  
#line 408 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "STOSvod");

                  

                  
                  
                  
                  
                  break;
                case 4: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1750 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "LODSB");

                  

                  	/* Floating point instructions */

                  
                  
                  
                  
                  break;
                case 5: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1744 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "LODSvod");

                  

                  
                  
                  
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 469 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "SCASB");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 463 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "SCASvod");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 11: 
            MATCH_w_32_8 = getDword(1 + MATCH_p); 
            { 
              unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 5 + MATCH_p; 
              
#line 989 "decoder.m"
              

              		stmts = instantiate(pc,	 "MOVid", DIS_R32, DIS_I32);

              

              
              
              
            }
            
            break;
          case 12: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_16_8 = getWord(1 + MATCH_p); 
                  MATCH_w_8_24 = getByte(3 + MATCH_p); 
                  { 
                    unsigned i16 = (MATCH_w_16_8 & 0xffff) /* i16 at 8 */;
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
                    nextPC = 4 + MATCH_p; 
                    
#line 1193 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ENTER", DIS_I16, DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1070 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "LEAVE");

                  

                  
                  
                  
                  
                  break;
                case 2: 
                  MATCH_w_16_8 = getWord(1 + MATCH_p); 
                  { 
                    unsigned i16 = (MATCH_w_16_8 & 0xffff) /* i16 at 8 */;
                    nextPC = 3 + MATCH_p; 
                    
#line 478 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "RET.far.Iw", DIS_I16);

                    		ReturnStatement *ret = new ReturnStatement;

                    		result.rtl = new RTL(pc, stmts);

                    		result.rtl->appendStmt(ret);

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  nextPC = 1 + MATCH_p; 
                  
#line 490 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "RET.far");

                  		result.rtl = new RTL(pc, stmts);

                  		result.rtl->appendStmt(new ReturnStatement);

                  

                  
                  
                  
                  
                  break;
                case 4: 
                  goto MATCH_label_c64; break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1104 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "INT.Ib", DIS_I8);

                    

                    // Removing because an invalid instruction is better than trying to

                    // instantiate this. -trent

                    //	  | INT3() =>

                    //		  stmts = instantiate(pc,  "INT3");

                    

                    //	  | INSvod() =>

                    //		  stmts = instantiate(pc,  "INSvod");

                    

                    //	  | INSvow() =>

                    //		  stmts = instantiate(pc,  "INSvow");

                    

                    //	  | INSB() =>

                    //		  stmts = instantiate(pc,  "INSB");

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1101 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "INTO");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1092 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "IRET");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 13: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1760 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FADD.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1074;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1073;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1075; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1760 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FADD.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1073;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1074;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1075;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1766 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FADD.St.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1954 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FMUL.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1077;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1076;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1078; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1954 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FMUL.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1076;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1077;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1078;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1960 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FMUL.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1793 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FCOM.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1080;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1079;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1081; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1793 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOM.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1079;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1080;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1081;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1811 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOM.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1805 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FCOMP.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1083;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1082;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1084; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1805 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOMP.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1082;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1083;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1084;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1814 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOMP.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2044 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSUB.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1086;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1085;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1087; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2044 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUB.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1085;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1086;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1087;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2050 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUB.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2065 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSUBR.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1089;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1088;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1090; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2065 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBR.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1088;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1089;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1090;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2071 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBR.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1838 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FDIV.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1092;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1091;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1093; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1838 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIV.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1091;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1092;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1093;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1844 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIV.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1859 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FDIVR.R32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1095;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1094;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1096; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1859 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVR.R32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1094;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1095;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1096;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1865 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVR.ST.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1910 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FLD.lsR32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1098;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1097;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1099; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1910 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLD.lsR32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1097;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1098;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1099;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1924 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLD.STi", DIS_IDXP1);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        if ((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */ == 3) { 
                          unsigned idx = (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 2107 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "FXCH", DIS_IDX);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2011 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FST.lsR32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1101;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1100;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1102; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2011 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FST.lsR32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1100;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1101;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1102;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 0) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1975 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FNOP");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2017 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTP.lsR32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1104;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1103;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1105; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2017 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTP.lsR32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1103;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1104;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1105;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem = 1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1951 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FLDENV", DIS_MEM);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1107;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1106;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1108; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1951 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLDENV", DIS_MEM);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1106;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1107;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1108;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1787 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FCHS");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 1: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1757 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FABS");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 2: case 3: case 6: case 7: 
                                    goto MATCH_label_c64; break;
                                  case 4: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2086 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FTST");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 5: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2104 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FXAM");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1948 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FLDCW", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1110;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1109;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1111; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1948 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLDCW", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1109;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1110;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1111;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1927 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLD1");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 1: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1930 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDL2T");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 2: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1933 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDL2E");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 3: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1936 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDPI");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 4: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1939 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDLG2");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 5: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1942 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDLN2");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 6: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1945 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FLDZ");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 7: 
                                    goto MATCH_label_c64; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem = 1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2035 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTENV", DIS_MEM);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1113;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1112;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1114; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2035 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTENV", DIS_MEM);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1112;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1113;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1114;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1754 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "F2XM1");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 1: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2113 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FYL2X");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 2: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1987 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FPTAN");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 3: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1978 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FPATAN");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 4: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2110 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FXTRACT");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 5: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1984 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FPREM1");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 6: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1835 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FDECSTP");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 7: 
                                    goto MATCH_label_c64; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2032 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTCW", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1116;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1115;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1117; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2032 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTCW", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1115;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1116;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1117;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1981 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FPREM");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 1: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2116 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FYL2XP1");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 2: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2008 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FSQRT");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 3: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2005 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FSINCOS");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 4: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1990 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FRNDINT");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 5: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1999 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FSCALE");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 6: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 2002 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FSIN");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  case 7: 
                                    nextPC = 2 + MATCH_p; 
                                    
#line 1832 "decoder.m"
                                    

                                    		stmts = instantiate(pc,	 "FCOS");

                                    

                                    
                                    
                                    
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1775 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIADD.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1119;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1118;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1120; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1775 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIADD.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1118;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1119;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1120;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1969 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIMUL.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1122;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1121;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1123; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1969 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIMUL.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1121;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1122;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1123;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1799 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FICOM.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1125;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1124;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1126; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1799 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FICOM.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1124;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1125;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1126;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1817 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FICOMP.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1128;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1127;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1129; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1817 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FICOMP.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1127;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1128;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1129;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2056 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISUB.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1131;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1130;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1132; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2056 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISUB.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1130;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1131;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1132;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2077 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISUBR.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1134;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1133;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1135; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2077 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISUBR.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1133;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1134;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1135;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 2095 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FUCOMPP");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1853 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIDIV.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1137;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1136;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1138; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1853 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIDIV.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1136;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1137;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1138;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1871 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIDIVR.I32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1140;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1139;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1141; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1871 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIDIVR.I32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1139;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1140;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1141;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1886 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FILD.lsI32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1143;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1142;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1144; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1886 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FILD.lsI32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1142;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1143;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1144;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        goto MATCH_label_c64; break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1898 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIST.lsI32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1146;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1145;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1147; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1898 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIST.lsI32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1145;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1146;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1147;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem32 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1904 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISTP.lsI32", DIS_MEM32);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1149;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1148;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1150; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem32 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1904 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISTP.lsI32", DIS_MEM32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1148;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1149;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1150;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 4: case 5: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 6 & 0x3) 
                                      /* mod at 8 */ == 3) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1790 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FNCLEX");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 6 & 0x3) 
                                      /* mod at 8 */ == 3) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1892 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FINIT");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem80 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1916 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FLD80", DIS_MEM80);

                                      

                                      /* This is a bit tricky. The FPUSH logically comes between the read of STi and

                                      # the write to ST0. In particular, FLD ST0 is supposed to duplicate the TOS.

                                      # This problem only happens with this load instruction, so there is a work

                                      # around here that gives us the SSL a value of i that is one more than in

                                      # the instruction */

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1152;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1151;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1153; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem80 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1916 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLD80", DIS_MEM80);

                                

                                /* This is a bit tricky. The FPUSH logically comes between the read of STi and

                                # the write to ST0. In particular, FLD ST0 is supposed to duplicate the TOS.

                                # This problem only happens with this load instruction, so there is a work

                                # around here that gives us the SSL a value of i that is one more than in

                                # the instruction */

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1151;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1152;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1153;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              MATCH_name = "FUCOMI.ST.STi"; 
                              { 
                                char *name = MATCH_name;
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2098 "decoder.m"
                                

                                		stmts = instantiate(pc, name, DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        if ((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */ == 3) { 
                          MATCH_name = "FCOMI.ST.STi"; 
                          { 
                            char *name = MATCH_name;
                            unsigned idx = (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                            nextPC = 2 + MATCH_p; 
                            
#line 1826 "decoder.m"
                            

                            		stmts = instantiate(pc, name, DIS_IDX);

                            

                            
                            
                            
                          }
                          
                        } /*opt-block*/
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem80 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2023 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTP80", DIS_MEM80);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1155;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1154;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1156; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem80 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2023 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTP80", DIS_MEM80);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1154;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1155;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1156;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1763 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FADD.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1158;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1157;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1159; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1763 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FADD.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1157;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1158;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1159;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1769 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FADD.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1957 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FMUL.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1161;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1160;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1162; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1957 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FMUL.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1160;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1161;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1162;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1963 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FMUL.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1796 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FCOM.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1164;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1163;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1165; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1796 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOM.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1163;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1164;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1165;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1808 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FCOMP.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1167;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1166;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1168; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1808 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOMP.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1166;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1167;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1168;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2047 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSUB.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1170;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1169;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1171; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2047 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUB.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1169;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1170;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1171;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2074 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBR.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2068 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSUBR.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1173;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1172;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1174; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2068 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBR.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1172;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1173;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1174;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2053 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUB.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1841 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FDIV.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1176;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1175;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1177; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1841 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIV.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1175;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1176;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1177;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1868 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVR.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1862 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FDIVR.R64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1179;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1178;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1180; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1862 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVR.R64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1178;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1179;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1180;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1847 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIV.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1913 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FLD.lsR64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1182;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1181;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1183; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1913 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FLD.lsR64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1181;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1182;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1183;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1880 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FFREE", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        goto MATCH_label_c64; break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2014 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FST.lsR64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1185;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1184;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1186; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2014 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FST.lsR64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1184;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1185;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1186;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2026 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FST.st.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2020 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTP.lsR64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1188;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1187;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1189; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2020 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTP.lsR64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1187;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1188;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1189;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2029 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTP.st.STi", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem = 1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1993 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FRSTOR", DIS_MEM);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1191;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1190;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1192; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1993 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FRSTOR", DIS_MEM);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1190;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1191;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1192;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2089 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FUCOM", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        if ((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */ == 3) { 
                          unsigned idx = (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 2092 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "FUCOMP", DIS_IDX);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem = 1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1996 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FNSAVE", DIS_MEM);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1194;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1193;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1195; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1996 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FNSAVE", DIS_MEM);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1193;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1194;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1195;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2038 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FSTSW", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1197;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1196;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1198; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2038 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTSW", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1196;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1197;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1198;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1778 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIADD.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1200;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1199;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1201; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1778 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIADD.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1199;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1200;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1201;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1772 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FADDP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1972 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIMUL.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1203;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1202;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1204; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1972 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIMUL.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1202;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1203;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1204;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1966 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FMULP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1802 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FICOM.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1206;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1205;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1207; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1802 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FICOM.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1205;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1206;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1207;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1820 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FICOMP.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1209;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1208;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1210; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1820 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FICOMP.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1208;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1209;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1210;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1823 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FCOMPP");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2059 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISUB.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1212;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1211;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1213; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2059 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISUB.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1211;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1212;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1213;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2083 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBRP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 2080 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISUBR.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1215;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1214;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1216; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 2080 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISUBR.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1214;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1215;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1216;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2062 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSUBP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1856 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIDIV.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1218;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1217;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1219; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1856 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIDIV.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1217;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1218;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1219;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1877 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVRP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1874 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIDIVR.I16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1221;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1220;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1222; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1874 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIDIVR.I16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1220;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1221;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1222;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              { 
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1850 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FDIVP.STi.ST", DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1883 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FILD.lsI16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1224;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1223;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1225; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1883 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FILD.lsI16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1223;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1224;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1225;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        goto MATCH_label_c64; break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1895 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FIST.lsI16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1227;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1226;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1228; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1895 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FIST.lsI16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1226;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1227;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1228;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem16 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1901 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISTP.lsI16", DIS_MEM16);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1230;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1229;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1231; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem16 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1901 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISTP.lsI16", DIS_MEM16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1229;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1230;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1231;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem80 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1781 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FBLD", DIS_MEM80);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1233;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1232;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1234; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem80 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1781 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FBLD", DIS_MEM80);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1232;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1233;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1234;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 0) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 2041 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FSTSW.AX");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1889 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FILD.lsI64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1236;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1235;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1237; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1889 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FILD.lsI64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1235;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1236;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1237;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              MATCH_name = "FUCOMIP.ST.STi"; 
                              { 
                                char *name = MATCH_name;
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 2101 "decoder.m"
                                

                                		stmts = instantiate(pc, name, DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem80 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1784 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FBSTP", DIS_MEM80);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1239;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1238;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1240; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem80 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1784 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FBSTP", DIS_MEM80);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1238;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1239;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1240;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              MATCH_name = "FCOMIP.ST.STi"; 
                              { 
                                char *name = MATCH_name;
                                unsigned idx = 
                                  (MATCH_w_8_8 & 0x7) /* r_m at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1829 "decoder.m"
                                

                                		stmts = instantiate(pc, name, DIS_IDX);

                                

                                
                                
                                
                              }
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    { 
                                      unsigned Mem64 = 
                                        1 + addressToPC(MATCH_p);
                                      nextPC = 2 + MATCH_p; 
                                      
#line 1907 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 "FISTP64", DIS_MEM64);

                                      

                                      
                                      
                                      
                                    }
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1242;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1241;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1243; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Mem64 = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1907 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "FISTP64", DIS_MEM64);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1241;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1242;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1243;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c64; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 14: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      5 + MATCH_w_32_8 /* i32 at 8 */ + addressToPC(MATCH_p);
                    nextPC = 5 + MATCH_p; 
                    
#line 1283 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "CALL.Jvod", dis_Num(relocd));

                    		// Fix the last assignment, which is now %pc := %pc + (K + hostPC)

                    		Assign* last = (Assign*)stmts->back();

                    		Const* reloc = (Const*)((Binary*)last->getRight())->getSubExp2();

                    		assert(reloc->isIntConst());

                    		// Subtract off the host pc

                    		reloc->setInt(reloc->getInt() - hostPC);

                    		ADDRESS nativeDest = relocd-delta;

                    		

                    		if (nativeDest == pc+5) {

                    			// This is a call $+5

                    			// Use the standard semantics, except for the last statement

                    			// (just updates %pc)

                    			stmts->pop_back();

                    			// And don't make it a call statement

                    		} else {

                    			CallStatement* call = new CallStatement;

                    			// Set the destination

                    			call->setDest(nativeDest);

                    			stmts->push_back(call);

                    			Proc* destProc = prog->setNewProc(nativeDest);

                    			if (destProc == (Proc*)-1) destProc = NULL;		// In case a deleted Proc

                    			call->setDestProc(destProc);

                    		}

                    		result.rtl = new RTL(pc, stmts);

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  MATCH_name = 
                    MATCH_name_col_59[(MATCH_w_8_0 & 0x7) /* col at 0 */]; 
                  { 
                    char *name = MATCH_name;
                    unsigned relocd = 
                      5 + MATCH_w_32_8 /* i32 at 8 */ + addressToPC(MATCH_p);
                    nextPC = 5 + MATCH_p; 
                    
#line 148 "decoder.m"
                    

                    		unused((int) name);

                    		unconditionalJump(name, 5, relocd, delta, pc, stmts, result);

                    
                    
                    
                  }
                  
                  break;
                case 2: case 4: case 5: case 6: case 7: 
                  goto MATCH_label_c64; break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  MATCH_name = 
                    MATCH_name_col_59[(MATCH_w_8_0 & 0x7) /* col at 0 */]; 
                  { 
                    char *name = MATCH_name;
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 154 "decoder.m"
                    

                    		unused((int) name);

                    		unconditionalJump(name, 2, relocd, delta, pc, stmts, result);

                    

                    	/*

                    	 * Conditional branches, 8 bit offset: 7X XX

                    	 */

                    
                    
                    
                  }
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 15: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1268 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CLC");

                  

                  
                  
                  
                  
                  break;
                case 1: 
                  nextPC = 1 + MATCH_p; 
                  
#line 423 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "STC");

                  

                  
                  
                  
                  
                  break;
                case 2: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1262 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CLI");

                  

                  
                  
                  
                  
                  break;
                case 3: 
                  nextPC = 1 + MATCH_p; 
                  
#line 417 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "STI");

                  

                  
                  
                  
                  
                  break;
                case 4: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1265 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CLD");

                  

                  
                  
                  
                  
                  break;
                case 5: 
                  nextPC = 1 + MATCH_p; 
                  
#line 420 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "STD");

                  

                  
                  
                  
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1244; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1246;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1245;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1247; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1133 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "INC.Eb", DIS_EADDR8);

                                

                                //	  | IN.eAX.DXod() =>

                                //		  stmts = instantiate(pc,  "IN.eAX.DXod");

                                

                                //	  | IN.eAX.DXow() =>

                                //		  stmts = instantiate(pc,  "IN.eAX.DXow");

                                

                                //	  | IN.AL.DX() =>

                                //		  stmts = instantiate(pc,  "IN.AL.DX");

                                

                                //	  | IN.eAX.Ibod(i8) =>

                                //		  stmts = instantiate(pc,  "IN.eAX.Ibod", DIS_I8);

                                

                                //	  | IN.eAX.Ibow(i8) =>

                                //		  stmts = instantiate(pc,  "IN.eAX.Ibow", DIS_I8);

                                

                                //	  | IN.AL.Ib(i8) =>

                                //		  stmts = instantiate(pc,  "IN.AL.Ib", DIS_I8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1245;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1246;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1247;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1244; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1248; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1250;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1249;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1251; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1217 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "DEC.Eb", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1249;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1250;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1251;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1248; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: case 3: case 4: case 5: case 6: case 7: 
                        goto MATCH_label_c64; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1252; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1254;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1253;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1255; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1127 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "INC.Evod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1253;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1254;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1255;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1252; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1256; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1258;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1257;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1259; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1211 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "DEC.Evod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1257;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1258;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1259;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1256; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1260; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1262;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1261;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1263; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 115 "decoder.m"
                                

                                		/*

                                		 * Register call

                                		 */

                                		// Mike: there should probably be a HLNwayCall class for this!

                                		stmts = instantiate(pc,	 "CALL.Evod", DIS_EADDR32);

                                		CallStatement* newCall = new CallStatement;

                                		// Record the fact that this is a computed call

                                		newCall->setIsComputed();

                                		// Set the destination expression

                                		newCall->setDest(DIS_EADDR32);

                                		result.rtl = new RTL(pc, stmts);

                                		result.rtl->appendStmt(newCall);

                                		// Only one instruction, so size of result is size of this decode

                                		//result.numBytes = nextPC - hostPC;

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1261;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1262;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1263;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1260; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: case 5: case 7: 
                        goto MATCH_label_c64; break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1264; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1266;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1265;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1267; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 131 "decoder.m"
                                

                                		/*

                                		 * Register jump

                                		 */

                                		CaseStatement* newJump = new CaseStatement;

                                		// Record the fact that this is a computed call

                                		newJump->setIsComputed();

                                		// Set the destination expression

                                		newJump->setDest(DIS_EADDR32);

                                		result.rtl = new RTL(pc, stmts);

                                		result.rtl->appendStmt(newJump);

                                		// Only one instruction, so size of result is size of this decode

                                		//result.numBytes = nextPC - hostPC;

                                	

                                	/*

                                	 * Unconditional branches

                                	 */

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1265;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1266;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1267;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1264; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c1268; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c1270;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c1269;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c1271; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 838 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "PUSH.Evod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c1269;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c1270;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1271;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c1268; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          default: assert(0);
        } /* (MATCH_w_8_0 >> 4 & 0xf) -- row at 0 --*/  
    else 
      
        switch((MATCH_w_8_0 >> 4 & 0xf) /* row at 0 */) {
          case 0: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c0; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c2;  /*opt-block+*/
                              else 
                                goto MATCH_label_c1;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c3; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1546 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADDmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c1;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c2;  /*opt-block+*/
                        else 
                          goto MATCH_label_c3;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c0; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c4; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c6;  /*opt-block+*/
                              else 
                                goto MATCH_label_c5;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c7; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1519 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADDmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c5;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c6;  /*opt-block+*/
                        else 
                          goto MATCH_label_c7;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c4; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c8; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c10;  /*opt-block+*/
                              else 
                                goto MATCH_label_c9;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c11; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1474 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADDrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c9;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c10;  /*opt-block+*/
                        else 
                          goto MATCH_label_c11;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c8; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c12; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c14;  /*opt-block+*/
                              else 
                                goto MATCH_label_c13;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c15; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1447 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADDrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c13;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c14;  /*opt-block+*/
                        else 
                          goto MATCH_label_c15;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c12; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1741 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ADDiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1693 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ADDiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 808 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "PUSH.ES");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 868 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "POP.ES");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 1: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c16; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c18;  /*opt-block+*/
                              else 
                                goto MATCH_label_c17;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c19; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1540 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADCmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c17;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c18;  /*opt-block+*/
                        else 
                          goto MATCH_label_c19;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c16; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c20; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c22;  /*opt-block+*/
                              else 
                                goto MATCH_label_c21;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c23; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1507 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADCmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c21;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c22;  /*opt-block+*/
                        else 
                          goto MATCH_label_c23;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c20; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c24; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c26;  /*opt-block+*/
                              else 
                                goto MATCH_label_c25;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c27; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1468 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADCrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c25;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c26;  /*opt-block+*/
                        else 
                          goto MATCH_label_c27;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c24; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c28; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c30;  /*opt-block+*/
                              else 
                                goto MATCH_label_c29;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c31; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1435 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ADCrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c29;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c30;  /*opt-block+*/
                        else 
                          goto MATCH_label_c31;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c28; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1735 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ADCiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1687 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ADCiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 814 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "PUSH.SS");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 865 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "POP.SS");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 2: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c32; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c34;  /*opt-block+*/
                              else 
                                goto MATCH_label_c33;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c35; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1534 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ANDmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c33;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c34;  /*opt-block+*/
                        else 
                          goto MATCH_label_c35;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c32; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c36; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c38;  /*opt-block+*/
                              else 
                                goto MATCH_label_c37;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c39; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1495 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ANDmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c37;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c38;  /*opt-block+*/
                        else 
                          goto MATCH_label_c39;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c36; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c40; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c42;  /*opt-block+*/
                              else 
                                goto MATCH_label_c41;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c43; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1462 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ANDrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c41;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c42;  /*opt-block+*/
                        else 
                          goto MATCH_label_c43;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c40; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c44; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c46;  /*opt-block+*/
                              else 
                                goto MATCH_label_c45;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c47; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1423 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "ANDrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c45;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c46;  /*opt-block+*/
                        else 
                          goto MATCH_label_c47;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c44; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1729 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ANDiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1681 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "ANDiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 336 "decoder.m"
                  		 // For now, treat seg.es as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1223 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "DAA");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 3: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c48; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c50;  /*opt-block+*/
                              else 
                                goto MATCH_label_c49;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c51; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1528 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XORmrb", DIS_EADDR8, DIS_R8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c49;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c50;  /*opt-block+*/
                        else 
                          goto MATCH_label_c51;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c48; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c52; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c54;  /*opt-block+*/
                              else 
                                goto MATCH_label_c53;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c55; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1483 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XORmrod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c53;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c54;  /*opt-block+*/
                        else 
                          goto MATCH_label_c55;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c52; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c56; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c58;  /*opt-block+*/
                              else 
                                goto MATCH_label_c57;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c59; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned r8 = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1456 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XORrmb", DIS_R8, DIS_EADDR8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c57;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c58;  /*opt-block+*/
                        else 
                          goto MATCH_label_c59;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c56; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c60; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c62;  /*opt-block+*/
                              else 
                                goto MATCH_label_c61;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c63; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1411 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XORrmod", DIS_REG32, DIS_EADDR32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c61;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c62;  /*opt-block+*/
                        else 
                          goto MATCH_label_c63;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c60; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    int /* [~128..127] */ i8 = 
                      sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
                    nextPC = 2 + MATCH_p; 
                    
#line 1723 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "XORiAL", DIS_I8);

                    

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned i32 = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1675 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "XORiEAX", DIS_I32);

                    

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 345 "decoder.m"
                  		 // For now, treat seg.ss as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  goto MATCH_label_c64; break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 4: 
            { 
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 1 + MATCH_p; 
              
#line 1121 "decoder.m"
              

              		stmts = instantiate(pc,	 "INCod", DIS_R32);

              

              
              
              
            }
            
            break;
          case 5: 
            { 
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 1 + MATCH_p; 
              
#line 832 "decoder.m"
              

              		stmts = instantiate(pc,	 "PUSHod", DIS_R32);

              

              
              
              
            }
            
            break;
          case 6: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: case 1: case 2: case 3: case 7: 
                  goto MATCH_label_c64; break;
                case 4: 
                  nextPC = 1 + MATCH_p; 
                  
#line 339 "decoder.m"
                  		 // For now, treat seg.fs as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 5: 
                  nextPC = 1 + MATCH_p; 
                  
#line 342 "decoder.m"
                  		 // For now, treat seg.gs as a 1 byte NOP

                  		stmts = instantiate(pc,	 "NOP");

                  

                  
                  
                  
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 4 & 0xf) /* row at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c69; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c71;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c70;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c72; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1516 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ORmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c70;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c71;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c72;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c69; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c65; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c67;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c66;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c68; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1522 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ADDmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c66;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c67;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c68;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c65; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c77; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c79;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c78;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c80; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1444 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ORrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c78;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c79;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c80;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c77; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c73; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c75;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c74;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c76; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1450 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ADDrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c74;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c75;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c76;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c73; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1714 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ORiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1717 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADDiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 4 & 0xf) 
                                        /* row at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* col at 16 */) {
                                          case 0: case 1: case 4: case 5: 
                                          case 6: case 7: 
                                            goto MATCH_label_c64; break;
                                          case 2: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c81; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c83;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c82;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c84; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1085 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "LAR.ow", DIS_REG16, DIS_EADDR16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c82;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c83;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c84;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c81; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 3: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c85; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c87;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c86;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c88; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1049 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "LSLow", DIS_REG16, DIS_EADDR16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c86;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c87;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c88;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c85; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- col at 16 --*/ 
                                      break;
                                    case 1: case 2: case 3: case 4: case 5: 
                                    case 6: case 7: case 9: case 13: case 14: 
                                    case 15: 
                                      goto MATCH_label_c64; break;
                                    case 8: 
                                      if ((MATCH_w_8_16 >> 3 & 0x1) 
                                              /* page at 16 */ == 1) 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* col at 16 */) {
                                            case 0: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 210 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Sow", 4, relocd, BRANCH_JMI)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 1: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 208 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NSow", 4, relocd, BRANCH_JPOS)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 2: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 206 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Pow", 4, relocd, BRANCH_JPAR)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 3: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 204 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NPow", 4, relocd, (BRANCH_TYPE)0)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 4: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 202 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Low", 4, relocd, BRANCH_JSL)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 5: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 200 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NLow", 4, relocd, BRANCH_JSGE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 6: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 198 "decoder.m"
                                                

                                                		COND_JUMP("Jv.LEow", 4, relocd, BRANCH_JSLE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 7: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 196 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NLEow", 4, relocd, BRANCH_JSG)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- col at 16 --*/  
                                      else 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* col at 16 */) {
                                            case 0: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 227 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Oow", 4, relocd, (BRANCH_TYPE)0)

                                                

                                                	/*

                                                	 * Conditional branches, 32 bit offset: 0F 8X XX XX XX XX

                                                	 */

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 1: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 224 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NOow", 4, relocd, (BRANCH_TYPE)0)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 2: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 222 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Bow", 4, relocd, BRANCH_JUL)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 3: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 220 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NBow", 4, relocd, BRANCH_JUGE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 4: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 218 "decoder.m"
                                                

                                                		COND_JUMP("Jv.Zow", 4, relocd, BRANCH_JE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 5: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 216 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NZow", 4, relocd, BRANCH_JNE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 6: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 214 "decoder.m"
                                                

                                                		COND_JUMP("Jv.BEow", 4, relocd, BRANCH_JULE)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            case 7: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              { 
                                                unsigned relocd = 
                                                  5 + 
                                                  sign_extend((MATCH_w_16_24 & 0xffff) 
                                                                    /* i16 at 24 */, 
                                                              16) + 
                                                  addressToPC(MATCH_p);
                                                nextPC = 5 + MATCH_p; 
                                                
#line 212 "decoder.m"
                                                

                                                		COND_JUMP("Jv.NBEow", 4, relocd, BRANCH_JUG)

                                                
                                                
                                                
                                              }
                                              
                                              break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- col at 16 --*/  
                                      break;
                                    case 10: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* col at 16 */) {
                                          case 0: case 1: case 2: case 6: 
                                            goto MATCH_label_c64; break;
                                          case 3: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c93; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c95;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c94;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c96; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1319 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "BTSow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c94;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c95;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c96;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c93; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c89; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c91;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c90;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c92; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1355 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "BTow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c90;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c91;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c92;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c89; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 4: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c101; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c103; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c102; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 5: 
                                                          MATCH_w_8_64 = 
                                                            getByte(8 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c104; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      MATCH_w_8_48 = 
                                                        getByte(6 + MATCH_p); 
                                                      { 
                                                        unsigned Eaddr = 
                                                          3 + 
                                                          addressToPC(MATCH_p);
                                                        unsigned count = 
                                                          (MATCH_w_8_48 & 0xff) 
                                                                /* i8 at 48 */;
                                                        unsigned reg = 
                                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                                /* reg_opcode at 24 */;
                                                        nextPC = 7 + MATCH_p; 
                                                        
#line 453 "decoder.m"
                                                        

                                                        		stmts = instantiate(pc,	 "SHRD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

                                                        

                                                        
                                                        
                                                        
                                                      }
                                                      
                                                    } /*opt-block*/
                                                    else { 
                                                      MATCH_w_8_40 = 
                                                        getByte(5 + MATCH_p); 
                                                      goto MATCH_label_c102; 
                                                      
                                                    } /*opt-block*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      MATCH_w_8_72 = 
                                                        getByte(9 + MATCH_p); 
                                                      goto MATCH_label_c103; 
                                                      
                                                    } /*opt-block*/
                                                    else { 
                                                      MATCH_w_8_64 = 
                                                        getByte(8 + MATCH_p); 
                                                      goto MATCH_label_c104; 
                                                      
                                                    } /*opt-block*/
                                                    
                                                    break;
                                                  case 3: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c101; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c97; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c99; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c98; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 5: 
                                                          MATCH_w_8_64 = 
                                                            getByte(8 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c100; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      MATCH_w_8_48 = 
                                                        getByte(6 + MATCH_p); 
                                                      { 
                                                        unsigned Eaddr = 
                                                          3 + 
                                                          addressToPC(MATCH_p);
                                                        unsigned count = 
                                                          (MATCH_w_8_48 & 0xff) 
                                                                /* i8 at 48 */;
                                                        unsigned reg = 
                                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                                /* reg_opcode at 24 */;
                                                        nextPC = 7 + MATCH_p; 
                                                        
#line 447 "decoder.m"
                                                        

                                                        		stmts = instantiate(pc,	 "SHLD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

                                                        

                                                        
                                                        
                                                        
                                                      }
                                                      
                                                    } /*opt-block*/
                                                    else { 
                                                      MATCH_w_8_40 = 
                                                        getByte(5 + MATCH_p); 
                                                      goto MATCH_label_c98; 
                                                      
                                                    } /*opt-block*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      MATCH_w_8_72 = 
                                                        getByte(9 + MATCH_p); 
                                                      goto MATCH_label_c99; 
                                                      
                                                    } /*opt-block*/
                                                    else { 
                                                      MATCH_w_8_64 = 
                                                        getByte(8 + MATCH_p); 
                                                      goto MATCH_label_c100; 
                                                      
                                                    } /*opt-block*/
                                                    
                                                    break;
                                                  case 3: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c97; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 5: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c109; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c111;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c110;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c112; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 441 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "SHRD.CLow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c110;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c111;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c112;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c109; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c105; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c107;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c106;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c108; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 435 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "SHLD.CLow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c106;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c107;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c108;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c105; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 7: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c113; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c115;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c114;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c116; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1169 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "IMULrmow", DIS_REG16, DIS_EADDR16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c114;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c115;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c116;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c113; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- col at 16 --*/ 
                                      break;
                                    case 11: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* col at 16 */) {
                                          case 0: case 7: 
                                            goto MATCH_label_c64; break;
                                          case 1: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c117; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c119;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c118;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c120; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1241 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c118;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c119;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c120;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c117; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 2: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* reg_opcode at 24 */) {
                                                  case 0: case 1: case 2: 
                                                  case 3: 
                                                    goto MATCH_label_c64; 
                                                    
                                                    break;
                                                  case 4: 
                                                    
                                                      switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                            /* mod at 24 */) {
                                                        case 0: 
                                                          
                                                            switch((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */) {
                                                              case 0: case 1: 
                                                              case 2: case 3: 
                                                              case 6: case 7: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c121; 
                                                                
                                                                break;
                                                              case 4: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                if ((MATCH_w_8_32 & 0x7) 
                                                                        /* base at 32 */ == 5 && 
                                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ && 
                                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ < 8)) { 
                                                                  MATCH_w_8_72 = 
                                                                    getByte(9 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c123; 
                                                                  
                                                                } /*opt-block*/
                                                                else { 
                                                                  MATCH_w_8_40 = 
                                                                    getByte(5 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c122; 
                                                                  
                                                                } /*opt-block*/
                                                                
                                                                break;
                                                              case 5: 
                                                                MATCH_w_8_64 = 
                                                                  getByte(8 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c124; 
                                                                
                                                                break;
                                                              default: assert(0);
                                                            } /* (MATCH_w_8_24 & 0x7) 
                                                                  -- r_m at 24 --*/ 
                                                          break;
                                                        case 1: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_48 = 
                                                              getByte(6 + 
                                                                    MATCH_p); 
                                                            { 
                                                              unsigned Eaddr = 
                                                                3 + 
                                                                addressToPC(MATCH_p);
                                                              int /* [~128..127] */ i8 = 
                                                                sign_extend((MATCH_w_8_48 & 0xff) 
                                                                                  /* i8 at 48 */, 
                                                                            8);
                                                              nextPC = 7 + 
                                                              MATCH_p; 
                                                              
#line 1349 "decoder.m"
                                                              

                                                              		stmts = instantiate(pc,	 "BTiow", DIS_EADDR16, DIS_I8);

                                                              

                                                              
                                                              
                                                              
                                                            }
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c122; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 2: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c123; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_64 = 
                                                              getByte(8 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c124; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 3: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c121; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                            -- mod at 24 --*/ 
                                                    break;
                                                  case 5: 
                                                    
                                                      switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                            /* mod at 24 */) {
                                                        case 0: 
                                                          
                                                            switch((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */) {
                                                              case 0: case 1: 
                                                              case 2: case 3: 
                                                              case 6: case 7: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c125; 
                                                                
                                                                break;
                                                              case 4: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                if ((MATCH_w_8_32 & 0x7) 
                                                                        /* base at 32 */ == 5 && 
                                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ && 
                                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ < 8)) { 
                                                                  MATCH_w_8_72 = 
                                                                    getByte(9 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c127; 
                                                                  
                                                                } /*opt-block*/
                                                                else { 
                                                                  MATCH_w_8_40 = 
                                                                    getByte(5 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c126; 
                                                                  
                                                                } /*opt-block*/
                                                                
                                                                break;
                                                              case 5: 
                                                                MATCH_w_8_64 = 
                                                                  getByte(8 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c128; 
                                                                
                                                                break;
                                                              default: assert(0);
                                                            } /* (MATCH_w_8_24 & 0x7) 
                                                                  -- r_m at 24 --*/ 
                                                          break;
                                                        case 1: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_48 = 
                                                              getByte(6 + 
                                                                    MATCH_p); 
                                                            { 
                                                              unsigned Eaddr = 
                                                                3 + 
                                                                addressToPC(MATCH_p);
                                                              int /* [~128..127] */ i8 = 
                                                                sign_extend((MATCH_w_8_48 & 0xff) 
                                                                                  /* i8 at 48 */, 
                                                                            8);
                                                              nextPC = 7 + 
                                                              MATCH_p; 
                                                              
#line 1313 "decoder.m"
                                                              

                                                              		stmts = instantiate(pc,	 "BTSiow", DIS_I8, DIS_EADDR16);

                                                              

                                                              
                                                              
                                                              
                                                            }
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c126; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 2: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c127; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_64 = 
                                                              getByte(8 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c128; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 3: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c125; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                            -- mod at 24 --*/ 
                                                    break;
                                                  case 6: 
                                                    
                                                      switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                            /* mod at 24 */) {
                                                        case 0: 
                                                          
                                                            switch((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */) {
                                                              case 0: case 1: 
                                                              case 2: case 3: 
                                                              case 6: case 7: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c129; 
                                                                
                                                                break;
                                                              case 4: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                if ((MATCH_w_8_32 & 0x7) 
                                                                        /* base at 32 */ == 5 && 
                                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ && 
                                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ < 8)) { 
                                                                  MATCH_w_8_72 = 
                                                                    getByte(9 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c131; 
                                                                  
                                                                } /*opt-block*/
                                                                else { 
                                                                  MATCH_w_8_40 = 
                                                                    getByte(5 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c130; 
                                                                  
                                                                } /*opt-block*/
                                                                
                                                                break;
                                                              case 5: 
                                                                MATCH_w_8_64 = 
                                                                  getByte(8 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c132; 
                                                                
                                                                break;
                                                              default: assert(0);
                                                            } /* (MATCH_w_8_24 & 0x7) 
                                                                  -- r_m at 24 --*/ 
                                                          break;
                                                        case 1: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_48 = 
                                                              getByte(6 + 
                                                                    MATCH_p); 
                                                            { 
                                                              unsigned Eaddr = 
                                                                3 + 
                                                                addressToPC(MATCH_p);
                                                              int /* [~128..127] */ i8 = 
                                                                sign_extend((MATCH_w_8_48 & 0xff) 
                                                                                  /* i8 at 48 */, 
                                                                            8);
                                                              nextPC = 7 + 
                                                              MATCH_p; 
                                                              
#line 1325 "decoder.m"
                                                              

                                                              		stmts = instantiate(pc,	 "BTRiow", DIS_EADDR16, DIS_I8);

                                                              

                                                              
                                                              
                                                              
                                                            }
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c130; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 2: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c131; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_64 = 
                                                              getByte(8 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c132; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 3: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c129; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                            -- mod at 24 --*/ 
                                                    break;
                                                  case 7: 
                                                    
                                                      switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                            /* mod at 24 */) {
                                                        case 0: 
                                                          
                                                            switch((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */) {
                                                              case 0: case 1: 
                                                              case 2: case 3: 
                                                              case 6: case 7: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c133; 
                                                                
                                                                break;
                                                              case 4: 
                                                                MATCH_w_8_32 = 
                                                                  getByte(4 + 
                                                                        MATCH_p); 
                                                                if ((MATCH_w_8_32 & 0x7) 
                                                                        /* base at 32 */ == 5 && 
                                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ && 
                                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                                        /* index at 32 */ < 8)) { 
                                                                  MATCH_w_8_72 = 
                                                                    getByte(9 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c135; 
                                                                  
                                                                } /*opt-block*/
                                                                else { 
                                                                  MATCH_w_8_40 = 
                                                                    getByte(5 + 
                                                                          MATCH_p); 
                                                                  goto MATCH_label_c134; 
                                                                  
                                                                } /*opt-block*/
                                                                
                                                                break;
                                                              case 5: 
                                                                MATCH_w_8_64 = 
                                                                  getByte(8 + 
                                                                        MATCH_p); 
                                                                goto MATCH_label_c136; 
                                                                
                                                                break;
                                                              default: assert(0);
                                                            } /* (MATCH_w_8_24 & 0x7) 
                                                                  -- r_m at 24 --*/ 
                                                          break;
                                                        case 1: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_48 = 
                                                              getByte(6 + 
                                                                    MATCH_p); 
                                                            { 
                                                              unsigned Eaddr = 
                                                                3 + 
                                                                addressToPC(MATCH_p);
                                                              int /* [~128..127] */ i8 = 
                                                                sign_extend((MATCH_w_8_48 & 0xff) 
                                                                                  /* i8 at 48 */, 
                                                                            8);
                                                              nextPC = 7 + 
                                                              MATCH_p; 
                                                              
#line 1337 "decoder.m"
                                                              

                                                              		stmts = instantiate(pc,	 "BTCiow", DIS_EADDR16, DIS_I8);

                                                              

                                                              
                                                              
                                                              
                                                            }
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_40 = 
                                                              getByte(5 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c134; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 2: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_24 & 0x7) 
                                                                  /* r_m at 24 */ == 4 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) { 
                                                            MATCH_w_8_72 = 
                                                              getByte(9 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c135; 
                                                            
                                                          } /*opt-block*/
                                                          else { 
                                                            MATCH_w_8_64 = 
                                                              getByte(8 + 
                                                                    MATCH_p); 
                                                            goto MATCH_label_c136; 
                                                            
                                                          } /*opt-block*/
                                                          
                                                          break;
                                                        case 3: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          goto MATCH_label_c133; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                            -- mod at 24 --*/ 
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 3 & 0x7) 
                                                      -- reg_opcode at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            break;
                                          case 3: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c141; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c143;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c142;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c144; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1343 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "BTCow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c142;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c143;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c144;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c141; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c137; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c139;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c138;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c140; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1331 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "BTRow", DIS_EADDR16, DIS_REG16);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c138;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c139;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c140;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c137; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          case 4: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c145; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c147;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c146;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c148; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1377 "decoder.m"
                                                      

                                                      		//stmts = instantiate(pc,  "BSFow", DIS_REG16, DIS_EADDR16);

                                                      		genBSFR(pc, DIS_REG16, DIS_EADDR16, -1, 16, opPlus, nextPC-hostPC);

                                                      		return result;

                                                      

                                                      	// Not "user" instructions:

                                                      //	| BOUNDod(reg, Mem) =>

                                                      //		stmts = instantiate(pc,	 "BOUNDod", DIS_REG32, DIS_MEM);

                                                      

                                                      //	| BOUNDow(reg, Mem) =>

                                                      //		stmts = instantiate(pc,	 "BOUNDow", DIS_REG16, DIS_MEM);

                                                      

                                                      //	  | ARPL(Eaddr, reg ) =>

                                                      //		  unused(Eaddr); unused(reg);

                                                      //		  stmts = instantiate(pc,  "UNIMP");

                                                      

                                                      //	  | AAS() =>

                                                      //		  stmts = instantiate(pc,  "AAS");

                                                      

                                                      //	  | AAM() =>

                                                      //		  stmts = instantiate(pc,  "AAM");

                                                      

                                                      //	  | AAD() =>

                                                      //		  stmts = instantiate(pc,  "AAD");

                                                      

                                                      //	  | AAA() =>

                                                      //		  stmts = instantiate(pc,  "AAA");

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c146;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c147;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c148;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c145; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            break;
                                          case 5: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c149; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c151;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c150;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c152; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned reg = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 1367 "decoder.m"
                                                      

                                                      		//stmts = instantiate(pc,  "BSRow", DIS_REG16, DIS_EADDR16);

                                                      		genBSFR(pc, DIS_REG16, DIS_EADDR16, 16, 16, opMinus, nextPC-hostPC);

                                                      		return result;

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c150;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c151;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c152;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c149; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else 
                                              goto MATCH_label_c64;  /*opt-block+*/
                                            break;
                                          case 6: 
                                            if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                    /* page at 16 */ == 1) { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c157; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c159;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c158;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c160; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned r16 = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 952 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c158;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c159;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c160;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c157; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              
                                                switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                      /* mod at 24 */) {
                                                  case 0: 
                                                    
                                                      switch((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */) {
                                                        case 0: case 1: 
                                                        case 2: case 3: 
                                                        case 6: case 7: 
                                                          goto MATCH_label_c153; 
                                                          
                                                          break;
                                                        case 4: 
                                                          MATCH_w_8_32 = 
                                                            getByte(4 + 
                                                                  MATCH_p); 
                                                          if ((MATCH_w_8_32 & 0x7) 
                                                                  /* base at 32 */ == 5 && 
                                                            (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ && 
                                                            (MATCH_w_8_32 >> 3 & 0x7) 
                                                                  /* index at 32 */ < 8)) 
                                                            goto MATCH_label_c155;  /*opt-block+*/
                                                          else 
                                                            goto MATCH_label_c154;  /*opt-block+*/
                                                          
                                                          break;
                                                        case 5: 
                                                          goto MATCH_label_c156; 
                                                          
                                                          break;
                                                        default: assert(0);
                                                      } /* (MATCH_w_8_24 & 0x7) 
                                                            -- r_m at 24 --*/ 
                                                    break;
                                                  case 1: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) { 
                                                      unsigned Eaddr = 
                                                        3 + 
                                                        addressToPC(MATCH_p);
                                                      unsigned r16 = 
                                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                                              /* reg_opcode at 24 */;
                                                      nextPC = 6 + MATCH_p; 
                                                      
#line 943 "decoder.m"
                                                      

                                                      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

                                                      

                                                      
                                                      
                                                      
                                                    } /*opt-block*//*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c154;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 2: 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    if ((MATCH_w_8_24 & 0x7) 
                                                            /* r_m at 24 */ == 4 && 
                                                      (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ && 
                                                      (MATCH_w_8_32 >> 3 & 0x7) 
                                                            /* index at 32 */ < 8)) 
                                                      goto MATCH_label_c155;  /*opt-block+*/
                                                    else 
                                                      goto MATCH_label_c156;  /*opt-block+*/
                                                    
                                                    break;
                                                  case 3: 
                                                    goto MATCH_label_c153; 
                                                    
                                                    break;
                                                  default: assert(0);
                                                } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                      -- mod at 24 --*/ 
                                              
                                            } /*opt-block*/
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- col at 16 --*/ 
                                      break;
                                    case 12: 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* col at 16 */ == 1) 
                                        if ((MATCH_w_8_16 >> 3 & 0x1) 
                                                /* page at 16 */ == 1) 
                                          goto MATCH_label_c64;  /*opt-block+*/
                                        else { 
                                          MATCH_w_8_24 = 
                                            getByte(3 + MATCH_p); 
                                          
                                            switch((MATCH_w_8_24 >> 6 & 0x3) 
                                                  /* mod at 24 */) {
                                              case 0: 
                                                
                                                  switch((MATCH_w_8_24 & 0x7) 
                                                        /* r_m at 24 */) {
                                                    case 0: case 1: case 2: 
                                                    case 3: case 6: case 7: 
                                                      goto MATCH_label_c161; 
                                                      
                                                      break;
                                                    case 4: 
                                                      MATCH_w_8_32 = 
                                                        getByte(4 + MATCH_p); 
                                                      if ((MATCH_w_8_32 & 0x7) 
                                                              /* base at 32 */ == 5 && 
                                                        (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                              /* index at 32 */ && 
                                                        (MATCH_w_8_32 >> 3 & 0x7) 
                                                              /* index at 32 */ < 8)) 
                                                        goto MATCH_label_c163;  /*opt-block+*/
                                                      else 
                                                        goto MATCH_label_c162;  /*opt-block+*/
                                                      
                                                      break;
                                                    case 5: 
                                                      goto MATCH_label_c164; 
                                                      
                                                      break;
                                                    default: assert(0);
                                                  } /* (MATCH_w_8_24 & 0x7) 
                                                        -- r_m at 24 --*/ 
                                                break;
                                              case 1: 
                                                MATCH_w_8_32 = 
                                                  getByte(4 + MATCH_p); 
                                                if ((MATCH_w_8_24 & 0x7) 
                                                        /* r_m at 24 */ == 4 && 
                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                        /* index at 32 */ && 
                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                        /* index at 32 */ < 8)) { 
                                                  unsigned Eaddr = 
                                                    3 + addressToPC(MATCH_p);
                                                  unsigned reg = 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* reg_opcode at 24 */;
                                                  nextPC = 6 + MATCH_p; 
                                                  
#line 357 "decoder.m"
                                                  

                                                  		stmts = instantiate(pc,	 "XADD.Ev.Gvow", DIS_EADDR16, DIS_REG16);

                                                  

                                                  
                                                  
                                                  
                                                } /*opt-block*//*opt-block+*/
                                                else 
                                                  goto MATCH_label_c162;  /*opt-block+*/
                                                
                                                break;
                                              case 2: 
                                                MATCH_w_8_32 = 
                                                  getByte(4 + MATCH_p); 
                                                if ((MATCH_w_8_24 & 0x7) 
                                                        /* r_m at 24 */ == 4 && 
                                                  (0 <= (MATCH_w_8_32 >> 3 & 0x7) 
                                                        /* index at 32 */ && 
                                                  (MATCH_w_8_32 >> 3 & 0x7) 
                                                        /* index at 32 */ < 8)) 
                                                  goto MATCH_label_c163;  /*opt-block+*/
                                                else 
                                                  goto MATCH_label_c164;  /*opt-block+*/
                                                
                                                break;
                                              case 3: 
                                                goto MATCH_label_c161; break;
                                              default: assert(0);
                                            } /* (MATCH_w_8_24 >> 6 & 0x3) 
                                                  -- mod at 24 --*/ 
                                          
                                        } /*opt-block*/ 
                                      else 
                                        goto MATCH_label_c64;  /*opt-block+*/
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 4 & 0xf) 
                                        -- row at 16 --*/ 
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c169; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c171;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c170;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c172; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1504 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SBBmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c170;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c171;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c172;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c169; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c165; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c167;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c166;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c168; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1510 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ADCmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c166;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c167;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c168;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c165; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c177; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c179;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c178;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c180; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1432 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SBBrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c178;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c179;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c180;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c177; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c173; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c175;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c174;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c176; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1438 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ADCrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c174;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c175;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c176;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c173; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1708 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SBBiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1711 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADCiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c185; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c187;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c186;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c188; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1492 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SUBmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c186;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c187;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c188;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c185; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c181; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c183;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c182;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c184; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1498 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ANDmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c182;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c183;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c184;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c181; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c193; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c195;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c194;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c196; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1420 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "SUBrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c194;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c195;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c196;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c193; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c189; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c191;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c190;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c192; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1426 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "ANDrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c190;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c191;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c192;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c189; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1702 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SUBiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1705 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ANDiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c201; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c203;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c202;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c204; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1480 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "CMPmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c202;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c203;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c204;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c201; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c197; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c199;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c198;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c200; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1486 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "XORmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c198;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c199;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c200;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c197; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c209; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c211;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c210;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c212; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1408 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "CMPrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c210;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c211;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c212;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c209; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c205; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c207;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c206;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c208; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1414 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "XORrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c206;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c207;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c208;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c205; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1696 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "CMPiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 1699 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "XORiAX", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 4: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 1208 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "DECow", DIS_R32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 1124 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "INCow", DIS_R32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        
                        break;
                      case 5: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 874 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "POPow", DIS_R32);	  // Check!

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 835 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "PUSHow", DIS_R32);  // Check!

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        
                        break;
                      case 6: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  int /* [~32768..32767] */ i16 = 
                                    sign_extend((MATCH_w_16_16 & 0xffff) 
                                                      /* i16 at 16 */, 16);
                                  nextPC = 4 + MATCH_p; 
                                  
#line 823 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "PUSH.Ivow", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                                break;
                              case 1: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c213; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c215; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c214; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_w_16_56 = 
                                              getWord(7 + MATCH_p); 
                                            goto MATCH_label_c216; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_16_40 = getWord(5 + MATCH_p); 
                                        { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          int /* [~32768..32767] */ i16 = 
                                            sign_extend((MATCH_w_16_40 & 0xffff) 
                                                              /* i16 at 40 */, 
                                                        16);
                                          unsigned reg = 
                                            (MATCH_w_8_16 >> 3 & 0x7) 
                                                  /* reg_opcode at 16 */;
                                          nextPC = 7 + MATCH_p; 
                                          
#line 1157 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "IMUL.Ivw", DIS_REG16, DIS_EADDR16, DIS_I16);

                                          

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_16_32 = getWord(4 + MATCH_p); 
                                        goto MATCH_label_c214; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_16_64 = getWord(8 + MATCH_p); 
                                        goto MATCH_label_c215; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_16_56 = getWord(7 + MATCH_p); 
                                        goto MATCH_label_c216; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_w_16_24 = getWord(3 + MATCH_p); 
                                      goto MATCH_label_c213; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 2: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                { 
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_16 & 0xff) 
                                                      /* i8 at 16 */, 8);
                                  nextPC = 3 + MATCH_p; 
                                  
#line 829 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "PUSH.Ixow", DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                                break;
                              case 3: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c217; 
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c219; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c218; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 5: 
                                            MATCH_w_8_56 = 
                                              getByte(7 + MATCH_p); 
                                            goto MATCH_label_c220; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_40 = getByte(5 + MATCH_p); 
                                        { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          int /* [~128..127] */ i8 = 
                                            sign_extend((MATCH_w_8_40 & 0xff) 
                                                              /* i8 at 40 */, 
                                                        8);
                                          unsigned reg = 
                                            (MATCH_w_8_16 >> 3 & 0x7) 
                                                  /* reg_opcode at 16 */;
                                          nextPC = 6 + MATCH_p; 
                                          
#line 1163 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "IMUL.Ibow", DIS_REG16, DIS_EADDR16, DIS_I8);

                                          

                                          
                                          
                                          
                                        }
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                        goto MATCH_label_c218; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        MATCH_w_8_64 = getByte(8 + MATCH_p); 
                                        goto MATCH_label_c219; 
                                        
                                      } /*opt-block*/
                                      else { 
                                        MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                        goto MATCH_label_c220; 
                                        
                                      } /*opt-block*/
                                      
                                      break;
                                    case 3: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c217; 
                                      
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                                break;
                              case 4: case 5: case 6: case 7: 
                                goto MATCH_label_c64; break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        break;
                      case 7: 
                        goto MATCH_label_c64; break;
                      case 8: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c253; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c255;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c254;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c256; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1034 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVmrow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c254;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c255;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c256;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c253; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c221; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c223; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c222; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c224; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1645 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ADDiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c222; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c223; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c224; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c221; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c225; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c227; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c226; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c228; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1642 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ORiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c226; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c227; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c228; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c225; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c229; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c231; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c230; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c232; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1639 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ADCiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c230; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c231; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c232; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c229; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c233; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c235; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c234; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c236; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1636 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SBBiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c234; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c235; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c236; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c233; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c237; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c239; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c238; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c240; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1633 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ANDiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c238; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c239; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c240; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c237; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c241; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c243; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c242; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c244; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1630 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SUBiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c242; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c243; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c244; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c241; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c245; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c247; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c246; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c248; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1627 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "XORiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c246; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c247; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c248; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c245; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_16_24 = 
                                                    getWord(3 + MATCH_p); 
                                                  goto MATCH_label_c249; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_16_64 = 
                                                      getWord(8 + MATCH_p); 
                                                    goto MATCH_label_c251; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_16_32 = 
                                                      getWord(4 + MATCH_p); 
                                                    goto MATCH_label_c250; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_16_56 = 
                                                    getWord(7 + MATCH_p); 
                                                  goto MATCH_label_c252; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_40 = 
                                                getWord(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~32768..32767] */ i16 = 
                                                  sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                    /* i16 at 40 */, 
                                                              16);
                                                nextPC = 7 + MATCH_p; 
                                                
#line 1624 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "CMPiw", DIS_EADDR16, DIS_I16);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_32 = 
                                                getWord(4 + MATCH_p); 
                                              goto MATCH_label_c250; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_16_64 = 
                                                getWord(8 + MATCH_p); 
                                              goto MATCH_label_c251; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c252; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_16_24 = 
                                              getWord(3 + MATCH_p); 
                                            goto MATCH_label_c249; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c289; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c291;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c290;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c292; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1025 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "MOVrmow", DIS_REG16, DIS_EADDR16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c290;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c291;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c292;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c289; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c257; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c259; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c258; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c260; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1597 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ADDiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c258; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c259; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c260; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c257; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c261; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c263; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c262; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c264; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1591 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ORiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c262; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c263; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c264; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c261; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c265; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c267; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c266; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c268; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1585 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ADCiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c266; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c267; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c268; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c265; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c269; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c271; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c270; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c272; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1579 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SBBiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c270; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c271; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c272; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c269; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c273; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c275; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c274; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c276; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1573 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ANDiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c274; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c275; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c276; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c273; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c277; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c279; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c278; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c280; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1564 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SUBiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c278; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c279; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c280; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c277; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c281; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c283; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c282; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c284; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1558 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "XORiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c282; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c283; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c284; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c281; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c285; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c287; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c286; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c288; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 1552 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "CMPiowb", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c286; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c287; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c288; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c285; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            { 
                                              unsigned Mem = 
                                                2 + addressToPC(MATCH_p);
                                              unsigned reg = 
                                                (MATCH_w_8_16 >> 3 & 0x7) 
                                                      /* reg_opcode at 16 */;
                                              nextPC = 3 + MATCH_p; 
                                              
#line 1076 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "LEA.ow", DIS_REG16, DIS_MEM);

                                              

                                              
                                              
                                              
                                            }
                                            
                                            break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c298;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c297;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c299; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Mem = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 1076 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "LEA.ow", DIS_REG16, DIS_MEM);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c297;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c298;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c299;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c64; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c293; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c295;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c294;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c296; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 381 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "TEST.Ev.Gvow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c294;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c295;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c296;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c293; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */ == 0) 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c304; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c306;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c305;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c307; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 880 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "POP.Evow", DIS_EADDR16);

                                          

                                          //	  | OUTSvod() =>

                                          //		  stmts = instantiate(pc,  "OUTSvod");

                                          

                                          //	  | OUTSvow() =>

                                          //		  stmts = instantiate(pc,  "OUTSvow");

                                          

                                          //	  | OUTSB() =>

                                          //		  stmts = instantiate(pc,  "OUTSB");

                                          

                                          //	  | OUT.DX.eAXod() =>

                                          //		  stmts = instantiate(pc,  "OUT.DX.eAXod");

                                          

                                          //	  | OUT.DX.eAXow() =>

                                          //		  stmts = instantiate(pc,  "OUT.DX.eAXow");

                                          

                                          //	  | OUT.DX.AL() =>

                                          //		  stmts = instantiate(pc,  "OUT.DX.AL");

                                          

                                          //	  | OUT.Ib.eAXod(i8) =>

                                          //		  stmts = instantiate(pc,  "OUT.Ib.eAXod", DIS_I8);

                                          

                                          //	  | OUT.Ib.eAXow(i8) =>

                                          //		  stmts = instantiate(pc,  "OUT.Ib.eAXow", DIS_I8);

                                          

                                          //	  | OUT.Ib.AL(i8) =>

                                          //		  stmts = instantiate(pc,  "OUT.Ib.AL", DIS_I8);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c305;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c306;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c307;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c304; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/  
                                else 
                                  goto MATCH_label_c64;  /*opt-block+*/
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 6 & 0x3) 
                                        /* mod at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */) {
                                          case 0: case 1: case 2: case 3: 
                                          case 6: case 7: 
                                            goto MATCH_label_c300; break;
                                          case 4: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_24 & 0x7) 
                                                    /* base at 24 */ == 5 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c302;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c301;  /*opt-block+*/
                                            
                                            break;
                                          case 5: 
                                            goto MATCH_label_c303; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 & 0x7) 
                                              -- r_m at 16 --*/ 
                                      break;
                                    case 1: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) { 
                                        unsigned Eaddr = 
                                          2 + addressToPC(MATCH_p);
                                        unsigned reg = 
                                          (MATCH_w_8_16 >> 3 & 0x7) 
                                                /* reg_opcode at 16 */;
                                        nextPC = 5 + MATCH_p; 
                                        
#line 321 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 "XCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

                                        

                                        
                                        
                                        
                                      } /*opt-block*//*opt-block+*/
                                      else 
                                        goto MATCH_label_c301;  /*opt-block+*/
                                      
                                      break;
                                    case 2: 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      if ((MATCH_w_8_16 & 0x7) 
                                              /* r_m at 16 */ == 4 && 
                                        (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ && 
                                        (MATCH_w_8_24 >> 3 & 0x7) 
                                              /* index at 24 */ < 8)) 
                                        goto MATCH_label_c302;  /*opt-block+*/
                                      else 
                                        goto MATCH_label_c303;  /*opt-block+*/
                                      
                                      break;
                                    case 3: 
                                      goto MATCH_label_c300; break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                        -- mod at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 9: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                          
                            switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                              case 0: 
                                nextPC = 2 + MATCH_p; 
                                
#line 1274 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "CBW");

                                

                                	/* Decode the following as a NOP. We see these in startup code, and anywhere

                                		that calls the OS (as lcall 7, 0) */

                                
                                
                                
                                
                                break;
                              case 1: 
                                nextPC = 2 + MATCH_p; 
                                
#line 1229 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "CWD");

                                

                                
                                
                                
                                
                                break;
                              case 2: case 3: case 4: case 5: case 6: case 7: 
                                goto MATCH_label_c64; break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/  
                        else { 
                          unsigned r32 = (MATCH_w_8_8 & 0x7) /* r32 at 8 */;
                          nextPC = 2 + MATCH_p; 
                          
#line 351 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XCHGeAXow", DIS_R32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        break;
                      case 10: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 6: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_w_16_16 = getWord(2 + MATCH_p); 
                                { 
                                  unsigned i16 = 
                                    (MATCH_w_16_16 & 0xffff) /* i16 at 16 */;
                                  nextPC = 4 + MATCH_p; 
                                  
#line 399 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "TEST.eAX.Ivow", DIS_I16);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned off = 
                                    MATCH_w_32_16 /* i32 at 16 */;
                                  nextPC = 6 + MATCH_p; 
                                  
#line 1010 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "MOV.eAX.Ovow", DIS_OFF);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 411 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "STOSvow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                { 
                                  unsigned off = 
                                    MATCH_w_32_16 /* i32 at 16 */;
                                  nextPC = 6 + MATCH_p; 
                                  
#line 1001 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "MOV.Ov.eAXow", DIS_OFF);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1747 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "LODSvow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                nextPC = 2 + MATCH_p; 
                                
#line 958 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "MOVSvow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                nextPC = 2 + MATCH_p; 
                                
#line 466 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SCASvow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else { 
                                nextPC = 2 + MATCH_p; 
                                
#line 1250 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "CMPSvow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 11: 
                        if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) { 
                          MATCH_w_16_16 = getWord(2 + MATCH_p); 
                          { 
                            int /* [~32768..32767] */ i16 = 
                              sign_extend((MATCH_w_16_16 & 0xffff) 
                                                /* i16 at 16 */, 16);
                            unsigned r16 = (MATCH_w_8_8 & 0x7) /* r16 at 8 */;
                            nextPC = 4 + MATCH_p; 
                            
#line 992 "decoder.m"
                            

                            		stmts = instantiate(pc,	 "MOViw", DIS_R16, DIS_I16);  // Check!

                            

                            
                            
                            
                          }
                          
                        } /*opt-block*/
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        
                        break;
                      case 12: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 3: case 4: case 5: case 6: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c308; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c310; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c309; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c311; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 638 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "ROLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c309; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c310; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c311; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c308; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c312; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c314; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c313; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c315; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 632 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "RORB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c313; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c314; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c315; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c312; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c316; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c318; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c317; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c319; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 626 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "RCLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c317; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c318; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c319; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c316; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c320; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c322; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c321; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c323; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 620 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "RCRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c321; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c322; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c323; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c320; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c324; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c326; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c325; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c327; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 614 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c325; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c326; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c327; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c324; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c328; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c330; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c329; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c331; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 608 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SHRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c329; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c330; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c331; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c328; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      goto MATCH_label_c64; break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  goto MATCH_label_c332; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) { 
                                                    MATCH_w_8_64 = 
                                                      getByte(8 + MATCH_p); 
                                                    goto MATCH_label_c334; 
                                                    
                                                  } /*opt-block*/
                                                  else { 
                                                    MATCH_w_8_32 = 
                                                      getByte(4 + MATCH_p); 
                                                    goto MATCH_label_c333; 
                                                    
                                                  } /*opt-block*/
                                                  
                                                  break;
                                                case 5: 
                                                  MATCH_w_8_56 = 
                                                    getByte(7 + MATCH_p); 
                                                  goto MATCH_label_c335; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_40 = 
                                                getByte(5 + MATCH_p); 
                                              { 
                                                unsigned Eaddr = 
                                                  2 + addressToPC(MATCH_p);
                                                int /* [~128..127] */ i8 = 
                                                  sign_extend((MATCH_w_8_40 & 0xff) 
                                                                    /* i8 at 40 */, 
                                                              8);
                                                nextPC = 6 + MATCH_p; 
                                                
#line 602 "decoder.m"
                                                

                                                		stmts = instantiate(pc,	 "SARB.Ev.Ibow", DIS_EADDR16, DIS_I8);

                                                

                                                
                                                
                                                
                                              }
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_32 = 
                                                getByte(4 + MATCH_p); 
                                              goto MATCH_label_c333; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              MATCH_w_8_64 = 
                                                getByte(8 + MATCH_p); 
                                              goto MATCH_label_c334; 
                                              
                                            } /*opt-block*/
                                            else { 
                                              MATCH_w_8_56 = 
                                                getByte(7 + MATCH_p); 
                                              goto MATCH_label_c335; 
                                              
                                            } /*opt-block*/
                                            
                                            break;
                                          case 3: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            goto MATCH_label_c332; 
                                            
                                            break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */ == 0) 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              goto MATCH_label_c336; 
                                              
                                              break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) { 
                                                MATCH_w_16_64 = 
                                                  getWord(8 + MATCH_p); 
                                                goto MATCH_label_c338; 
                                                
                                              } /*opt-block*/
                                              else { 
                                                MATCH_w_16_32 = 
                                                  getWord(4 + MATCH_p); 
                                                goto MATCH_label_c337; 
                                                
                                              } /*opt-block*/
                                              
                                              break;
                                            case 5: 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c339; 
                                              
                                              break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          MATCH_w_16_40 = 
                                            getWord(5 + MATCH_p); 
                                          { 
                                            unsigned Eaddr = 
                                              2 + addressToPC(MATCH_p);
                                            int /* [~32768..32767] */ i16 = 
                                              sign_extend((MATCH_w_16_40 & 0xffff) 
                                                                /* i16 at 40 */, 
                                                          16);
                                            nextPC = 7 + MATCH_p; 
                                            
#line 983 "decoder.m"
                                            

                                            		stmts = instantiate(pc,	 "MOV.Ew.Ivow", DIS_EADDR16, DIS_I16);

                                            

                                            
                                            
                                            
                                          }
                                          
                                        } /*opt-block*/
                                        else { 
                                          MATCH_w_16_32 = 
                                            getWord(4 + MATCH_p); 
                                          goto MATCH_label_c337; 
                                          
                                        } /*opt-block*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          MATCH_w_16_64 = 
                                            getWord(8 + MATCH_p); 
                                          goto MATCH_label_c338; 
                                          
                                        } /*opt-block*/
                                        else { 
                                          MATCH_w_16_56 = 
                                            getWord(7 + MATCH_p); 
                                          goto MATCH_label_c339; 
                                          
                                        } /*opt-block*/
                                        
                                        break;
                                      case 3: 
                                        MATCH_w_16_24 = getWord(3 + MATCH_p); 
                                        goto MATCH_label_c336; 
                                        
                                        break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/  
                                else 
                                  goto MATCH_label_c64;  /*opt-block+*/
                                
                              } /*opt-block*/
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 13: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 2: case 4: case 5: case 6: case 7: 
                              goto MATCH_label_c64; break;
                            case 1: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c340; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c342;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c341;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c343; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 743 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "ROLB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c341;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c342;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c343;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c340; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c344; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c346;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c345;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c347; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 731 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "ORB.Ev.1owR", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c345;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c346;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c347;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c344; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c348; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c350;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c349;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c351; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 719 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "RCLB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c349;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c350;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c351;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c348; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c352; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c354;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c353;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c355; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 707 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "RCRB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c353;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c354;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c355;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c352; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c356; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c358;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c357;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c359; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 695 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SHLSALB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c357;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c358;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c359;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c356; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c360; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c362;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c361;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c363; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 683 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SHRB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c361;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c362;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c363;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c360; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      goto MATCH_label_c64; break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c364; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c366;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c365;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c367; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 671 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SARB.Ev.1ow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c365;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c366;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c367;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c364; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) 
                                goto MATCH_label_c64;  /*opt-block+*/
                              else { 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                
                                  switch((MATCH_w_8_16 >> 3 & 0x7) 
                                        /* reg_opcode at 16 */) {
                                    case 0: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c368; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c370;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c369;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c371; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 737 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "ROLB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c369;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c370;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c371;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c368; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 1: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c372; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c374;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c373;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c375; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 725 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "RORB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c373;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c374;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c375;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c372; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 2: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c376; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c378;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c377;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c379; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 713 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "RCLB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c377;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c378;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c379;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c376; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 3: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c380; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c382;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c381;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c383; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 701 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "RCRB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c381;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c382;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c383;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c380; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 4: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c384; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c386;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c385;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c387; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 689 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SHLSALB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c385;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c386;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c387;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c384; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 5: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c388; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c390;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c389;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c391; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 677 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SHRB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c389;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c390;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c391;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c388; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    case 6: 
                                      goto MATCH_label_c64; break;
                                    case 7: 
                                      
                                        switch((MATCH_w_8_16 >> 6 & 0x3) 
                                              /* mod at 16 */) {
                                          case 0: 
                                            
                                              switch((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */) {
                                                case 0: case 1: case 2: 
                                                case 3: case 6: case 7: 
                                                  goto MATCH_label_c392; 
                                                  
                                                  break;
                                                case 4: 
                                                  MATCH_w_8_24 = 
                                                    getByte(3 + MATCH_p); 
                                                  if ((MATCH_w_8_24 & 0x7) 
                                                          /* base at 24 */ == 5 && 
                                                    (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ && 
                                                    (MATCH_w_8_24 >> 3 & 0x7) 
                                                          /* index at 24 */ < 8)) 
                                                    goto MATCH_label_c394;  /*opt-block+*/
                                                  else 
                                                    goto MATCH_label_c393;  /*opt-block+*/
                                                  
                                                  break;
                                                case 5: 
                                                  goto MATCH_label_c395; 
                                                  
                                                  break;
                                                default: assert(0);
                                              } /* (MATCH_w_8_16 & 0x7) 
                                                    -- r_m at 16 --*/ 
                                            break;
                                          case 1: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) { 
                                              unsigned Eaddr = 
                                                2 + addressToPC(MATCH_p);
                                              nextPC = 5 + MATCH_p; 
                                              
#line 665 "decoder.m"
                                              

                                              		stmts = instantiate(pc,	 "SARB.Ev.CLow", DIS_EADDR16);

                                              

                                              
                                              
                                              
                                            } /*opt-block*//*opt-block+*/
                                            else 
                                              goto MATCH_label_c393;  /*opt-block+*/
                                            
                                            break;
                                          case 2: 
                                            MATCH_w_8_24 = 
                                              getByte(3 + MATCH_p); 
                                            if ((MATCH_w_8_16 & 0x7) 
                                                    /* r_m at 16 */ == 4 && 
                                              (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ && 
                                              (MATCH_w_8_24 >> 3 & 0x7) 
                                                    /* index at 24 */ < 8)) 
                                              goto MATCH_label_c394;  /*opt-block+*/
                                            else 
                                              goto MATCH_label_c395;  /*opt-block+*/
                                            
                                            break;
                                          case 3: 
                                            goto MATCH_label_c392; break;
                                          default: assert(0);
                                        } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                              -- mod at 16 --*/ 
                                      break;
                                    default: assert(0);
                                  } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                        -- reg_opcode at 16 --*/ 
                                
                              } /*opt-block*/
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      case 14: 
                        if ((MATCH_w_8_8 & 0x7) /* col at 8 */ == 1 && 
                          (MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) { 
                          MATCH_w_16_16 = getWord(2 + MATCH_p); 
                          MATCH_name = 
                            MATCH_name_page_0[(MATCH_w_8_8 >> 3 & 0x1) 
                                /* page at 8 */]; 
                          { 
                            char *name = MATCH_name;
                            unsigned relocd = 
                              4 + sign_extend((MATCH_w_16_16 & 0xffff) 
                                                /* i16 at 16 */, 16) + 
                              addressToPC(MATCH_p);
                            nextPC = 4 + MATCH_p; 
                            
#line 151 "decoder.m"
                            

                            		unused((int) name);

                            		unconditionalJump(name, 3, relocd, delta, pc, stmts, result);

                            
                            
                            
                          }
                          
                        } /*opt-block*/
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        
                        break;
                      case 15: 
                        if ((MATCH_w_8_8 & 0x7) /* col at 8 */ == 7) 
                          if ((MATCH_w_8_8 >> 3 & 0x1) 
                                  /* page at 8 */ == 1) { 
                            MATCH_w_8_16 = getByte(2 + MATCH_p); 
                            
                              switch((MATCH_w_8_16 >> 3 & 0x7) 
                                    /* reg_opcode at 16 */) {
                                case 0: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c424; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c426;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c425;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c427; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1130 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "INC.Evow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c425;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c426;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c427;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c424; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 1: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c428; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c430;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c429;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c431; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1214 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "DEC.Evow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c429;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c430;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c431;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c428; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 2: case 3: case 4: case 5: case 7: 
                                  goto MATCH_label_c64; break;
                                case 6: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c432; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c434;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c433;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c435; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 841 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "PUSH.Evow", DIS_EADDR16);

                                          

                                          //	  | POPFod() =>

                                          //		  stmts = instantiate(pc,  "POPFod");

                                          

                                          //	  | POPFow() =>

                                          //		  stmts = instantiate(pc,  "POPFow");

                                          

                                          //	  | POPAod() =>

                                          //		  stmts = instantiate(pc,  "POPAod");

                                          

                                          //	  | POPAow() =>

                                          //		  stmts = instantiate(pc,  "POPAow");

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c433;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c434;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c435;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c432; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                default: assert(0);
                              } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                    -- reg_opcode at 16 --*/ 
                            
                          } /*opt-block*/
                          else { 
                            MATCH_w_8_16 = getByte(2 + MATCH_p); 
                            
                              switch((MATCH_w_8_16 >> 3 & 0x7) 
                                    /* reg_opcode at 16 */) {
                                case 0: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              MATCH_w_16_24 = 
                                                getWord(3 + MATCH_p); 
                                              goto MATCH_label_c396; 
                                              
                                              break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) { 
                                                MATCH_w_16_64 = 
                                                  getWord(8 + MATCH_p); 
                                                goto MATCH_label_c398; 
                                                
                                              } /*opt-block*/
                                              else { 
                                                MATCH_w_16_32 = 
                                                  getWord(4 + MATCH_p); 
                                                goto MATCH_label_c397; 
                                                
                                              } /*opt-block*/
                                              
                                              break;
                                            case 5: 
                                              MATCH_w_16_56 = 
                                                getWord(7 + MATCH_p); 
                                              goto MATCH_label_c399; 
                                              
                                              break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          MATCH_w_16_40 = 
                                            getWord(5 + MATCH_p); 
                                          { 
                                            unsigned Eaddr = 
                                              2 + addressToPC(MATCH_p);
                                            unsigned i16 = 
                                              (MATCH_w_16_40 & 0xffff) 
                                                    /* i16 at 40 */;
                                            nextPC = 7 + MATCH_p; 
                                            
#line 390 "decoder.m"
                                            

                                            		stmts = instantiate(pc,	 "TEST.Ew.Iw", DIS_EADDR16, DIS_I16);

                                            

                                            
                                            
                                            
                                          }
                                          
                                        } /*opt-block*/
                                        else { 
                                          MATCH_w_16_32 = 
                                            getWord(4 + MATCH_p); 
                                          goto MATCH_label_c397; 
                                          
                                        } /*opt-block*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          MATCH_w_16_64 = 
                                            getWord(8 + MATCH_p); 
                                          goto MATCH_label_c398; 
                                          
                                        } /*opt-block*/
                                        else { 
                                          MATCH_w_16_56 = 
                                            getWord(7 + MATCH_p); 
                                          goto MATCH_label_c399; 
                                          
                                        } /*opt-block*/
                                        
                                        break;
                                      case 3: 
                                        MATCH_w_16_24 = getWord(3 + MATCH_p); 
                                        goto MATCH_label_c396; 
                                        
                                        break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 1: 
                                  goto MATCH_label_c64; break;
                                case 2: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c400; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c402;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c401;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c403; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 913 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "NOTow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c401;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c402;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c403;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c400; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 3: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c404; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c406;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c405;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c407; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 922 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "NEGow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c405;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c406;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c407;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c404; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 4: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c408; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c410;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c409;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c411; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 931 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "MUL.AXow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c409;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c410;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c411;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c408; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 5: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c412; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c414;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c413;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c415; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1175 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "IMULow", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c413;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c414;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c415;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c412; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 6: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c416; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c418;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c417;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c419; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1199 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "DIVAX", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c417;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c418;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c419;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c416; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                case 7: 
                                  
                                    switch((MATCH_w_8_16 >> 6 & 0x3) 
                                          /* mod at 16 */) {
                                      case 0: 
                                        
                                          switch((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */) {
                                            case 0: case 1: case 2: case 3: 
                                            case 6: case 7: 
                                              goto MATCH_label_c420; break;
                                            case 4: 
                                              MATCH_w_8_24 = 
                                                getByte(3 + MATCH_p); 
                                              if ((MATCH_w_8_24 & 0x7) 
                                                      /* base at 24 */ == 5 && 
                                                (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ && 
                                                (MATCH_w_8_24 >> 3 & 0x7) 
                                                      /* index at 24 */ < 8)) 
                                                goto MATCH_label_c422;  /*opt-block+*/
                                              else 
                                                goto MATCH_label_c421;  /*opt-block+*/
                                              
                                              break;
                                            case 5: 
                                              goto MATCH_label_c423; break;
                                            default: assert(0);
                                          } /* (MATCH_w_8_16 & 0x7) 
                                                -- r_m at 16 --*/ 
                                        break;
                                      case 1: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) { 
                                          unsigned Eaddr = 
                                            2 + addressToPC(MATCH_p);
                                          nextPC = 5 + MATCH_p; 
                                          
#line 1184 "decoder.m"
                                          

                                          		stmts = instantiate(pc,	 "IDIVAX", DIS_EADDR16);

                                          

                                          
                                          
                                          
                                        } /*opt-block*//*opt-block+*/
                                        else 
                                          goto MATCH_label_c421;  /*opt-block+*/
                                        
                                        break;
                                      case 2: 
                                        MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                        if ((MATCH_w_8_16 & 0x7) 
                                                /* r_m at 16 */ == 4 && 
                                          (0 <= (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ && 
                                          (MATCH_w_8_24 >> 3 & 0x7) 
                                                /* index at 24 */ < 8)) 
                                          goto MATCH_label_c422;  /*opt-block+*/
                                        else 
                                          goto MATCH_label_c423;  /*opt-block+*/
                                        
                                        break;
                                      case 3: 
                                        goto MATCH_label_c420; break;
                                      default: assert(0);
                                    } /* (MATCH_w_8_16 >> 6 & 0x3) 
                                          -- mod at 16 --*/ 
                                  break;
                                default: assert(0);
                              } /* (MATCH_w_8_16 >> 3 & 0x7) 
                                    -- reg_opcode at 16 --*/ 
                            
                          } /*opt-block*/ 
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 4 & 0xf) -- row at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 7: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 191 "decoder.m"
                    

                    		COND_JUMP("Jb.O", 2, relocd, (BRANCH_TYPE)0)

                    

                    	/*

                    	 * Conditional branches, 16 bit offset: 66 0F 8X XX XX

                    	 */

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 188 "decoder.m"
                    

                    		COND_JUMP("Jb.NO", 2, relocd, (BRANCH_TYPE)0)

                    
                    
                    
                  }
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 186 "decoder.m"
                    

                    		COND_JUMP("Jb.B", 2, relocd, BRANCH_JUL)

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 184 "decoder.m"
                    

                    		COND_JUMP("Jb.NB", 2, relocd, BRANCH_JUGE)

                    
                    
                    
                  }
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 182 "decoder.m"
                    

                    		COND_JUMP("Jb.Z", 2, relocd, BRANCH_JE)

                    
                    
                    
                  }
                  
                  break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 180 "decoder.m"
                    

                    		COND_JUMP("Jb.NZ", 2, relocd, BRANCH_JNE)

                    
                    
                    
                  }
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 178 "decoder.m"
                    

                    		COND_JUMP("Jb.BE", 2, relocd, BRANCH_JULE)

                    
                    
                    
                  }
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 176 "decoder.m"
                    

                    		COND_JUMP("Jb.NBE", 2, relocd, BRANCH_JUG)

                    
                    
                    
                  }
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 8: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c436; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c438; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c437; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c439; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1669 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADDib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c437; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c438; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c439; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c436; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c440; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c442; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c441; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c443; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1666 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ORib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c441; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c442; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c443; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c440; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c444; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c446; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c445; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c447; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1663 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADCib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c445; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c446; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c447; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c444; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c448; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c450; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c449; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c451; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1660 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SBBib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c449; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c450; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c451; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c448; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c452; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c454; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c453; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c455; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1657 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ANDib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c453; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c454; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c455; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c452; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c456; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c458; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c457; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c459; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1654 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SUBib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c457; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c458; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c459; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c456; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c460; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c462; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c461; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c463; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1651 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "XORib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c461; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c462; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c463; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c460; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c464; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c466; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c465; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c467; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1648 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "CMPib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c465; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c466; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c467; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c464; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c468; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c470; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c469; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c471; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1621 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADDid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c469; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c470; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c471; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c468; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c472; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c474; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c473; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c475; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1618 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ORid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c473; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c474; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c475; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c472; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c476; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c478; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c477; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c479; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1615 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADCid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c477; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c478; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c479; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c476; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c480; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c482; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c481; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c483; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1612 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SBBid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c481; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c482; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c483; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c480; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c484; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c486; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c485; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c487; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1609 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ANDid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c485; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c486; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c487; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c484; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c488; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c490; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c489; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c491; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1606 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SUBid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c489; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c490; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c491; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c488; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c492; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c494; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c493; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c495; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1603 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "XORid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c493; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c494; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c495; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c492; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c496; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c498; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c497; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c499; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 1600 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "CMPid", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c497; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c498; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c499; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c496; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 2: 
                  goto MATCH_label_c64; break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c500; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c502; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c501; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c503; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1594 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADDiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c501; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c502; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c503; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c500; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c504; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c506; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c505; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c507; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1588 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ORiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c505; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c506; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c507; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c504; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c508; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c510; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c509; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c511; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1582 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ADCiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c509; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c510; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c511; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c508; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c512; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c514; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c513; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c515; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1576 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SBBiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c513; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c514; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c515; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c512; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c516; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c518; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c517; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c519; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1567 "decoder.m"
                                  

                                  		// Special hack to ignore and $0xfffffff0, %esp

                                  		Exp* oper = dis_Eaddr(Eaddr, 32);

                                  		if (i8 != -16 || !(*oper == *Location::regOf(28)))

                                  			stmts = instantiate(pc,	 "ANDiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c517; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c518; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c519; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c516; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c520; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c522; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c521; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c523; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1561 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SUBiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c521; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c522; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c523; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c520; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c524; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c526; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c525; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c527; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1555 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "XORiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c525; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c526; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c527; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c524; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c528; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c530; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c529; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c531; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 1549 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "CMPiodb", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c529; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c530; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c531; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c528; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c532; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c534;  /*opt-block+*/
                              else 
                                goto MATCH_label_c533;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c535; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 384 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "TEST.Eb.Gb", DIS_EADDR8, DIS_REG8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c533;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c534;  /*opt-block+*/
                        else 
                          goto MATCH_label_c535;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c532; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c536; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c538;  /*opt-block+*/
                              else 
                                goto MATCH_label_c537;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c539; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 378 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "TEST.Ev.Gvod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c537;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c538;  /*opt-block+*/
                        else 
                          goto MATCH_label_c539;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c536; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c540; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c542;  /*opt-block+*/
                              else 
                                goto MATCH_label_c541;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c543; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 324 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c541;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c542;  /*opt-block+*/
                        else 
                          goto MATCH_label_c543;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c540; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              goto MATCH_label_c544; break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c546;  /*opt-block+*/
                              else 
                                goto MATCH_label_c545;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c547; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Eaddr = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 318 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "XCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c545;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c546;  /*opt-block+*/
                        else 
                          goto MATCH_label_c547;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c544; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 9: 
            if ((MATCH_w_8_0 & 0x7) /* col at 0 */ == 0) { 
              nextPC = 1 + MATCH_p; 
              
#line 327 "decoder.m"
              

              		stmts = instantiate(pc,	 "NOP");

              

              
              
              
            } /*opt-block*//*opt-block+*/
            else { 
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r32 at 0 */;
              nextPC = 1 + MATCH_p; 
              
#line 348 "decoder.m"
              

              		stmts = instantiate(pc,	 "XCHGeAXod", DIS_R32);

              

              
              
              
            } /*opt-block*//*opt-block+*/
            
            break;
          case 10: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned off = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1013 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "MOV.AL.Ob", DIS_OFF);

                    

                    //	  | MOV.Sw.Ew(Mem, sr16) =>

                    //		  stmts = instantiate(pc,  "MOV.Sw.Ew", DIS_MEM, DIS_SR16);

                    

                    //	  | MOV.Ew.Sw(Mem, sr16) =>

                    //		  stmts = instantiate(pc,  "MOV.Ew.Sw", DIS_MEM, DIS_SR16);

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned off = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1007 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "MOV.eAX.Ovod", DIS_OFF);

                    

                    
                    
                    
                  }
                  
                  break;
                case 2: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned off = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 1004 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "MOV.Ob.AL", DIS_OFF);

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  MATCH_w_32_8 = getDword(1 + MATCH_p); 
                  { 
                    unsigned off = MATCH_w_32_8 /* i32 at 8 */;
                    nextPC = 5 + MATCH_p; 
                    
#line 998 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "MOV.Ov.eAXod", DIS_OFF);

                    

                    
                    
                    
                  }
                  
                  break;
                case 4: 
                  nextPC = 1 + MATCH_p; 
                  
#line 961 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "MOVSB");

                  

                  //	  | MOV.Rd.Dd(reg, dr) => 

                  //		  unused(reg); unused(dr);

                  //		  stmts = instantiate(pc,  "UNIMP");

                  

                  //	  | MOV.Dd.Rd(dr, reg) =>

                  //		  unused(reg); unused(dr);

                  //		  stmts = instantiate(pc,  "UNIMP");

                  

                  //	  | MOV.Rd.Cd(reg, cr) =>

                  //		  unused(reg); unused(cr);

                  //		  stmts = instantiate(pc,  "UNIMP");

                  

                  //	  | MOV.Cd.Rd(cr, reg) =>

                  //		  unused(reg); unused(cr);

                  //		  stmts = instantiate(pc,  "UNIMP");

                  

                  
                  
                  
                  
                  break;
                case 5: 
                  nextPC = 1 + MATCH_p; 
                  
#line 955 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "MOVSvod");

                  

                  
                  
                  
                  
                  break;
                case 6: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1253 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CMPSB");

                  

                  
                  
                  
                  
                  break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1247 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CMPSvod");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 11: 
            MATCH_w_8_8 = getByte(1 + MATCH_p); 
            { 
              int /* [~128..127] */ i8 = 
                sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
              unsigned r8 = (MATCH_w_8_0 & 0x7) /* r8 at 0 */;
              nextPC = 2 + MATCH_p; 
              
#line 995 "decoder.m"
              

              		stmts = instantiate(pc,	 "MOVib", DIS_R8, DIS_I8);

              

              
              
              
            }
            
            break;
          case 12: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c548; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c550; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c549; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c551; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 659 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ROLB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c549; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c550; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c551; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c548; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c552; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c554; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c553; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c555; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 656 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RORB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c553; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c554; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c555; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c552; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c556; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c558; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c557; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c559; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 653 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RCLB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c557; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c558; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c559; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c556; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c560; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c562; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c561; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c563; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 650 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RCRB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c561; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c562; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c563; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c560; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c564; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c566; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c565; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c567; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 647 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SHLSALB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c565; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c566; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c567; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c564; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c568; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c570; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c569; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c571; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 644 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SHRB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c569; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c570; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c571; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c568; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c572; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c574; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c573; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c575; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 641 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SARB.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c573; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c574; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c575; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c572; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c576; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c578; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c577; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c579; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 635 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "ROLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c577; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c578; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c579; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c576; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c580; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c582; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c581; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c583; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 629 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RORB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c581; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c582; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c583; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c580; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c584; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c586; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c585; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c587; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 623 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RCLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c585; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c586; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c587; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c584; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c588; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c590; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c589; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c591; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 617 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "RCRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c589; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c590; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c591; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c588; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c592; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c594; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c593; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c595; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 611 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c593; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c594; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c595; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c592; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c596; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c598; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c597; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c599; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 605 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SHRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c597; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c598; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c599; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c596; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c600; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c602; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c601; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c603; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  int /* [~128..127] */ i8 = 
                                    sign_extend((MATCH_w_8_32 & 0xff) 
                                                      /* i8 at 32 */, 8);
                                  nextPC = 5 + MATCH_p; 
                                  
#line 599 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "SARB.Ev.Ibod", DIS_EADDR32, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c601; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c602; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c603; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c600; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_16_8 = getWord(1 + MATCH_p); 
                  { 
                    unsigned i16 = (MATCH_w_16_8 & 0xffff) /* i16 at 8 */;
                    nextPC = 3 + MATCH_p; 
                    
#line 484 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "RET.Iw", DIS_I16);

                    		ReturnStatement *ret = new ReturnStatement;

                    		result.rtl = new RTL(pc, stmts);

                    		result.rtl->appendStmt(ret);

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: 
                  nextPC = 1 + MATCH_p; 
                  
#line 495 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "RET");

                  		result.rtl = new RTL(pc, stmts);

                  		result.rtl->appendStmt(new ReturnStatement);

                  

                  //	 | REPNE() =>

                  //		stmts = instantiate(pc,	 "REPNE");

                  

                  //	| REP() =>

                  //		stmts = instantiate(pc,	 "REP");

                  

                  
                  
                  
                  
                  break;
                case 4: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                unsigned reg = 
                                  (MATCH_w_8_8 >> 3 & 0x7) 
                                        /* reg_opcode at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1067 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "LES", DIS_REG32, DIS_MEM);

                                

                                
                                
                                
                              }
                              
                              break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c605;  /*opt-block+*/
                              else 
                                goto MATCH_label_c604;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c606; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Mem = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1067 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "LES", DIS_REG32, DIS_MEM);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c604;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c605;  /*opt-block+*/
                        else 
                          goto MATCH_label_c606;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c64; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 5: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                            case 0: case 1: case 2: case 3: case 6: case 7: 
                              { 
                                unsigned Mem = 1 + addressToPC(MATCH_p);
                                unsigned reg = 
                                  (MATCH_w_8_8 >> 3 & 0x7) 
                                        /* reg_opcode at 8 */;
                                nextPC = 2 + MATCH_p; 
                                
#line 1079 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "LDS", DIS_REG32, DIS_MEM);

                                

                                
                                
                                
                              }
                              
                              break;
                            case 4: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_16 & 0x7) 
                                      /* base at 16 */ == 5 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c608;  /*opt-block+*/
                              else 
                                goto MATCH_label_c607;  /*opt-block+*/
                              
                              break;
                            case 5: 
                              goto MATCH_label_c609; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                        break;
                      case 1: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) { 
                          unsigned Mem = 1 + addressToPC(MATCH_p);
                          unsigned reg = 
                            (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
                          nextPC = 4 + MATCH_p; 
                          
#line 1079 "decoder.m"
                          

                          		stmts = instantiate(pc,	 "LDS", DIS_REG32, DIS_MEM);

                          

                          
                          
                          
                        } /*opt-block*//*opt-block+*/
                        else 
                          goto MATCH_label_c607;  /*opt-block+*/
                        
                        break;
                      case 2: 
                        MATCH_w_8_16 = getByte(2 + MATCH_p); 
                        if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                          (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                /* index at 16 */ && 
                          (MATCH_w_8_16 >> 3 & 0x7) /* index at 16 */ < 8)) 
                          goto MATCH_label_c608;  /*opt-block+*/
                        else 
                          goto MATCH_label_c609;  /*opt-block+*/
                        
                        break;
                      case 3: 
                        goto MATCH_label_c64; break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  if ((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */ == 0) 
                    
                      switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                        case 0: 
                          
                            switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                              case 0: case 1: case 2: case 3: case 6: case 7: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                goto MATCH_label_c610; 
                                
                                break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 & 0x7) 
                                        /* base at 16 */ == 5 && 
                                  (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ && 
                                  (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ < 8)) { 
                                  MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                  goto MATCH_label_c612; 
                                  
                                } /*opt-block*/
                                else { 
                                  MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                  goto MATCH_label_c611; 
                                  
                                } /*opt-block*/
                                
                                break;
                              case 5: 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c613; 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                          break;
                        case 1: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ < 8)) { 
                            MATCH_w_8_32 = getByte(4 + MATCH_p); 
                            { 
                              unsigned Eaddr = 1 + addressToPC(MATCH_p);
                              int /* [~128..127] */ i8 = 
                                sign_extend((MATCH_w_8_32 & 0xff) 
                                                  /* i8 at 32 */, 8);
                              nextPC = 5 + MATCH_p; 
                              
#line 986 "decoder.m"
                              

                              		stmts = instantiate(pc,	 "MOV.Eb.Ib", DIS_EADDR8, DIS_I8);

                              

                              
                              
                              
                            }
                            
                          } /*opt-block*/
                          else { 
                            MATCH_w_8_24 = getByte(3 + MATCH_p); 
                            goto MATCH_label_c611; 
                            
                          } /*opt-block*/
                          
                          break;
                        case 2: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ < 8)) { 
                            MATCH_w_8_56 = getByte(7 + MATCH_p); 
                            goto MATCH_label_c612; 
                            
                          } /*opt-block*/
                          else { 
                            MATCH_w_8_48 = getByte(6 + MATCH_p); 
                            goto MATCH_label_c613; 
                            
                          } /*opt-block*/
                          
                          break;
                        case 3: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          goto MATCH_label_c610; 
                          
                          break;
                        default: assert(0);
                      } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/  
                  else 
                    goto MATCH_label_c64;  /*opt-block+*/
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  if ((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */ == 0) 
                    
                      switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                        case 0: 
                          
                            switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                              case 0: case 1: case 2: case 3: case 6: case 7: 
                                MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                goto MATCH_label_c614; 
                                
                                break;
                              case 4: 
                                MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                if ((MATCH_w_8_16 & 0x7) 
                                        /* base at 16 */ == 5 && 
                                  (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ && 
                                  (MATCH_w_8_16 >> 3 & 0x7) 
                                        /* index at 16 */ < 8)) { 
                                  MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                  goto MATCH_label_c616; 
                                  
                                } /*opt-block*/
                                else { 
                                  MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                  goto MATCH_label_c615; 
                                  
                                } /*opt-block*/
                                
                                break;
                              case 5: 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c617; 
                                
                                break;
                              default: assert(0);
                            } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                          break;
                        case 1: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ < 8)) { 
                            MATCH_w_32_32 = getDword(4 + MATCH_p); 
                            { 
                              unsigned Eaddr = 1 + addressToPC(MATCH_p);
                              unsigned i32 = MATCH_w_32_32 /* i32 at 32 */;
                              nextPC = 8 + MATCH_p; 
                              
#line 980 "decoder.m"
                              

                              		stmts = instantiate(pc,	 "MOV.Ed.Ivod", DIS_EADDR32, DIS_I32);

                              

                              
                              
                              
                            }
                            
                          } /*opt-block*/
                          else { 
                            MATCH_w_32_24 = getDword(3 + MATCH_p); 
                            goto MATCH_label_c615; 
                            
                          } /*opt-block*/
                          
                          break;
                        case 2: 
                          MATCH_w_8_16 = getByte(2 + MATCH_p); 
                          if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                            (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ && 
                            (MATCH_w_8_16 >> 3 & 0x7) 
                                  /* index at 16 */ < 8)) { 
                            MATCH_w_32_56 = getDword(7 + MATCH_p); 
                            goto MATCH_label_c616; 
                            
                          } /*opt-block*/
                          else { 
                            MATCH_w_32_48 = getDword(6 + MATCH_p); 
                            goto MATCH_label_c617; 
                            
                          } /*opt-block*/
                          
                          break;
                        case 3: 
                          MATCH_w_32_16 = getDword(2 + MATCH_p); 
                          goto MATCH_label_c614; 
                          
                          break;
                        default: assert(0);
                      } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/  
                  else 
                    goto MATCH_label_c64;  /*opt-block+*/
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 13: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c618; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c620;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c619;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c621; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 785 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "ROLB.Eb.1", DIS_EADDR8);

                                

                                	// There is no SSL for these, so don't call instantiate, it will only

                                	// cause an assert failure. Also, may as well treat these as invalid instr

                                //	  | PUSHFod() =>

                                //		  stmts = instantiate(pc,  "PUSHFod");

                                

                                //	  | PUSHFow() =>

                                //		  stmts = instantiate(pc,  "PUSHFow");

                                

                                //	  | PUSHAod() =>

                                //		  stmts = instantiate(pc,  "PUSHAod");

                                

                                //	  | PUSHAow() =>

                                //		  stmts = instantiate(pc,  "PUSHAow");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c619;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c620;  /*opt-block+*/
                              else 
                                goto MATCH_label_c621;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c618; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c622; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c624;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c623;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c625; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 779 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RORB.Eb.1", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c623;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c624;  /*opt-block+*/
                              else 
                                goto MATCH_label_c625;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c622; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c626; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c628;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c627;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c629; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 773 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCLB.Eb.1", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c627;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c628;  /*opt-block+*/
                              else 
                                goto MATCH_label_c629;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c626; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c630; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c632;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c631;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c633; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 767 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCRB.Eb.1", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c631;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c632;  /*opt-block+*/
                              else 
                                goto MATCH_label_c633;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c630; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c634; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c636;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c635;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c637; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 761 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHLSALB.Eb.1", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c635;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c636;  /*opt-block+*/
                              else 
                                goto MATCH_label_c637;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c634; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c638; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c640;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c639;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c641; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 755 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHRB.Eb.1", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c639;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c640;  /*opt-block+*/
                              else 
                                goto MATCH_label_c641;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c638; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c642; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c644;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c643;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c645; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 749 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SARB.Eb.1", DIS_EADDR16);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c643;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c644;  /*opt-block+*/
                              else 
                                goto MATCH_label_c645;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c642; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c646; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c648;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c647;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c649; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 740 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "ROLB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c647;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c648;  /*opt-block+*/
                              else 
                                goto MATCH_label_c649;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c646; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c650; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c652;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c651;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c653; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 728 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RORB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c651;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c652;  /*opt-block+*/
                              else 
                                goto MATCH_label_c653;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c650; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c654; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c656;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c655;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c657; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 716 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCLB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c655;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c656;  /*opt-block+*/
                              else 
                                goto MATCH_label_c657;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c654; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c658; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c660;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c659;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c661; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 704 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCRB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c659;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c660;  /*opt-block+*/
                              else 
                                goto MATCH_label_c661;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c658; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c662; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c664;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c663;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c665; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 692 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHLSALB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c663;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c664;  /*opt-block+*/
                              else 
                                goto MATCH_label_c665;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c662; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c666; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c668;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c667;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c669; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 680 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHRB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c667;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c668;  /*opt-block+*/
                              else 
                                goto MATCH_label_c669;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c666; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c670; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c672;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c671;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c673; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 668 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SARB.Ev.1od", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c671;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c672;  /*opt-block+*/
                              else 
                                goto MATCH_label_c673;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c670; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c674; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c676;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c675;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c677; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 782 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "ROLB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c675;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c676;  /*opt-block+*/
                              else 
                                goto MATCH_label_c677;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c674; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c678; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c680;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c679;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c681; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 776 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RORB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c679;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c680;  /*opt-block+*/
                              else 
                                goto MATCH_label_c681;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c678; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c682; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c684;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c683;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c685; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 770 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCLB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c683;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c684;  /*opt-block+*/
                              else 
                                goto MATCH_label_c685;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c682; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c686; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c688;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c687;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c689; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 764 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCRB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c687;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c688;  /*opt-block+*/
                              else 
                                goto MATCH_label_c689;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c686; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c690; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c692;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c691;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c693; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 758 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHLSALB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c691;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c692;  /*opt-block+*/
                              else 
                                goto MATCH_label_c693;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c690; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c694; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c696;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c695;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c697; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 752 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHRB.Eb.CL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c695;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c696;  /*opt-block+*/
                              else 
                                goto MATCH_label_c697;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c694; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c698; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c700;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c699;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c701; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 746 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SARB.Eb.CL", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c699;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c700;  /*opt-block+*/
                              else 
                                goto MATCH_label_c701;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c698; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c702; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c704;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c703;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c705; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 734 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "ROLB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c703;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c704;  /*opt-block+*/
                              else 
                                goto MATCH_label_c705;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c702; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c706; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c708;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c707;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c709; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 722 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RORB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c707;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c708;  /*opt-block+*/
                              else 
                                goto MATCH_label_c709;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c706; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c710; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c712;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c711;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c713; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 710 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCLB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c711;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c712;  /*opt-block+*/
                              else 
                                goto MATCH_label_c713;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c710; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c714; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c716;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c715;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c717; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 698 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "RCRB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c715;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c716;  /*opt-block+*/
                              else 
                                goto MATCH_label_c717;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c714; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c718; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c720;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c719;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c721; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 686 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHLSALB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c719;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c720;  /*opt-block+*/
                              else 
                                goto MATCH_label_c721;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c718; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c722; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c724;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c723;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c725; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 674 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SHRB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c723;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c724;  /*opt-block+*/
                              else 
                                goto MATCH_label_c725;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c722; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        goto MATCH_label_c64; break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c726; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c728;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c727;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c729; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 662 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "SARB.Ev.CLod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c727;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c728;  /*opt-block+*/
                              else 
                                goto MATCH_label_c729;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c726; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 4: case 5: case 6: 
                  goto MATCH_label_c64; break;
                case 7: 
                  nextPC = 1 + MATCH_p; 
                  
#line 315 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "XLATB");

                  

                  
                  
                  
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 14: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 1052 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "LOOPNE", dis_Num(relocd - hostPC - 2));

                    

                    
                    
                    
                  }
                  
                  break;
                case 1: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 1055 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "LOOPE", dis_Num(relocd-hostPC-2));

                    

                    
                    
                    
                  }
                  
                  break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  { 
                    unsigned relocd = 
                      2 + sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 
                                  8) + addressToPC(MATCH_p);
                    nextPC = 2 + MATCH_p; 
                    
#line 1058 "decoder.m"
                    

                    		stmts = instantiate(pc,	 "LOOP", dis_Num(relocd-hostPC-2));

                    

                    
                    
                    
                  }
                  
                  break;
                case 3: case 4: case 5: case 6: case 7: 
                  goto MATCH_label_c64; break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          case 15: 
            
              switch((MATCH_w_8_0 & 0x7) /* col at 0 */) {
                case 0: case 1: case 4: 
                  goto MATCH_label_c64; break;
                case 2: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 4 & 0xf) /* row at 8 */) {
                      case 0: case 1: case 2: case 3: case 4: case 5: case 7: 
                      case 8: case 9: case 11: case 12: case 13: case 14: 
                      case 15: 
                        goto MATCH_label_c64; break;
                      case 6: 
                        if ((MATCH_w_8_8 & 0x7) /* col at 8 */ == 6) 
                          if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                            goto MATCH_label_c64;  /*opt-block+*/
                          else { 
                            MATCH_w_8_16 = getByte(2 + MATCH_p); 
                            
                              switch((MATCH_w_8_16 & 0x7) /* col at 16 */) {
                                case 0: case 1: case 2: case 4: case 6: 
                                  goto MATCH_label_c64; break;
                                case 3: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10 && 
                                    (MATCH_w_8_16 >> 3 & 0x1) 
                                          /* page at 16 */ == 1) { 
                                    MATCH_name = 
                                      MATCH_name_page_1[(MATCH_w_8_16 >> 3 & 0x1) 
                                          /* page at 16 */]; 
                                    { 
                                      char *name = MATCH_name;
                                      nextPC = 3 + MATCH_p; 
                                      
#line 590 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 name);

                                      

                                      
                                      
                                      
                                    }
                                    
                                  } /*opt-block*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  
                                  break;
                                case 5: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10) 
                                    if ((MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */ == 1) { 
                                      MATCH_name = 
                                        MATCH_name_page_2[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 563 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_name = 
                                        MATCH_name_page_1[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 572 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/ /*opt-block+*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  break;
                                case 7: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10) 
                                    if ((MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */ == 1) { 
                                      MATCH_name = 
                                        MATCH_name_page_3[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 581 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_name = 
                                        MATCH_name_page_2[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 554 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/ /*opt-block+*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  break;
                                default: assert(0);
                              } /* (MATCH_w_8_16 & 0x7) -- col at 16 --*/ 
                            
                          } /*opt-block*/ 
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        break;
                      case 10: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 1: 
                              goto MATCH_label_c64; break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_4[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 587 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_5[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 593 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 4: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_6[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 560 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_0[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 569 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_7[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 566 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_4[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 575 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 6: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_8[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 578 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_5[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 551 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_9[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 584 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_6[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 557 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 4 & 0xf) -- row at 8 --*/ 
                  
                  break;
                case 3: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 4 & 0xf) /* row at 8 */) {
                      case 0: case 1: case 2: case 3: case 4: case 5: case 7: 
                      case 8: case 9: case 11: case 12: case 13: case 14: 
                      case 15: 
                        goto MATCH_label_c64; break;
                      case 6: 
                        if ((MATCH_w_8_8 & 0x7) /* col at 8 */ == 6) 
                          if ((MATCH_w_8_8 >> 3 & 0x1) /* page at 8 */ == 1) 
                            goto MATCH_label_c64;  /*opt-block+*/
                          else { 
                            MATCH_w_8_16 = getByte(2 + MATCH_p); 
                            
                              switch((MATCH_w_8_16 & 0x7) /* col at 16 */) {
                                case 0: case 1: case 2: case 4: case 6: 
                                  goto MATCH_label_c64; break;
                                case 3: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10 && 
                                    (MATCH_w_8_16 >> 3 & 0x1) 
                                          /* page at 16 */ == 1) { 
                                    MATCH_name = 
                                      MATCH_name_page_10[(MATCH_w_8_16 >> 3 & 0x1) 
                                          /* page at 16 */]; 
                                    { 
                                      char *name = MATCH_name;
                                      nextPC = 3 + MATCH_p; 
                                      
#line 545 "decoder.m"
                                      

                                      		stmts = instantiate(pc,	 name);

                                      

                                      
                                      
                                      
                                    }
                                    
                                  } /*opt-block*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  
                                  break;
                                case 5: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10) 
                                    if ((MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */ == 1) { 
                                      MATCH_name = "REP.LODSvow"; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 518 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_name = 
                                        MATCH_name_page_3[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 527 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/ /*opt-block+*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  break;
                                case 7: 
                                  if ((MATCH_w_8_16 >> 4 & 0xf) 
                                          /* row at 16 */ == 10) 
                                    if ((MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */ == 1) { 
                                      MATCH_name = "REP.SCASvow"; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 536 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_name = 
                                        MATCH_name_page_10[(MATCH_w_8_16 >> 3 & 0x1) 
                                            /* page at 16 */]; 
                                      { 
                                        char *name = MATCH_name;
                                        nextPC = 3 + MATCH_p; 
                                        
#line 509 "decoder.m"
                                        

                                        		stmts = instantiate(pc,	 name);

                                        

                                        
                                        
                                        
                                      }
                                      
                                    } /*opt-block*/ /*opt-block+*/
                                  else 
                                    goto MATCH_label_c64;  /*opt-block+*/
                                  break;
                                default: assert(0);
                              } /* (MATCH_w_8_16 & 0x7) -- col at 16 --*/ 
                            
                          } /*opt-block*/ 
                        else 
                          goto MATCH_label_c64;  /*opt-block+*/
                        break;
                      case 10: 
                        
                          switch((MATCH_w_8_8 & 0x7) /* col at 8 */) {
                            case 0: case 1: 
                              goto MATCH_label_c64; break;
                            case 2: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = 
                                  MATCH_name_page_13[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 542 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = "REP.STOSvod"; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 548 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else 
                                goto MATCH_label_c64;  /*opt-block+*/
                              
                              break;
                            case 4: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = "REP.LODSB"; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 515 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_7[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 524 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 5: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = "REP.LODSvod"; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 521 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_8[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 530 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 6: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = "REP.SCASB"; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 533 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_9[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 506 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            case 7: 
                              if ((MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */ == 1) { 
                                MATCH_name = "REP.SCASvod"; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 539 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_name = 
                                  MATCH_name_page_13[(MATCH_w_8_8 >> 3 & 0x1) 
                                      /* page at 8 */]; 
                                { 
                                  char *name = MATCH_name;
                                  nextPC = 2 + MATCH_p; 
                                  
#line 512 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 name);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 & 0x7) -- col at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 4 & 0xf) -- row at 8 --*/ 
                  
                  break;
                case 5: 
                  nextPC = 1 + MATCH_p; 
                  
#line 1256 "decoder.m"
                  

                  		stmts = instantiate(pc,	 "CMC");

                  

                  
                  
                  
                  
                  break;
                case 6: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    goto MATCH_label_c730; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                      goto MATCH_label_c732; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                      goto MATCH_label_c731; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                    goto MATCH_label_c733; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_32 = getByte(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i8 = 
                                    (MATCH_w_8_32 & 0xff) /* i8 at 32 */;
                                  nextPC = 5 + MATCH_p; 
                                  
#line 393 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "TEST.Eb.Ib", DIS_EADDR8, DIS_I8);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_24 = getByte(3 + MATCH_p); 
                                goto MATCH_label_c731; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_8_56 = getByte(7 + MATCH_p); 
                                goto MATCH_label_c732; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_8_48 = getByte(6 + MATCH_p); 
                                goto MATCH_label_c733; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              goto MATCH_label_c730; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        goto MATCH_label_c64; break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c734; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c736;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c735;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c737; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 916 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "NOTb", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c735;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c736;  /*opt-block+*/
                              else 
                                goto MATCH_label_c737;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c734; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c738; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c740;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c739;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c741; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 925 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "NEGb", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c739;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c740;  /*opt-block+*/
                              else 
                                goto MATCH_label_c741;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c738; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c742; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c744;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c743;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c745; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 934 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "MUL.AL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c743;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c744;  /*opt-block+*/
                              else 
                                goto MATCH_label_c745;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c742; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c746; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c748;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c747;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c749; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1178 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "IMULb", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c747;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c748;  /*opt-block+*/
                              else 
                                goto MATCH_label_c749;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c746; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c750; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c752;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c751;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c753; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1202 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "DIVAL", DIS_EADDR8);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c751;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c752;  /*opt-block+*/
                              else 
                                goto MATCH_label_c753;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c750; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c754; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c756;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c755;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c757; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1187 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "IDIV", DIS_EADDR8); /* ?? */

                                

                                //	| HLT() =>

                                //		stmts = instantiate(pc,	 "HLT");

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c755;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c756;  /*opt-block+*/
                              else 
                                goto MATCH_label_c757;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c754; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                case 7: 
                  MATCH_w_8_8 = getByte(1 + MATCH_p); 
                  
                    switch((MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */) {
                      case 0: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                                    goto MATCH_label_c758; 
                                    
                                    break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) { 
                                      MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                      goto MATCH_label_c760; 
                                      
                                    } /*opt-block*/
                                    else { 
                                      MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                      goto MATCH_label_c759; 
                                      
                                    } /*opt-block*/
                                    
                                    break;
                                  case 5: 
                                    MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                    goto MATCH_label_c761; 
                                    
                                    break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_32 = getDword(4 + MATCH_p); 
                                { 
                                  unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                  unsigned i32 = 
                                    MATCH_w_32_32 /* i32 at 32 */;
                                  nextPC = 8 + MATCH_p; 
                                  
#line 387 "decoder.m"
                                  

                                  		stmts = instantiate(pc,	 "TEST.Ed.Id", DIS_EADDR32, DIS_I32);

                                  

                                  
                                  
                                  
                                }
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_24 = getDword(3 + MATCH_p); 
                                goto MATCH_label_c759; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                MATCH_w_32_56 = getDword(7 + MATCH_p); 
                                goto MATCH_label_c760; 
                                
                              } /*opt-block*/
                              else { 
                                MATCH_w_32_48 = getDword(6 + MATCH_p); 
                                goto MATCH_label_c761; 
                                
                              } /*opt-block*/
                              
                              break;
                            case 3: 
                              MATCH_w_32_16 = getDword(2 + MATCH_p); 
                              goto MATCH_label_c758; 
                              
                              break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 1: 
                        goto MATCH_label_c64; break;
                      case 2: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c762; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c764;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c763;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c765; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 910 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "NOTod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c763;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c764;  /*opt-block+*/
                              else 
                                goto MATCH_label_c765;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c762; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 3: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c766; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c768;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c767;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c769; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 919 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "NEGod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c767;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c768;  /*opt-block+*/
                              else 
                                goto MATCH_label_c769;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c766; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 4: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c770; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c772;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c771;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c773; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 928 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "MUL.AXod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c771;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c772;  /*opt-block+*/
                              else 
                                goto MATCH_label_c773;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c770; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 5: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c774; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c776;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c775;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c777; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1172 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "IMULod", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c775;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c776;  /*opt-block+*/
                              else 
                                goto MATCH_label_c777;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c774; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 6: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c778; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c780;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c779;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c781; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1196 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "DIVeAX", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c779;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c780;  /*opt-block+*/
                              else 
                                goto MATCH_label_c781;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c778; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      case 7: 
                        
                          switch((MATCH_w_8_8 >> 6 & 0x3) /* mod at 8 */) {
                            case 0: 
                              
                                switch((MATCH_w_8_8 & 0x7) /* r_m at 8 */) {
                                  case 0: case 1: case 2: case 3: case 6: 
                                  case 7: 
                                    goto MATCH_label_c782; break;
                                  case 4: 
                                    MATCH_w_8_16 = getByte(2 + MATCH_p); 
                                    if ((MATCH_w_8_16 & 0x7) 
                                            /* base at 16 */ == 5 && 
                                      (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ && 
                                      (MATCH_w_8_16 >> 3 & 0x7) 
                                            /* index at 16 */ < 8)) 
                                      goto MATCH_label_c784;  /*opt-block+*/
                                    else 
                                      goto MATCH_label_c783;  /*opt-block+*/
                                    
                                    break;
                                  case 5: 
                                    goto MATCH_label_c785; break;
                                  default: assert(0);
                                } /* (MATCH_w_8_8 & 0x7) -- r_m at 8 --*/ 
                              break;
                            case 1: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) { 
                                unsigned Eaddr = 1 + addressToPC(MATCH_p);
                                nextPC = 4 + MATCH_p; 
                                
#line 1181 "decoder.m"
                                

                                		stmts = instantiate(pc,	 "IDIVeAX", DIS_EADDR32);

                                

                                
                                
                                
                              } /*opt-block*//*opt-block+*/
                              else 
                                goto MATCH_label_c783;  /*opt-block+*/
                              
                              break;
                            case 2: 
                              MATCH_w_8_16 = getByte(2 + MATCH_p); 
                              if ((MATCH_w_8_8 & 0x7) /* r_m at 8 */ == 4 && 
                                (0 <= (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ && 
                                (MATCH_w_8_16 >> 3 & 0x7) 
                                      /* index at 16 */ < 8)) 
                                goto MATCH_label_c784;  /*opt-block+*/
                              else 
                                goto MATCH_label_c785;  /*opt-block+*/
                              
                              break;
                            case 3: 
                              goto MATCH_label_c782; break;
                            default: assert(0);
                          } /* (MATCH_w_8_8 >> 6 & 0x3) -- mod at 8 --*/ 
                        break;
                      default: assert(0);
                    } /* (MATCH_w_8_8 >> 3 & 0x7) -- reg_opcode at 8 --*/ 
                  
                  break;
                default: assert(0);
              } /* (MATCH_w_8_0 & 0x7) -- col at 0 --*/ 
            break;
          default: assert(0);
        } /* (MATCH_w_8_0 >> 4 & 0xf) -- row at 0 --*/  
    
  }goto MATCH_finished_c; 
  
  MATCH_label_c0: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1546 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1546 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c2: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1546 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c3: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1546 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c4: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1519 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c5: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1519 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c6: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1519 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c7: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1519 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c8: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1474 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c9: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1474 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c10: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1474 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c11: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1474 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c12: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1447 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c13: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1447 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c14: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1447 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c15: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1447 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c16: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1540 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c17: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1540 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c18: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1540 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c19: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1540 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c20: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1507 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c21: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1507 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c22: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1507 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c23: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1507 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c24: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1468 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c25: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1468 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c26: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1468 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c27: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1468 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c28: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1435 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c29: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1435 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c30: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1435 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c31: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1435 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c32: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1534 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c33: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1534 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c34: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1534 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c35: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1534 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c36: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1495 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c37: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1495 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c38: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1495 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c39: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1495 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c40: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1462 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c41: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1462 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c42: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1462 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c43: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1462 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c44: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1423 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c45: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1423 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c46: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1423 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c47: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1423 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c48: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1528 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c49: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1528 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c50: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1528 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c51: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1528 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c52: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1483 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c53: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1483 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c54: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1483 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c55: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1483 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c56: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1456 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c57: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1456 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c58: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1456 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c59: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1456 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c60: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1411 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c61: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1411 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c62: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1411 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c63: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1411 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c64: (void)0; /*placeholder for label*/ 
    { 
      nextPC = MATCH_p; 
      
#line 2119 "decoder.m"
      
      		result.valid = false;		// Invalid instruction

      		result.rtl = NULL;

      		result.numBytes = 0;

      		return result;

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c65: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1522 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c66: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1522 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c67: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1522 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c68: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1522 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c69: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1516 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c70: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1516 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c71: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1516 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c72: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1516 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c73: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1450 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c74: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1450 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c75: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1450 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c76: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1450 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c77: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1444 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c78: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1444 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c79: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1444 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c80: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1444 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c81: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1085 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.ow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c82: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1085 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.ow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c83: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1085 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.ow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c84: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1085 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.ow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c85: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1049 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c86: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1049 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c87: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1049 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c88: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1049 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c89: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1355 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c90: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1355 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c91: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1355 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c92: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1355 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c93: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1319 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c94: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1319 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c95: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1319 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c96: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1319 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c97: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_32 & 0xff) /* i8 at 32 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 447 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c98: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_40 & 0xff) /* i8 at 40 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 6 + MATCH_p; 
      
#line 447 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c99: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_72 & 0xff) /* i8 at 72 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 10 + MATCH_p; 
      
#line 447 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c100: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_64 & 0xff) /* i8 at 64 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 447 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c101: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_32 & 0xff) /* i8 at 32 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 453 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c102: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_40 & 0xff) /* i8 at 40 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 6 + MATCH_p; 
      
#line 453 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c103: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_72 & 0xff) /* i8 at 72 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 10 + MATCH_p; 
      
#line 453 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c104: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_64 & 0xff) /* i8 at 64 */;
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 453 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibow", DIS_EADDR16, DIS_REG16, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c105: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 435 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c106: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 435 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c107: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 435 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c108: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 435 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c109: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 441 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c110: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 441 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c111: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 441 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c112: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 441 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c113: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1169 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c114: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1169 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c115: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1169 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c116: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1169 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c117: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1241 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c118: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1241 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c119: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1241 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c120: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1241 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c121: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1349 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c122: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_40 & 0xff) /* i8 at 40 */, 8);
      nextPC = 6 + MATCH_p; 
      
#line 1349 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c123: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_72 & 0xff) /* i8 at 72 */, 8);
      nextPC = 10 + MATCH_p; 
      
#line 1349 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c124: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1349 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c125: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1313 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiow", DIS_I8, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c126: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_40 & 0xff) /* i8 at 40 */, 8);
      nextPC = 6 + MATCH_p; 
      
#line 1313 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiow", DIS_I8, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c127: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_72 & 0xff) /* i8 at 72 */, 8);
      nextPC = 10 + MATCH_p; 
      
#line 1313 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiow", DIS_I8, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c128: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1313 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiow", DIS_I8, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c129: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1325 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c130: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_40 & 0xff) /* i8 at 40 */, 8);
      nextPC = 6 + MATCH_p; 
      
#line 1325 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c131: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_72 & 0xff) /* i8 at 72 */, 8);
      nextPC = 10 + MATCH_p; 
      
#line 1325 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c132: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1325 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c133: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1337 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c134: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_40 & 0xff) /* i8 at 40 */, 8);
      nextPC = 6 + MATCH_p; 
      
#line 1337 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c135: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_72 & 0xff) /* i8 at 72 */, 8);
      nextPC = 10 + MATCH_p; 
      
#line 1337 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c136: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1337 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c137: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1331 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c138: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1331 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c139: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1331 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c140: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1331 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c141: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1343 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c142: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1343 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c143: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1343 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c144: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1343 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c145: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1377 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, -1, 16, opPlus, nextPC-hostPC);

      		return result;

      

      	// Not "user" instructions:

      //	| BOUNDod(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDod", DIS_REG32, DIS_MEM);

      

      //	| BOUNDow(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDow", DIS_REG16, DIS_MEM);

      

      //	  | ARPL(Eaddr, reg ) =>

      //		  unused(Eaddr); unused(reg);

      //		  stmts = instantiate(pc,  "UNIMP");

      

      //	  | AAS() =>

      //		  stmts = instantiate(pc,  "AAS");

      

      //	  | AAM() =>

      //		  stmts = instantiate(pc,  "AAM");

      

      //	  | AAD() =>

      //		  stmts = instantiate(pc,  "AAD");

      

      //	  | AAA() =>

      //		  stmts = instantiate(pc,  "AAA");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c146: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1377 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, -1, 16, opPlus, nextPC-hostPC);

      		return result;

      

      	// Not "user" instructions:

      //	| BOUNDod(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDod", DIS_REG32, DIS_MEM);

      

      //	| BOUNDow(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDow", DIS_REG16, DIS_MEM);

      

      //	  | ARPL(Eaddr, reg ) =>

      //		  unused(Eaddr); unused(reg);

      //		  stmts = instantiate(pc,  "UNIMP");

      

      //	  | AAS() =>

      //		  stmts = instantiate(pc,  "AAS");

      

      //	  | AAM() =>

      //		  stmts = instantiate(pc,  "AAM");

      

      //	  | AAD() =>

      //		  stmts = instantiate(pc,  "AAD");

      

      //	  | AAA() =>

      //		  stmts = instantiate(pc,  "AAA");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c147: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1377 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, -1, 16, opPlus, nextPC-hostPC);

      		return result;

      

      	// Not "user" instructions:

      //	| BOUNDod(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDod", DIS_REG32, DIS_MEM);

      

      //	| BOUNDow(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDow", DIS_REG16, DIS_MEM);

      

      //	  | ARPL(Eaddr, reg ) =>

      //		  unused(Eaddr); unused(reg);

      //		  stmts = instantiate(pc,  "UNIMP");

      

      //	  | AAS() =>

      //		  stmts = instantiate(pc,  "AAS");

      

      //	  | AAM() =>

      //		  stmts = instantiate(pc,  "AAM");

      

      //	  | AAD() =>

      //		  stmts = instantiate(pc,  "AAD");

      

      //	  | AAA() =>

      //		  stmts = instantiate(pc,  "AAA");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c148: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1377 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, -1, 16, opPlus, nextPC-hostPC);

      		return result;

      

      	// Not "user" instructions:

      //	| BOUNDod(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDod", DIS_REG32, DIS_MEM);

      

      //	| BOUNDow(reg, Mem) =>

      //		stmts = instantiate(pc,	 "BOUNDow", DIS_REG16, DIS_MEM);

      

      //	  | ARPL(Eaddr, reg ) =>

      //		  unused(Eaddr); unused(reg);

      //		  stmts = instantiate(pc,  "UNIMP");

      

      //	  | AAS() =>

      //		  stmts = instantiate(pc,  "AAS");

      

      //	  | AAM() =>

      //		  stmts = instantiate(pc,  "AAM");

      

      //	  | AAD() =>

      //		  stmts = instantiate(pc,  "AAD");

      

      //	  | AAA() =>

      //		  stmts = instantiate(pc,  "AAA");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c149: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 1367 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, 16, 16, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c150: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 1367 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, 16, 16, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c151: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 1367 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, 16, 16, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c152: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 1367 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRow", DIS_REG16, DIS_EADDR16);

      		genBSFR(pc, DIS_REG16, DIS_EADDR16, 16, 16, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c153: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 943 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c154: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 943 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c155: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 943 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c156: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 943 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c157: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 952 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c158: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 952 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c159: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 952 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c160: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned r16 = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 952 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebow", DIS_R16, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c161: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 357 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c162: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 357 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c163: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 9 + MATCH_p; 
      
#line 357 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c164: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 3 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_24 >> 3 & 0x7) /* reg_opcode at 24 */;
      nextPC = 8 + MATCH_p; 
      
#line 357 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c165: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1510 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c166: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1510 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c167: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1510 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c168: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1510 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c169: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1504 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c170: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1504 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c171: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1504 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c172: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1504 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c173: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1438 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c174: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1438 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c175: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1438 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c176: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1438 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c177: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c178: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c179: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c180: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c181: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1498 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c182: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1498 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c183: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1498 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c184: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1498 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c185: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1492 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c186: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1492 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c187: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1492 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c188: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1492 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c189: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1426 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c190: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1426 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c191: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1426 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c192: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1426 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c193: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1420 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c194: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1420 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c195: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1420 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c196: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1420 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c197: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1486 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c198: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1486 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c199: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1486 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c200: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1486 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c201: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1480 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c202: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1480 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c203: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1480 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c204: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1480 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c205: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1414 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c206: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1414 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c207: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1414 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c208: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1414 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c209: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1408 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c210: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1408 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c211: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1408 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c212: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1408 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c213: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 5 + MATCH_p; 
      
#line 1157 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivw", DIS_REG16, DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c214: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1157 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivw", DIS_REG16, DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c215: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 10 + MATCH_p; 
      
#line 1157 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivw", DIS_REG16, DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c216: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 9 + MATCH_p; 
      
#line 1157 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivw", DIS_REG16, DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c217: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1163 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibow", DIS_REG16, DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c218: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 5 + MATCH_p; 
      
#line 1163 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibow", DIS_REG16, DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c219: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 9 + MATCH_p; 
      
#line 1163 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibow", DIS_REG16, DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c220: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1163 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibow", DIS_REG16, DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c221: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1645 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c222: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1645 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c223: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1645 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c224: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1645 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c225: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1642 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c226: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1642 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c227: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1642 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c228: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1642 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c229: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1639 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c230: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1639 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c231: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1639 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c232: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1639 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c233: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1636 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c234: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1636 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c235: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1636 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c236: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1636 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c237: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1633 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c238: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1633 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c239: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1633 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c240: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1633 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c241: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1630 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c242: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1630 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c243: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1630 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c244: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1630 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c245: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1627 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c246: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1627 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c247: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1627 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c248: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1627 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c249: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 1624 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c250: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 1624 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c251: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 1624 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c252: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 1624 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c253: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1034 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c254: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1034 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c255: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1034 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c256: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1034 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c257: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1597 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c258: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1597 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c259: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1597 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c260: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1597 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c261: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1591 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c262: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1591 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c263: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1591 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c264: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1591 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c265: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1585 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c266: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1585 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c267: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1585 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c268: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1585 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c269: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1579 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c270: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1579 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c271: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1579 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c272: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1579 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c273: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1573 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c274: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1573 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c275: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1573 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c276: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1573 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c277: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1564 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c278: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1564 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c279: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1564 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c280: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1564 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c281: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1558 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c282: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1558 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c283: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1558 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c284: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1558 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c285: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1552 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c286: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1552 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c287: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1552 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c288: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1552 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiowb", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c289: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1025 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c290: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1025 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c291: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1025 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c292: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1025 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmow", DIS_REG16, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c293: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 381 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c294: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 381 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c295: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 381 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c296: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 381 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c297: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1076 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.ow", DIS_REG16, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c298: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1076 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.ow", DIS_REG16, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c299: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1076 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.ow", DIS_REG16, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c300: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 321 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c301: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 321 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c302: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 321 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c303: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 321 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvow", DIS_EADDR16, DIS_REG16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c304: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 880 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evow", DIS_EADDR16);

      

      //	  | OUTSvod() =>

      //		  stmts = instantiate(pc,  "OUTSvod");

      

      //	  | OUTSvow() =>

      //		  stmts = instantiate(pc,  "OUTSvow");

      

      //	  | OUTSB() =>

      //		  stmts = instantiate(pc,  "OUTSB");

      

      //	  | OUT.DX.eAXod() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXod");

      

      //	  | OUT.DX.eAXow() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXow");

      

      //	  | OUT.DX.AL() =>

      //		  stmts = instantiate(pc,  "OUT.DX.AL");

      

      //	  | OUT.Ib.eAXod(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXod", DIS_I8);

      

      //	  | OUT.Ib.eAXow(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXow", DIS_I8);

      

      //	  | OUT.Ib.AL(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.AL", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c305: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 880 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evow", DIS_EADDR16);

      

      //	  | OUTSvod() =>

      //		  stmts = instantiate(pc,  "OUTSvod");

      

      //	  | OUTSvow() =>

      //		  stmts = instantiate(pc,  "OUTSvow");

      

      //	  | OUTSB() =>

      //		  stmts = instantiate(pc,  "OUTSB");

      

      //	  | OUT.DX.eAXod() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXod");

      

      //	  | OUT.DX.eAXow() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXow");

      

      //	  | OUT.DX.AL() =>

      //		  stmts = instantiate(pc,  "OUT.DX.AL");

      

      //	  | OUT.Ib.eAXod(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXod", DIS_I8);

      

      //	  | OUT.Ib.eAXow(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXow", DIS_I8);

      

      //	  | OUT.Ib.AL(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.AL", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c306: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 880 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evow", DIS_EADDR16);

      

      //	  | OUTSvod() =>

      //		  stmts = instantiate(pc,  "OUTSvod");

      

      //	  | OUTSvow() =>

      //		  stmts = instantiate(pc,  "OUTSvow");

      

      //	  | OUTSB() =>

      //		  stmts = instantiate(pc,  "OUTSB");

      

      //	  | OUT.DX.eAXod() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXod");

      

      //	  | OUT.DX.eAXow() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXow");

      

      //	  | OUT.DX.AL() =>

      //		  stmts = instantiate(pc,  "OUT.DX.AL");

      

      //	  | OUT.Ib.eAXod(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXod", DIS_I8);

      

      //	  | OUT.Ib.eAXow(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXow", DIS_I8);

      

      //	  | OUT.Ib.AL(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.AL", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c307: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 880 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evow", DIS_EADDR16);

      

      //	  | OUTSvod() =>

      //		  stmts = instantiate(pc,  "OUTSvod");

      

      //	  | OUTSvow() =>

      //		  stmts = instantiate(pc,  "OUTSvow");

      

      //	  | OUTSB() =>

      //		  stmts = instantiate(pc,  "OUTSB");

      

      //	  | OUT.DX.eAXod() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXod");

      

      //	  | OUT.DX.eAXow() =>

      //		  stmts = instantiate(pc,  "OUT.DX.eAXow");

      

      //	  | OUT.DX.AL() =>

      //		  stmts = instantiate(pc,  "OUT.DX.AL");

      

      //	  | OUT.Ib.eAXod(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXod", DIS_I8);

      

      //	  | OUT.Ib.eAXow(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.eAXow", DIS_I8);

      

      //	  | OUT.Ib.AL(i8) =>

      //		  stmts = instantiate(pc,  "OUT.Ib.AL", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c308: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 638 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c309: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 638 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c310: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 638 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c311: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 638 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c312: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 632 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c313: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 632 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c314: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 632 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c315: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 632 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c316: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 626 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c317: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 626 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c318: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 626 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c319: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 626 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c320: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 620 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c321: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 620 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c322: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 620 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c323: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 620 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c324: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 614 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c325: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 614 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c326: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 614 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c327: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 614 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c328: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 608 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c329: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 608 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c330: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 608 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c331: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 608 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c332: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 602 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c333: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 602 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c334: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 602 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c335: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 602 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibow", DIS_EADDR16, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c336: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_24 & 0xffff) /* i16 at 24 */, 16);
      nextPC = 5 + MATCH_p; 
      
#line 983 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ew.Ivow", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c337: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_32 & 0xffff) /* i16 at 32 */, 16);
      nextPC = 6 + MATCH_p; 
      
#line 983 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ew.Ivow", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c338: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_64 & 0xffff) /* i16 at 64 */, 16);
      nextPC = 10 + MATCH_p; 
      
#line 983 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ew.Ivow", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c339: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~32768..32767] */ i16 = 
        sign_extend((MATCH_w_16_56 & 0xffff) /* i16 at 56 */, 16);
      nextPC = 9 + MATCH_p; 
      
#line 983 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ew.Ivow", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c340: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 743 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c341: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 743 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c342: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 743 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c343: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 743 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c344: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 731 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORB.Ev.1owR", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c345: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 731 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORB.Ev.1owR", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c346: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 731 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORB.Ev.1owR", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c347: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 731 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORB.Ev.1owR", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c348: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 719 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c349: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 719 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c350: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 719 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c351: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 719 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c352: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 707 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c353: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 707 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c354: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 707 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c355: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 707 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c356: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 695 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c357: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 695 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c358: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 695 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c359: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 695 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c360: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 683 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c361: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 683 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c362: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 683 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c363: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 683 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c364: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 671 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c365: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 671 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c366: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 671 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c367: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 671 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1ow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c368: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 737 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c369: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 737 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c370: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 737 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c371: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 737 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c372: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 725 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c373: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 725 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c374: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 725 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c375: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 725 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c376: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 713 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c377: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 713 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c378: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 713 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c379: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 713 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c380: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 701 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c381: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 701 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c382: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 701 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c383: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 701 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c384: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 689 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c385: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 689 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c386: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 689 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c387: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 689 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c388: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 677 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c389: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 677 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c390: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 677 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c391: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 677 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c392: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 665 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c393: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 665 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c394: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 665 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c395: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 665 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c396: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned i16 = (MATCH_w_16_24 & 0xffff) /* i16 at 24 */;
      nextPC = 5 + MATCH_p; 
      
#line 390 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ew.Iw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c397: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned i16 = (MATCH_w_16_32 & 0xffff) /* i16 at 32 */;
      nextPC = 6 + MATCH_p; 
      
#line 390 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ew.Iw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c398: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned i16 = (MATCH_w_16_64 & 0xffff) /* i16 at 64 */;
      nextPC = 10 + MATCH_p; 
      
#line 390 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ew.Iw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c399: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned i16 = (MATCH_w_16_56 & 0xffff) /* i16 at 56 */;
      nextPC = 9 + MATCH_p; 
      
#line 390 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ew.Iw", DIS_EADDR16, DIS_I16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c400: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 913 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c401: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 913 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c402: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 913 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c403: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 913 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c404: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 922 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c405: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 922 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c406: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 922 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c407: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 922 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c408: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 931 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c409: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 931 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c410: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 931 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c411: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 931 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c412: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1175 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c413: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1175 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c414: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1175 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c415: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1175 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c416: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1199 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c417: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1199 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c418: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1199 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c419: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1199 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c420: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1184 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c421: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1184 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c422: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1184 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c423: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1184 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVAX", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c424: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1130 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c425: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1130 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c426: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1130 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c427: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1130 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c428: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1214 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c429: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1214 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c430: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1214 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c431: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1214 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evow", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c432: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 841 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evow", DIS_EADDR16);

      

      //	  | POPFod() =>

      //		  stmts = instantiate(pc,  "POPFod");

      

      //	  | POPFow() =>

      //		  stmts = instantiate(pc,  "POPFow");

      

      //	  | POPAod() =>

      //		  stmts = instantiate(pc,  "POPAod");

      

      //	  | POPAow() =>

      //		  stmts = instantiate(pc,  "POPAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c433: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 841 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evow", DIS_EADDR16);

      

      //	  | POPFod() =>

      //		  stmts = instantiate(pc,  "POPFod");

      

      //	  | POPFow() =>

      //		  stmts = instantiate(pc,  "POPFow");

      

      //	  | POPAod() =>

      //		  stmts = instantiate(pc,  "POPAod");

      

      //	  | POPAow() =>

      //		  stmts = instantiate(pc,  "POPAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c434: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 841 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evow", DIS_EADDR16);

      

      //	  | POPFod() =>

      //		  stmts = instantiate(pc,  "POPFod");

      

      //	  | POPFow() =>

      //		  stmts = instantiate(pc,  "POPFow");

      

      //	  | POPAod() =>

      //		  stmts = instantiate(pc,  "POPAod");

      

      //	  | POPAow() =>

      //		  stmts = instantiate(pc,  "POPAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c435: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 841 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evow", DIS_EADDR16);

      

      //	  | POPFod() =>

      //		  stmts = instantiate(pc,  "POPFod");

      

      //	  | POPFow() =>

      //		  stmts = instantiate(pc,  "POPFow");

      

      //	  | POPAod() =>

      //		  stmts = instantiate(pc,  "POPAod");

      

      //	  | POPAow() =>

      //		  stmts = instantiate(pc,  "POPAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c436: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1669 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c437: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1669 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c438: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1669 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c439: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1669 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c440: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1666 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c441: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1666 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c442: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1666 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c443: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1666 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c444: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1663 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c445: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1663 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c446: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1663 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c447: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1663 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c448: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1660 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c449: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1660 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c450: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1660 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c451: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1660 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c452: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1657 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c453: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1657 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c454: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1657 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c455: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1657 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c456: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1654 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c457: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1654 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c458: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1654 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c459: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1654 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c460: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1651 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c461: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1651 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c462: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1651 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c463: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1651 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c464: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1648 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c465: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1648 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c466: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1648 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c467: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1648 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c468: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1621 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c469: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1621 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c470: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1621 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c471: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1621 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c472: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1618 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c473: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1618 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c474: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1618 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c475: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1618 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c476: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1615 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c477: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1615 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c478: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1615 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c479: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1615 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c480: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1612 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c481: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1612 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c482: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1612 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c483: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1612 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c484: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1609 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c485: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1609 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c486: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1609 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c487: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1609 "decoder.m"
      

      		stmts = instantiate(pc,	 "ANDid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c488: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1606 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c489: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1606 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c490: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1606 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c491: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1606 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c492: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1603 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c493: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1603 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c494: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1603 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c495: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1603 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c496: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 1600 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c497: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 1600 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c498: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 1600 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c499: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 1600 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPid", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c500: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1594 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c501: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1594 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c502: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1594 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c503: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1594 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c504: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1588 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c505: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1588 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c506: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1588 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c507: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1588 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c508: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1582 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c509: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1582 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c510: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1582 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c511: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1582 "decoder.m"
      

      		stmts = instantiate(pc,	 "ADCiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c512: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1576 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c513: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1576 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c514: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1576 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c515: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1576 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c516: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1567 "decoder.m"
      

      		// Special hack to ignore and $0xfffffff0, %esp

      		Exp* oper = dis_Eaddr(Eaddr, 32);

      		if (i8 != -16 || !(*oper == *Location::regOf(28)))

      			stmts = instantiate(pc,	 "ANDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c517: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1567 "decoder.m"
      

      		// Special hack to ignore and $0xfffffff0, %esp

      		Exp* oper = dis_Eaddr(Eaddr, 32);

      		if (i8 != -16 || !(*oper == *Location::regOf(28)))

      			stmts = instantiate(pc,	 "ANDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c518: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1567 "decoder.m"
      

      		// Special hack to ignore and $0xfffffff0, %esp

      		Exp* oper = dis_Eaddr(Eaddr, 32);

      		if (i8 != -16 || !(*oper == *Location::regOf(28)))

      			stmts = instantiate(pc,	 "ANDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c519: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1567 "decoder.m"
      

      		// Special hack to ignore and $0xfffffff0, %esp

      		Exp* oper = dis_Eaddr(Eaddr, 32);

      		if (i8 != -16 || !(*oper == *Location::regOf(28)))

      			stmts = instantiate(pc,	 "ANDiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c520: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1561 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c521: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1561 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c522: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1561 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c523: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1561 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c524: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1555 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c525: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1555 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c526: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1555 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c527: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1555 "decoder.m"
      

      		stmts = instantiate(pc,	 "XORiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c528: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 1549 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c529: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1549 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c530: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1549 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c531: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 1549 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPiodb", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c532: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 384 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c533: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 384 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c534: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 384 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c535: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 384 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c536: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 378 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c537: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 378 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c538: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 378 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c539: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 378 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c540: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 324 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c541: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 324 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c542: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 324 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c543: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 324 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c544: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 318 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c545: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 318 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c546: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 318 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c547: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 318 "decoder.m"
      

      		stmts = instantiate(pc,	 "XCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c548: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 659 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c549: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 659 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c550: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 659 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c551: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 659 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c552: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 656 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c553: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 656 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c554: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 656 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c555: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 656 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c556: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 653 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c557: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 653 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c558: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 653 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c559: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 653 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c560: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 650 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c561: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 650 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c562: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 650 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c563: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 650 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c564: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 647 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c565: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 647 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c566: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 647 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c567: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 647 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c568: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 644 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c569: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 644 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c570: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 644 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c571: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 644 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c572: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 641 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c573: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 641 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c574: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 641 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c575: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 641 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c576: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 635 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c577: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 635 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c578: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 635 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c579: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 635 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c580: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 629 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c581: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 629 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c582: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 629 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c583: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 629 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c584: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 623 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c585: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 623 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c586: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 623 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c587: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 623 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c588: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 617 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c589: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 617 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c590: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 617 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c591: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 617 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c592: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 611 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c593: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 611 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c594: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 611 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c595: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 611 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c596: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 605 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c597: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 605 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c598: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 605 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c599: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 605 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c600: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 599 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c601: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 599 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c602: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 599 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c603: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 599 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.Ibod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c604: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1067 "decoder.m"
      

      		stmts = instantiate(pc,	 "LES", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c605: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1067 "decoder.m"
      

      		stmts = instantiate(pc,	 "LES", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c606: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1067 "decoder.m"
      

      		stmts = instantiate(pc,	 "LES", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c607: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1079 "decoder.m"
      

      		stmts = instantiate(pc,	 "LDS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c608: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1079 "decoder.m"
      

      		stmts = instantiate(pc,	 "LDS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c609: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1079 "decoder.m"
      

      		stmts = instantiate(pc,	 "LDS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c610: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      nextPC = 3 + MATCH_p; 
      
#line 986 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c611: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 986 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c612: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 986 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c613: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      nextPC = 7 + MATCH_p; 
      
#line 986 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c614: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 980 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ed.Ivod", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c615: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 980 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ed.Ivod", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c616: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 980 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ed.Ivod", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c617: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 980 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOV.Ed.Ivod", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c618: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 785 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.1", DIS_EADDR8);

      

      	// There is no SSL for these, so don't call instantiate, it will only

      	// cause an assert failure. Also, may as well treat these as invalid instr

      //	  | PUSHFod() =>

      //		  stmts = instantiate(pc,  "PUSHFod");

      

      //	  | PUSHFow() =>

      //		  stmts = instantiate(pc,  "PUSHFow");

      

      //	  | PUSHAod() =>

      //		  stmts = instantiate(pc,  "PUSHAod");

      

      //	  | PUSHAow() =>

      //		  stmts = instantiate(pc,  "PUSHAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c619: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 785 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.1", DIS_EADDR8);

      

      	// There is no SSL for these, so don't call instantiate, it will only

      	// cause an assert failure. Also, may as well treat these as invalid instr

      //	  | PUSHFod() =>

      //		  stmts = instantiate(pc,  "PUSHFod");

      

      //	  | PUSHFow() =>

      //		  stmts = instantiate(pc,  "PUSHFow");

      

      //	  | PUSHAod() =>

      //		  stmts = instantiate(pc,  "PUSHAod");

      

      //	  | PUSHAow() =>

      //		  stmts = instantiate(pc,  "PUSHAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c620: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 785 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.1", DIS_EADDR8);

      

      	// There is no SSL for these, so don't call instantiate, it will only

      	// cause an assert failure. Also, may as well treat these as invalid instr

      //	  | PUSHFod() =>

      //		  stmts = instantiate(pc,  "PUSHFod");

      

      //	  | PUSHFow() =>

      //		  stmts = instantiate(pc,  "PUSHFow");

      

      //	  | PUSHAod() =>

      //		  stmts = instantiate(pc,  "PUSHAod");

      

      //	  | PUSHAow() =>

      //		  stmts = instantiate(pc,  "PUSHAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c621: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 785 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.1", DIS_EADDR8);

      

      	// There is no SSL for these, so don't call instantiate, it will only

      	// cause an assert failure. Also, may as well treat these as invalid instr

      //	  | PUSHFod() =>

      //		  stmts = instantiate(pc,  "PUSHFod");

      

      //	  | PUSHFow() =>

      //		  stmts = instantiate(pc,  "PUSHFow");

      

      //	  | PUSHAod() =>

      //		  stmts = instantiate(pc,  "PUSHAod");

      

      //	  | PUSHAow() =>

      //		  stmts = instantiate(pc,  "PUSHAow");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c622: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 779 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c623: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 779 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c624: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 779 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c625: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 779 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c626: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 773 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c627: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 773 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c628: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 773 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c629: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 773 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c630: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 767 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c631: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 767 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c632: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 767 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c633: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 767 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c634: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 761 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c635: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 761 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c636: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 761 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c637: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 761 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c638: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 755 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c639: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 755 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c640: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 755 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c641: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 755 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.1", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c642: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 749 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.1", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c643: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 749 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.1", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c644: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 749 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.1", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c645: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 749 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.1", DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c646: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 740 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c647: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 740 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c648: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 740 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c649: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 740 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c650: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 728 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c651: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 728 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c652: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 728 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c653: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 728 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c654: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 716 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c655: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 716 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c656: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 716 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c657: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 716 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c658: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 704 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c659: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 704 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c660: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 704 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c661: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 704 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c662: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 692 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c663: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 692 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c664: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 692 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c665: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 692 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c666: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 680 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c667: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 680 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c668: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 680 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c669: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 680 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c670: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 668 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c671: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 668 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c672: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 668 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c673: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 668 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.1od", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c674: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 782 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c675: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 782 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c676: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 782 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c677: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 782 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c678: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 776 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c679: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 776 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c680: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 776 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c681: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 776 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c682: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 770 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c683: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 770 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c684: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 770 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c685: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 770 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c686: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 764 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c687: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 764 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c688: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 764 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c689: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 764 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c690: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 758 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c691: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 758 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c692: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 758 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c693: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 758 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c694: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 752 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c695: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 752 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c696: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 752 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c697: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 752 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Eb.CL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c698: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 746 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.CL", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c699: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 746 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.CL", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c700: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 746 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.CL", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c701: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 746 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Eb.CL", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c702: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 734 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c703: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 734 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c704: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 734 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c705: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 734 "decoder.m"
      

      		stmts = instantiate(pc,	 "ROLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c706: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 722 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c707: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 722 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c708: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 722 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c709: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 722 "decoder.m"
      

      		stmts = instantiate(pc,	 "RORB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c710: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 710 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c711: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 710 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c712: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 710 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c713: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 710 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCLB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c714: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 698 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c715: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 698 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c716: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 698 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c717: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 698 "decoder.m"
      

      		stmts = instantiate(pc,	 "RCRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c718: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 686 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c719: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 686 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c720: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 686 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c721: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 686 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLSALB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c722: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 674 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c723: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 674 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c724: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 674 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c725: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 674 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c726: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 662 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c727: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 662 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c728: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 662 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c729: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 662 "decoder.m"
      

      		stmts = instantiate(pc,	 "SARB.Ev.CLod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c730: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i8 = (MATCH_w_8_16 & 0xff) /* i8 at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 393 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c731: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i8 = (MATCH_w_8_24 & 0xff) /* i8 at 24 */;
      nextPC = 4 + MATCH_p; 
      
#line 393 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c732: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i8 = (MATCH_w_8_56 & 0xff) /* i8 at 56 */;
      nextPC = 8 + MATCH_p; 
      
#line 393 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c733: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i8 = (MATCH_w_8_48 & 0xff) /* i8 at 48 */;
      nextPC = 7 + MATCH_p; 
      
#line 393 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Eb.Ib", DIS_EADDR8, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c734: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 916 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c735: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 916 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c736: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 916 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c737: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 916 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c738: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 925 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c739: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 925 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c740: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 925 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c741: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 925 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c742: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 934 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c743: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 934 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c744: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 934 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c745: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 934 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c746: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1178 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c747: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1178 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c748: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1178 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c749: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1178 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c750: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1202 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c751: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1202 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c752: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1202 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c753: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1202 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVAL", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c754: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1187 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIV", DIS_EADDR8); /* ?? */

      

      //	| HLT() =>

      //		stmts = instantiate(pc,	 "HLT");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c755: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1187 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIV", DIS_EADDR8); /* ?? */

      

      //	| HLT() =>

      //		stmts = instantiate(pc,	 "HLT");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c756: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1187 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIV", DIS_EADDR8); /* ?? */

      

      //	| HLT() =>

      //		stmts = instantiate(pc,	 "HLT");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c757: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1187 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIV", DIS_EADDR8); /* ?? */

      

      //	| HLT() =>

      //		stmts = instantiate(pc,	 "HLT");

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c758: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      nextPC = 6 + MATCH_p; 
      
#line 387 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ed.Id", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c759: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      nextPC = 7 + MATCH_p; 
      
#line 387 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ed.Id", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c760: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      nextPC = 11 + MATCH_p; 
      
#line 387 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ed.Id", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c761: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      nextPC = 10 + MATCH_p; 
      
#line 387 "decoder.m"
      

      		stmts = instantiate(pc,	 "TEST.Ed.Id", DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c762: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 910 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c763: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 910 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c764: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 910 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c765: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 910 "decoder.m"
      

      		stmts = instantiate(pc,	 "NOTod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c766: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 919 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c767: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 919 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c768: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 919 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c769: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 919 "decoder.m"
      

      		stmts = instantiate(pc,	 "NEGod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c770: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 928 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c771: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 928 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c772: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 928 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c773: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 928 "decoder.m"
      

      		stmts = instantiate(pc,	 "MUL.AXod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c774: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1172 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c775: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1172 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c776: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1172 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c777: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1172 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c778: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1196 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c779: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1196 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c780: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1196 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c781: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1196 "decoder.m"
      

      		stmts = instantiate(pc,	 "DIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c782: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1181 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c783: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1181 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c784: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1181 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c785: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1181 "decoder.m"
      

      		stmts = instantiate(pc,	 "IDIVeAX", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c786: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1543 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c787: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1543 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c788: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1543 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c789: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1543 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c790: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1513 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c791: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1513 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c792: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1513 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c793: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1513 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c794: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1471 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c795: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1471 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c796: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1471 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c797: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1471 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c798: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1441 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c799: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1441 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c800: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1441 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c801: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1441 "decoder.m"
      

      		stmts = instantiate(pc,	 "ORrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c802: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SLDT", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c803: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SLDT", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c804: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SLDT", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c805: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SLDT", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c806: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 405 "decoder.m"
      

      		stmts = instantiate(pc,	 "STR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c807: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 405 "decoder.m"
      

      		stmts = instantiate(pc,	 "STR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c808: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 405 "decoder.m"
      

      		stmts = instantiate(pc,	 "STR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c809: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1040 "decoder.m"
      

      		stmts = instantiate(pc,	 "LTR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c810: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1040 "decoder.m"
      

      		stmts = instantiate(pc,	 "LTR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c811: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1040 "decoder.m"
      

      		stmts = instantiate(pc,	 "LTR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c812: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1040 "decoder.m"
      

      		stmts = instantiate(pc,	 "LTR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c813: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 375 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c814: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 375 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c815: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 375 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c816: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 375 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERR", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c817: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 372 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c818: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 372 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c819: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 372 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c820: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 372 "decoder.m"
      

      		stmts = instantiate(pc,	 "VERW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c821: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SGDT", DIS_MEM);

      

      	// Sets are now in the high level instructions

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c822: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SGDT", DIS_MEM);

      

      	// Sets are now in the high level instructions

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c823: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SGDT", DIS_MEM);

      

      	// Sets are now in the high level instructions

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c824: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 456 "decoder.m"
      

      		stmts = instantiate(pc,	 "SIDT", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c825: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 456 "decoder.m"
      

      		stmts = instantiate(pc,	 "SIDT", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c826: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 456 "decoder.m"
      

      		stmts = instantiate(pc,	 "SIDT", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c827: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 426 "decoder.m"
      

      		stmts = instantiate(pc,	 "SMSW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c828: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 426 "decoder.m"
      

      		stmts = instantiate(pc,	 "SMSW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c829: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 426 "decoder.m"
      

      		stmts = instantiate(pc,	 "SMSW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c830: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 426 "decoder.m"
      

      		stmts = instantiate(pc,	 "SMSW", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c831: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1095 "decoder.m"
      

      		stmts = instantiate(pc,	 "INVLPG", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c832: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1095 "decoder.m"
      

      		stmts = instantiate(pc,	 "INVLPG", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c833: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1095 "decoder.m"
      

      		stmts = instantiate(pc,	 "INVLPG", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c834: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1082 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.od", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c835: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1082 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.od", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c836: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1082 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.od", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c837: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1082 "decoder.m"
      

      		stmts = instantiate(pc,	 "LAR.od", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c838: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1046 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c839: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1046 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c840: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1046 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c841: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1046 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSLod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c842: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 305 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUL)

      	//| SETb.NO(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.O(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c843: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 305 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUL)

      	//| SETb.NO(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.O(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c844: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 305 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUL)

      	//| SETb.NO(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.O(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c845: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 305 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUL)

      	//| SETb.NO(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.O(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c846: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 302 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c847: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 302 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c848: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 302 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c849: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 302 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c850: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 299 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c851: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 299 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c852: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 299 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c853: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 299 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c854: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 296 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JNE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c855: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 296 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JNE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c856: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 296 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JNE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c857: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 296 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JNE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c858: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 293 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JULE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c859: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 293 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JULE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c860: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 293 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JULE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c861: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 293 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JULE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c862: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 290 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c863: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 290 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c864: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 290 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c865: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 290 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JUG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c866: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 287 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JMI)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c867: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 287 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JMI)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c868: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 287 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JMI)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c869: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 287 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JMI)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c870: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 284 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JPOS)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c871: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 284 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JPOS)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c872: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 284 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JPOS)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c873: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 284 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JPOS)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c874: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 275 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSL)

      	//| SETb.NP(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.P(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c875: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 275 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSL)

      	//| SETb.NP(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.P(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c876: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 275 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSL)

      	//| SETb.NP(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.P(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c877: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 275 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSL)

      	//| SETb.NP(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      	//| SETb.P(Eaddr) [name] =>

      	//	stmts = instantiate(pc, name, DIS_EADDR8);

      	//	SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c878: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 272 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c879: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 272 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c880: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 272 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c881: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 272 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSGE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c882: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 269 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSLE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c883: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 269 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSLE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c884: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 269 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSLE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c885: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 269 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSLE)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c886: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 266 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c887: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 266 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c888: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 266 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c889: (void)0; /*placeholder for label*/ 
    { 
      char *name = MATCH_name;
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 266 "decoder.m"
      

      		stmts = instantiate(pc, name, DIS_EADDR8);

      		SETS(name, DIS_EADDR8, BRANCH_JSG)

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c890: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1352 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c891: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1352 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c892: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1352 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c893: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1352 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c894: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1316 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c895: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1316 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c896: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1316 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c897: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1316 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c898: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_24 & 0xff) /* i8 at 24 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 444 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c899: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_32 & 0xff) /* i8 at 32 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 5 + MATCH_p; 
      
#line 444 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c900: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_64 & 0xff) /* i8 at 64 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 9 + MATCH_p; 
      
#line 444 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c901: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_56 & 0xff) /* i8 at 56 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 444 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c902: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_24 & 0xff) /* i8 at 24 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 450 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c903: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_32 & 0xff) /* i8 at 32 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 5 + MATCH_p; 
      
#line 450 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c904: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_64 & 0xff) /* i8 at 64 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 9 + MATCH_p; 
      
#line 450 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c905: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned count = (MATCH_w_8_56 & 0xff) /* i8 at 56 */;
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 450 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.Ibod", DIS_EADDR32, DIS_REG32, DIS_COUNT);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c906: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c907: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c908: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c909: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 432 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHLD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c910: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 438 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c911: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 438 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c912: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 438 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c913: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 438 "decoder.m"
      

      		stmts = instantiate(pc,	 "SHRD.CLod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c914: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1166 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c915: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1166 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c916: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1166 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c917: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1166 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMULrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c918: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1244 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c919: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1244 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c920: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1244 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c921: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1244 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c922: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1238 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c923: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1238 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c924: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1238 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c925: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1238 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c926: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1043 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c927: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1043 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c928: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1043 "decoder.m"
      

      		stmts = instantiate(pc,	 "LSS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c929: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1328 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c930: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1328 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c931: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1328 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c932: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1328 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c933: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1064 "decoder.m"
      

      		stmts = instantiate(pc,	 "LFS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c934: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1064 "decoder.m"
      

      		stmts = instantiate(pc,	 "LFS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c935: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1064 "decoder.m"
      

      		stmts = instantiate(pc,	 "LFS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c936: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1061 "decoder.m"
      

      		stmts = instantiate(pc,	 "LGS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c937: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1061 "decoder.m"
      

      		stmts = instantiate(pc,	 "LGS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c938: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1061 "decoder.m"
      

      		stmts = instantiate(pc,	 "LGS", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c939: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 940 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c940: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 940 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c941: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 940 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c942: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 940 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c943: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 937 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c944: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 937 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c945: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 937 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c946: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 937 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVZX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c947: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1346 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c948: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1346 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c949: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1346 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c950: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1346 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c951: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1310 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiod", DIS_I8, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c952: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1310 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiod", DIS_I8, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c953: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1310 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiod", DIS_I8, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c954: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1310 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTSiod", DIS_I8, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c955: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1322 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c956: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1322 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c957: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1322 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c958: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1322 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTRiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c959: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      nextPC = 4 + MATCH_p; 
      
#line 1334 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c960: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_32 & 0xff) /* i8 at 32 */, 8);
      nextPC = 5 + MATCH_p; 
      
#line 1334 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c961: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_64 & 0xff) /* i8 at 64 */, 8);
      nextPC = 9 + MATCH_p; 
      
#line 1334 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c962: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      nextPC = 8 + MATCH_p; 
      
#line 1334 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCiod", DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c963: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1340 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c964: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1340 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c965: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1340 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c966: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1340 "decoder.m"
      

      		stmts = instantiate(pc,	 "BTCod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c967: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1372 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFod", DIS_REG32, DIS_EADDR32);

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, -1, 32, opPlus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c968: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1372 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFod", DIS_REG32, DIS_EADDR32);

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, -1, 32, opPlus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c969: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1372 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFod", DIS_REG32, DIS_EADDR32);

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, -1, 32, opPlus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c970: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1372 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSFod", DIS_REG32, DIS_EADDR32);

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, -1, 32, opPlus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c971: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 1361 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRod", DIS_REG32, DIS_EADDR32);

      		// Bit Scan Forward: need helper function

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, 32, 32, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c972: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 1361 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRod", DIS_REG32, DIS_EADDR32);

      		// Bit Scan Forward: need helper function

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, 32, 32, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c973: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 1361 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRod", DIS_REG32, DIS_EADDR32);

      		// Bit Scan Forward: need helper function

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, 32, 32, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c974: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 1361 "decoder.m"
      

      		//stmts = instantiate(pc,  "BSRod", DIS_REG32, DIS_EADDR32);

      		// Bit Scan Forward: need helper function

      		genBSFR(pc, DIS_REG32, DIS_EADDR32, 32, 32, opMinus, nextPC-hostPC);

      		return result;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c975: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 949 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c976: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 949 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c977: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 949 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c978: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 949 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ebod", DIS_R32, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c979: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 946 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c980: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 946 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c981: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 946 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c982: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned r32 = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 946 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVSX.Gv.Ew", DIS_R32, DIS_EADDR16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c983: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 360 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c984: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 360 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c985: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 360 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c986: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 360 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Eb.Gb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c987: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 3 + MATCH_p; 
      
#line 354 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c988: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 4 + MATCH_p; 
      
#line 354 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c989: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 8 + MATCH_p; 
      
#line 354 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c990: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 2 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_16 >> 3 & 0x7) /* reg_opcode at 16 */;
      nextPC = 7 + MATCH_p; 
      
#line 354 "decoder.m"
      

      		stmts = instantiate(pc,	 "XADD.Ev.Gvod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c991: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 4 + MATCH_p; 
      
#line 1235 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG8B", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c992: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 8 + MATCH_p; 
      
#line 1235 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG8B", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c993: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 2 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1235 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPXCHG8B", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c994: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1537 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c995: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1537 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c996: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1537 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c997: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1537 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c998: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1501 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c999: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1501 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1000: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1501 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1001: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1501 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1002: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1465 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1003: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1465 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1004: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1465 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1005: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1465 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1006: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1007: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1008: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1009: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1429 "decoder.m"
      

      		stmts = instantiate(pc,	 "SBBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1010: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1531 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1011: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1531 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1012: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1531 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1013: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1531 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1014: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1489 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1015: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1489 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1016: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1489 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1017: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1489 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1018: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1019: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1020: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1021: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1459 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1022: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1417 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1023: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1417 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1024: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1417 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1025: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1417 "decoder.m"
      

      		stmts = instantiate(pc,	 "SUBrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1026: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1525 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1027: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1525 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1028: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1525 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1029: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1525 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrb", DIS_EADDR8, DIS_R8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1030: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1477 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1031: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1477 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1032: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1477 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1033: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1477 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1034: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1453 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1035: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1453 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1036: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1453 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1037: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned r8 = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1453 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmb", DIS_R8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1038: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1405 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1039: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1405 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1040: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1405 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1041: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1405 "decoder.m"
      

      		stmts = instantiate(pc,	 "CMPrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1042: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_16 /* i32 at 16 */;
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1154 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivd", DIS_REG32, DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1043: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_24 /* i32 at 24 */;
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1154 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivd", DIS_REG32, DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1044: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_56 /* i32 at 56 */;
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 11 + MATCH_p; 
      
#line 1154 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivd", DIS_REG32, DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1045: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned i32 = MATCH_w_32_48 /* i32 at 48 */;
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 10 + MATCH_p; 
      
#line 1154 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ivd", DIS_REG32, DIS_EADDR32, DIS_I32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1046: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1160 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibod", DIS_REG32, DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1047: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_24 & 0xff) /* i8 at 24 */, 8);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 4 + MATCH_p; 
      
#line 1160 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibod", DIS_REG32, DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1048: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_56 & 0xff) /* i8 at 56 */, 8);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 8 + MATCH_p; 
      
#line 1160 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibod", DIS_REG32, DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1049: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      int /* [~128..127] */ i8 = 
        sign_extend((MATCH_w_8_48 & 0xff) /* i8 at 48 */, 8);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1160 "decoder.m"
      

      		stmts = instantiate(pc,	 "IMUL.Ibod", DIS_REG32, DIS_EADDR32, DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1050: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1037 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1051: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1037 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1052: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1037 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1053: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1037 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrb", DIS_EADDR8, DIS_REG8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1054: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1031 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1055: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1031 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1056: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1031 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1057: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1031 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVmrod", DIS_EADDR32, DIS_REG32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1058: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1028 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmb", DIS_REG8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1059: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1028 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmb", DIS_REG8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1060: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1028 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmb", DIS_REG8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1061: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1028 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmb", DIS_REG8, DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1062: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 2 + MATCH_p; 
      
#line 1022 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1063: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1022 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1064: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1022 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1065: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1022 "decoder.m"
      

      		stmts = instantiate(pc,	 "MOVrmod", DIS_REG32, DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1066: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 3 + MATCH_p; 
      
#line 1073 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.od", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1067: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 7 + MATCH_p; 
      
#line 1073 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.od", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1068: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      unsigned reg = (MATCH_w_8_8 >> 3 & 0x7) /* reg_opcode at 8 */;
      nextPC = 6 + MATCH_p; 
      
#line 1073 "decoder.m"
      

      		stmts = instantiate(pc,	 "LEA.od", DIS_REG32, DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1069: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 877 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1070: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 877 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1071: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 877 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1072: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 877 "decoder.m"
      

      		stmts = instantiate(pc,	 "POP.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1073: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1760 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1074: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1760 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1075: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1760 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1076: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1954 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1077: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1954 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1078: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1954 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1079: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1793 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1080: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1793 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1081: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1793 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1082: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1805 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1083: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1805 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1084: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1805 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1085: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2044 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1086: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2044 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1087: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2044 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1088: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2065 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1089: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2065 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1090: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2065 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1091: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1838 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1092: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1838 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1093: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1838 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1094: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1859 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1095: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1859 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1096: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1859 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1097: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1910 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1098: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1910 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1099: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1910 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1100: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2011 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1101: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2011 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1102: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2011 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1103: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2017 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1104: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2017 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1105: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2017 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1106: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1951 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1107: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1951 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1108: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1951 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1109: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1948 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1110: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1948 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1111: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1948 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLDCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1112: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2035 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1113: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2035 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1114: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2035 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTENV", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1115: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2032 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1116: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2032 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1117: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2032 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTCW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1118: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1775 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1119: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1775 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1120: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1775 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1121: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1969 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1122: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1969 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1123: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1969 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1124: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1799 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1125: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1799 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1126: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1799 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1127: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1817 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1128: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1817 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1129: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1817 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1130: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2056 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1131: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2056 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1132: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2056 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1133: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2077 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1134: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2077 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1135: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2077 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1136: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1853 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1137: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1853 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1138: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1853 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1139: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1871 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1140: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1871 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1141: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1871 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1142: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1886 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1143: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1886 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1144: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1886 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1145: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1898 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1146: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1898 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1147: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1898 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1148: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1904 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1149: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1904 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1150: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem32 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1904 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI32", DIS_MEM32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1151: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1916 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD80", DIS_MEM80);

      

      /* This is a bit tricky. The FPUSH logically comes between the read of STi and

      # the write to ST0. In particular, FLD ST0 is supposed to duplicate the TOS.

      # This problem only happens with this load instruction, so there is a work

      # around here that gives us the SSL a value of i that is one more than in

      # the instruction */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1152: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1916 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD80", DIS_MEM80);

      

      /* This is a bit tricky. The FPUSH logically comes between the read of STi and

      # the write to ST0. In particular, FLD ST0 is supposed to duplicate the TOS.

      # This problem only happens with this load instruction, so there is a work

      # around here that gives us the SSL a value of i that is one more than in

      # the instruction */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1153: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1916 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD80", DIS_MEM80);

      

      /* This is a bit tricky. The FPUSH logically comes between the read of STi and

      # the write to ST0. In particular, FLD ST0 is supposed to duplicate the TOS.

      # This problem only happens with this load instruction, so there is a work

      # around here that gives us the SSL a value of i that is one more than in

      # the instruction */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1154: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2023 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP80", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1155: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2023 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP80", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1156: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2023 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP80", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1157: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1763 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1158: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1763 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1159: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1763 "decoder.m"
      

      		stmts = instantiate(pc,	 "FADD.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1160: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1957 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1161: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1957 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1162: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1957 "decoder.m"
      

      		stmts = instantiate(pc,	 "FMUL.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1163: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1796 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1164: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1796 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1165: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1796 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOM.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1166: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1808 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1167: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1808 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1168: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1808 "decoder.m"
      

      		stmts = instantiate(pc,	 "FCOMP.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1169: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2047 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1170: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2047 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1171: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2047 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUB.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1172: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2068 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1173: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2068 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1174: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2068 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSUBR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1175: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1841 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1176: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1841 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1177: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1841 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIV.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1178: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1862 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1179: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1862 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1180: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1862 "decoder.m"
      

      		stmts = instantiate(pc,	 "FDIVR.R64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1181: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1913 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1182: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1913 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1183: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1913 "decoder.m"
      

      		stmts = instantiate(pc,	 "FLD.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1184: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2014 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1185: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2014 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1186: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2014 "decoder.m"
      

      		stmts = instantiate(pc,	 "FST.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1187: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2020 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1188: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2020 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1189: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2020 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTP.lsR64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1190: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1993 "decoder.m"
      

      		stmts = instantiate(pc,	 "FRSTOR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1191: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1993 "decoder.m"
      

      		stmts = instantiate(pc,	 "FRSTOR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1192: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1993 "decoder.m"
      

      		stmts = instantiate(pc,	 "FRSTOR", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1193: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1996 "decoder.m"
      

      		stmts = instantiate(pc,	 "FNSAVE", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1194: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1996 "decoder.m"
      

      		stmts = instantiate(pc,	 "FNSAVE", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1195: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1996 "decoder.m"
      

      		stmts = instantiate(pc,	 "FNSAVE", DIS_MEM);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1196: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2038 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTSW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1197: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2038 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTSW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1198: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2038 "decoder.m"
      

      		stmts = instantiate(pc,	 "FSTSW", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1199: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1778 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1200: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1778 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1201: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1778 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIADD.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1202: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1972 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1203: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1972 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1204: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1972 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIMUL.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1205: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1802 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1206: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1802 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1207: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1802 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOM.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1208: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1820 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1209: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1820 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1210: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1820 "decoder.m"
      

      		stmts = instantiate(pc,	 "FICOMP.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1211: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2059 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1212: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2059 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1213: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2059 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUB.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1214: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 2080 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1215: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 2080 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1216: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 2080 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISUBR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1217: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1856 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1218: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1856 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1219: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1856 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIV.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1220: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1874 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1221: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1874 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1222: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1874 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIDIVR.I16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1223: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1883 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1224: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1883 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1225: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1883 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1226: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1895 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1227: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1895 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1228: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1895 "decoder.m"
      

      		stmts = instantiate(pc,	 "FIST.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1229: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1901 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1230: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1901 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1231: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem16 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1901 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP.lsI16", DIS_MEM16);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1232: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1781 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBLD", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1233: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1781 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBLD", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1234: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1781 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBLD", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1235: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1889 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1236: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1889 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1237: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1889 "decoder.m"
      

      		stmts = instantiate(pc,	 "FILD.lsI64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1238: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1784 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBSTP", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1239: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1784 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBSTP", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1240: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem80 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1784 "decoder.m"
      

      		stmts = instantiate(pc,	 "FBSTP", DIS_MEM80);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1241: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1907 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1242: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1907 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1243: (void)0; /*placeholder for label*/ 
    { 
      unsigned Mem64 = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1907 "decoder.m"
      

      		stmts = instantiate(pc,	 "FISTP64", DIS_MEM64);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1244: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1133 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Eb", DIS_EADDR8);

      

      //	  | IN.eAX.DXod() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXod");

      

      //	  | IN.eAX.DXow() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXow");

      

      //	  | IN.AL.DX() =>

      //		  stmts = instantiate(pc,  "IN.AL.DX");

      

      //	  | IN.eAX.Ibod(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibod", DIS_I8);

      

      //	  | IN.eAX.Ibow(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibow", DIS_I8);

      

      //	  | IN.AL.Ib(i8) =>

      //		  stmts = instantiate(pc,  "IN.AL.Ib", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1245: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1133 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Eb", DIS_EADDR8);

      

      //	  | IN.eAX.DXod() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXod");

      

      //	  | IN.eAX.DXow() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXow");

      

      //	  | IN.AL.DX() =>

      //		  stmts = instantiate(pc,  "IN.AL.DX");

      

      //	  | IN.eAX.Ibod(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibod", DIS_I8);

      

      //	  | IN.eAX.Ibow(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibow", DIS_I8);

      

      //	  | IN.AL.Ib(i8) =>

      //		  stmts = instantiate(pc,  "IN.AL.Ib", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1246: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1133 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Eb", DIS_EADDR8);

      

      //	  | IN.eAX.DXod() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXod");

      

      //	  | IN.eAX.DXow() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXow");

      

      //	  | IN.AL.DX() =>

      //		  stmts = instantiate(pc,  "IN.AL.DX");

      

      //	  | IN.eAX.Ibod(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibod", DIS_I8);

      

      //	  | IN.eAX.Ibow(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibow", DIS_I8);

      

      //	  | IN.AL.Ib(i8) =>

      //		  stmts = instantiate(pc,  "IN.AL.Ib", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1247: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1133 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Eb", DIS_EADDR8);

      

      //	  | IN.eAX.DXod() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXod");

      

      //	  | IN.eAX.DXow() =>

      //		  stmts = instantiate(pc,  "IN.eAX.DXow");

      

      //	  | IN.AL.DX() =>

      //		  stmts = instantiate(pc,  "IN.AL.DX");

      

      //	  | IN.eAX.Ibod(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibod", DIS_I8);

      

      //	  | IN.eAX.Ibow(i8) =>

      //		  stmts = instantiate(pc,  "IN.eAX.Ibow", DIS_I8);

      

      //	  | IN.AL.Ib(i8) =>

      //		  stmts = instantiate(pc,  "IN.AL.Ib", DIS_I8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1248: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1217 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Eb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1249: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1217 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Eb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1250: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1217 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Eb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1251: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1217 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Eb", DIS_EADDR8);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1252: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1127 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1253: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1127 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1254: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1127 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1255: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1127 "decoder.m"
      

      		stmts = instantiate(pc,	 "INC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1256: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 1211 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1257: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 1211 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1258: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 1211 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1259: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 1211 "decoder.m"
      

      		stmts = instantiate(pc,	 "DEC.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1260: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 115 "decoder.m"
      

      		/*

      		 * Register call

      		 */

      		// Mike: there should probably be a HLNwayCall class for this!

      		stmts = instantiate(pc,	 "CALL.Evod", DIS_EADDR32);

      		CallStatement* newCall = new CallStatement;

      		// Record the fact that this is a computed call

      		newCall->setIsComputed();

      		// Set the destination expression

      		newCall->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newCall);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1261: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 115 "decoder.m"
      

      		/*

      		 * Register call

      		 */

      		// Mike: there should probably be a HLNwayCall class for this!

      		stmts = instantiate(pc,	 "CALL.Evod", DIS_EADDR32);

      		CallStatement* newCall = new CallStatement;

      		// Record the fact that this is a computed call

      		newCall->setIsComputed();

      		// Set the destination expression

      		newCall->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newCall);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1262: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 115 "decoder.m"
      

      		/*

      		 * Register call

      		 */

      		// Mike: there should probably be a HLNwayCall class for this!

      		stmts = instantiate(pc,	 "CALL.Evod", DIS_EADDR32);

      		CallStatement* newCall = new CallStatement;

      		// Record the fact that this is a computed call

      		newCall->setIsComputed();

      		// Set the destination expression

      		newCall->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newCall);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1263: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 115 "decoder.m"
      

      		/*

      		 * Register call

      		 */

      		// Mike: there should probably be a HLNwayCall class for this!

      		stmts = instantiate(pc,	 "CALL.Evod", DIS_EADDR32);

      		CallStatement* newCall = new CallStatement;

      		// Record the fact that this is a computed call

      		newCall->setIsComputed();

      		// Set the destination expression

      		newCall->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newCall);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1264: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 131 "decoder.m"
      

      		/*

      		 * Register jump

      		 */

      		CaseStatement* newJump = new CaseStatement;

      		// Record the fact that this is a computed call

      		newJump->setIsComputed();

      		// Set the destination expression

      		newJump->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newJump);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      	

      	/*

      	 * Unconditional branches

      	 */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1265: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 131 "decoder.m"
      

      		/*

      		 * Register jump

      		 */

      		CaseStatement* newJump = new CaseStatement;

      		// Record the fact that this is a computed call

      		newJump->setIsComputed();

      		// Set the destination expression

      		newJump->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newJump);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      	

      	/*

      	 * Unconditional branches

      	 */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1266: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 131 "decoder.m"
      

      		/*

      		 * Register jump

      		 */

      		CaseStatement* newJump = new CaseStatement;

      		// Record the fact that this is a computed call

      		newJump->setIsComputed();

      		// Set the destination expression

      		newJump->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newJump);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      	

      	/*

      	 * Unconditional branches

      	 */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1267: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 131 "decoder.m"
      

      		/*

      		 * Register jump

      		 */

      		CaseStatement* newJump = new CaseStatement;

      		// Record the fact that this is a computed call

      		newJump->setIsComputed();

      		// Set the destination expression

      		newJump->setDest(DIS_EADDR32);

      		result.rtl = new RTL(pc, stmts);

      		result.rtl->appendStmt(newJump);

      		// Only one instruction, so size of result is size of this decode

      		//result.numBytes = nextPC - hostPC;

      	

      	/*

      	 * Unconditional branches

      	 */

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1268: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 2 + MATCH_p; 
      
#line 838 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1269: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 3 + MATCH_p; 
      
#line 838 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1270: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 7 + MATCH_p; 
      
#line 838 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_label_c1271: (void)0; /*placeholder for label*/ 
    { 
      unsigned Eaddr = 1 + addressToPC(MATCH_p);
      nextPC = 6 + MATCH_p; 
      
#line 838 "decoder.m"
      

      		stmts = instantiate(pc,	 "PUSH.Evod", DIS_EADDR32);

      

      
      
      
    } 
    goto MATCH_finished_c; 
    
  MATCH_finished_c: (void)0; /*placeholder for label*/
  
}

#line 2125 "decoder.m"

	if (result.rtl == 0)
		result.rtl = new RTL(pc, stmts);
	result.numBytes = nextPC - hostPC;
	return result;
}

/*==============================================================================
 * These are machine specific functions used to decode instruction operands into Exp*s.
 *============================================================================*/

/*==============================================================================
 * FUNCTION:		dis_Mem
 * OVERVIEW:		Converts a dynamic address to a Exp* expression.
 *					E.g. [1000] --> m[, 1000
 * PARAMETERS:		pc - the address of the Eaddr part of the instr
 *					expr - the expression that will be built
 * RETURNS:			the Exp* representation of the given Eaddr
 *============================================================================*/
Exp* PentiumDecoder::dis_Mem(ADDRESS pc)
{
	Exp* expr = NULL;
	lastDwordLc = -1;



#line 2148 "decoder.m"
{ 
  dword MATCH_p = 
    
#line 2148 "decoder.m"
    pc
    ;
  unsigned /* [0..255] */ MATCH_w_8_0;
  unsigned /* [0..255] */ MATCH_w_8_8;
  unsigned MATCH_w_32_8;
  unsigned /* [0..255] */ MATCH_w_8_16;
  unsigned MATCH_w_32_16;
  { 
    MATCH_w_8_0 = getByte(MATCH_p); 
    
      switch((MATCH_w_8_0 >> 6 & 0x3) /* mod at 0 */) {
        case 0: 
          
            switch((MATCH_w_8_0 & 0x7) /* r_m at 0 */) {
              case 0: case 1: case 2: case 3: case 6: case 7: 
                { 
                  unsigned base = (MATCH_w_8_0 & 0x7) /* r_m at 0 */;
                  
#line 2203 "decoder.m"
                   

                  			// m[ r[base] ]

                  			expr = Location::memOf(dis_Reg(24+base));

                  
                  
                  
                }
                
                break;
              case 4: 
                MATCH_w_8_8 = getByte(1 + MATCH_p); 
                if ((MATCH_w_8_8 & 0x7) /* base at 8 */ == 5) 
                  if ((MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */ == 4) { 
                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                    { 
                      unsigned d = MATCH_w_32_16 /* i32 at 16 */;
                      
#line 2213 "decoder.m"
                      

                      			// [d] (Same as Abs32 using SIB)

                      			expr = Location::memOf(addReloc(new Const(d)));

                      
                      
                      
                    }
                    
                  } /*opt-block*/
                  else { 
                    MATCH_w_32_16 = getDword(2 + MATCH_p); 
                    { 
                      unsigned d = MATCH_w_32_16 /* i32 at 16 */;
                      unsigned index = 
                        (MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */;
                      unsigned ss = (MATCH_w_8_8 >> 6 & 0x3) /* ss at 8 */;
                      
#line 2206 "decoder.m"
                      

                      			// m[ r[index] * ss + d ]

                      			expr = Location::memOf(new Binary(opPlus,

                      					new Binary(opMult,

                      						dis_Reg(24+index),

                      						new Const(1<<ss)),

                      					addReloc(new Const(d))));

                      
                      
                      
                    }
                    
                  } /*opt-block*/ /*opt-block+*/
                else 
                  if ((MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */ == 4) { 
                    unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                    
#line 2170 "decoder.m"
                    

                    			// m[ r[base] ]

                    			expr = Location::memOf(dis_Reg(24+base));

                    
                    
                    
                  } /*opt-block*//*opt-block+*/
                  else { 
                    unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                    unsigned index = 
                      (MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */;
                    unsigned ss = (MATCH_w_8_8 >> 6 & 0x3) /* ss at 8 */;
                    
#line 2163 "decoder.m"
                    

                    			// m[ r[base] + r[index] * ss]

                    			expr = Location::memOf(new Binary(opPlus,

                    					dis_Reg(24+base),

                    					new Binary(opMult,

                    						dis_Reg(24+index),

                    						new Const(1<<ss))));

                    
                    
                    
                  } /*opt-block*//*opt-block+*/ /*opt-block+*/
                
                break;
              case 5: 
                MATCH_w_32_8 = getDword(1 + MATCH_p); 
                { 
                  unsigned a = MATCH_w_32_8 /* i32 at 8 */;
                  
#line 2150 "decoder.m"
                  

                  			// [a]

                  			expr = Location::memOf(addReloc(new Const(a)));

                  
                  
                  
                }
                
                break;
              default: assert(0);
            } /* (MATCH_w_8_0 & 0x7) -- r_m at 0 --*/ 
          break;
        case 1: 
          if ((MATCH_w_8_0 & 0x7) /* r_m at 0 */ == 4) { 
            MATCH_w_8_8 = getByte(1 + MATCH_p); 
            if ((MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */ == 4) { 
              MATCH_w_8_16 = getByte(2 + MATCH_p); 
              { 
                unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                unsigned d = (MATCH_w_8_16 & 0xff) /* i8 at 16 */;
                
#line 2196 "decoder.m"
                

                			// m[ r[ base] + d ]

                			// Note: d should be sign extended; we do it here manually

                			signed char ds8 = d;

                			expr = Location::memOf(new Binary(opPlus,

                					dis_Reg(24+base),

                					new Const(ds8)));

                
                
                
              }
              
            } /*opt-block*/
            else { 
              MATCH_w_8_16 = getByte(2 + MATCH_p); 
              { 
                unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                int /* [~128..127] */ d = 
                  sign_extend((MATCH_w_8_16 & 0xff) /* i8 at 16 */, 8);
                unsigned index = (MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */;
                unsigned ss = (MATCH_w_8_8 >> 6 & 0x3) /* ss at 8 */;
                
#line 2187 "decoder.m"
                

                			// m[ r[ base ] + r[ index ] * ss + d ]

                			expr = Location::memOf(new Binary(opPlus,

                					dis_Reg(24+base),

                					new Binary(opPlus,

                						new Binary(opMult,

                							dis_Reg(24+index),

                							new Const(1<<ss)),

                						addReloc(new Const(d)))));

                
                
                
              }
              
            } /*opt-block*/
            
          } /*opt-block*/
          else { 
            MATCH_w_8_8 = getByte(1 + MATCH_p); 
            { 
              int /* [~128..127] */ d = 
                sign_extend((MATCH_w_8_8 & 0xff) /* i8 at 8 */, 8);
              unsigned r32 = (MATCH_w_8_0 & 0x7) /* r_m at 0 */;
              
#line 2158 "decoder.m"
               

              			// m[ r[ r32] + d]

              			expr = Location::memOf(new Binary(opPlus,

              					dis_Reg(24+r32),

              					addReloc(new Const(d))));

              
              
              
            }
            
          } /*opt-block*/
          break;
        case 2: 
          if ((MATCH_w_8_0 & 0x7) /* r_m at 0 */ == 4) { 
            MATCH_w_8_8 = getByte(1 + MATCH_p); 
            if ((MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */ == 4) { 
              MATCH_w_32_16 = getDword(2 + MATCH_p); 
              { 
                unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                unsigned d = MATCH_w_32_16 /* i32 at 16 */;
                
#line 2182 "decoder.m"
                

                			// m[ r[ base] + d ]

                			expr = Location::memOf(new Binary(opPlus,

                					dis_Reg(24+base),

                					addReloc(new Const(d))));

                
                
                
              }
              
            } /*opt-block*/
            else { 
              MATCH_w_32_16 = getDword(2 + MATCH_p); 
              { 
                unsigned base = (MATCH_w_8_8 & 0x7) /* base at 8 */;
                unsigned d = MATCH_w_32_16 /* i32 at 16 */;
                unsigned index = (MATCH_w_8_8 >> 3 & 0x7) /* index at 8 */;
                unsigned ss = (MATCH_w_8_8 >> 6 & 0x3) /* ss at 8 */;
                
#line 2173 "decoder.m"
                

                			// m[ r[ base ] + r[ index ] * ss + d ]

                			expr = Location::memOf(new Binary(opPlus,

                					dis_Reg(24+base),

                					new Binary(opPlus,

                						new Binary(opMult,

                							dis_Reg(24+index),

                							new Const(1<<ss)),

                						addReloc(new Const(d)))));

                
                
                
              }
              
            } /*opt-block*/
            
          } /*opt-block*/
          else { 
            MATCH_w_32_8 = getDword(1 + MATCH_p); 
            { 
              unsigned base = (MATCH_w_8_0 & 0x7) /* r_m at 0 */;
              unsigned d = MATCH_w_32_8 /* i32 at 8 */;
              
#line 2153 "decoder.m"
               

              			// m[ r[ base] + d]

              			expr = Location::memOf(new Binary(opPlus,

              					dis_Reg(24+base),

              					addReloc(new Const(d))));

              
              
              
            }
            
          } /*opt-block*/
          break;
        case 3: 
          assert(0);  /* no match */break;
        default: assert(0);
      } /* (MATCH_w_8_0 >> 6 & 0x3) -- mod at 0 --*/ 
    
  }goto MATCH_finished_b; 
  
  MATCH_finished_b: (void)0; /*placeholder for label*/
  
}

#line 2217 "decoder.m"
	return expr;
}

/*==============================================================================
 * FUNCTION:		dis_Eaddr
 * OVERVIEW:		Converts a dynamic address to a Exp* expression.
 *					E.g. %ecx --> r[ 25 ]
 * CALLED FROM:		Macros DIS_EADDR32, DIS_EADDR16 and DIS_EADDR8
 * PARAMETERS:		pc - the instruction stream address of the dynamic
 *					  address
 *					size - size of the operand (important if a register)
 * RETURNS:			the Exp* representation of the given Eaddr
 *============================================================================*/
Exp* PentiumDecoder::dis_Eaddr(ADDRESS pc, int size)
{


#line 2231 "decoder.m"
{ 
  dword MATCH_p = 
    
#line 2231 "decoder.m"
    pc
    ;
  unsigned /* [0..255] */ MATCH_w_8_0;
  unsigned /* [0..255] */ MATCH_w_8_8;
  { 
    MATCH_w_8_0 = getByte(MATCH_p); 
    if ((MATCH_w_8_0 >> 6 & 0x3) /* mod at 0 */ == 3) { 
      unsigned reg = (MATCH_w_8_0 & 0x7) /* r_m at 0 */;
      
#line 2235 "decoder.m"
      

      		Exp* e;

      		switch(size) {

      			case  8: e = dis_Reg(8+reg); break;

      			case 16: e = dis_Reg(0+reg); break;

      			default:

      			case 32: e = dis_Reg(24+reg); break;

      		}

      		return e;

      
      
      
    } /*opt-block*//*opt-block+*/
    else 
      goto MATCH_label_a0;  /*opt-block+*/
    
  }goto MATCH_finished_a; 
  
  MATCH_label_a0: (void)0; /*placeholder for label*/ 
    { 
      unsigned mem = addressToPC(MATCH_p);
      
#line 2232 "decoder.m"
      

      		return dis_Mem (mem);

      
      
      
    } 
    goto MATCH_finished_a; 
    
  MATCH_finished_a: (void)0; /*placeholder for label*/
  
}

#line 2245 "decoder.m"
}

/*==============================================================================
 * FUNCTION:	  isFuncPrologue()
 * OVERVIEW:	  Check to see if the instructions at the given offset match
 *					any callee prologue, i.e. does it look like this offset
 *					is a pointer to a function?
 * PARAMETERS:	  hostPC - pointer to the code in question (native address)
 * RETURNS:		  True if a match found
 *============================================================================*/
bool PentiumDecoder::isFuncPrologue(ADDRESS hostPC)
{
#if 0
	int locals, regs;
	if ((InstructionPatterns::frameless_pro(prog.csrSrc, hostPC, locals, regs))
		!= NULL)
			return true;
	if ((InstructionPatterns::struct_ptr(prog.csrSrc, hostPC, locals, regs))
		!= NULL)
			return true;
	if ((InstructionPatterns::std_entry(prog.csrSrc, hostPC, locals, regs))
		!= NULL)
			return true;
#endif
	return false;
}


/**********************************
 * These are the fetch routines.
 **********************************/   

/*==============================================================================
 * FUNCTION:		getWord
 * OVERVIEW:		Returns the word starting at the given address.
 * PARAMETERS:		lc - address at which to decode the double
 * RETURNS:			the decoded double
 *============================================================================*/
Byte PentiumDecoder::getByte (unsigned lc)
/* getByte - returns next byte from image pointed to by lc.	 */
{
	return *(Byte *)lc;
}

/*==============================================================================
 * FUNCTION:		getWord
 * OVERVIEW:		Returns the word starting at the given address.
 * PARAMETERS:		lc - address at which to decode the double
 * RETURNS:			the decoded double
 *============================================================================*/
SWord PentiumDecoder::getWord (unsigned lc)
/* get2Bytes - returns next 2-Byte from image pointed to by lc.	 */
{
	return (SWord)(*(Byte *)lc + (*(Byte *)(lc+1) << 8));
}

/*==============================================================================
 * FUNCTION:		getDword
 * OVERVIEW:		Returns the double starting at the given address.
 * PARAMETERS:		lc - address at which to decode the double
 * RETURNS:			the decoded double
 *============================================================================*/
DWord PentiumDecoder::getDword (unsigned lc)
/* get4Bytes - returns the next 4-Byte word from image pointed to by lc. */
{
	lastDwordLc = lc - prog->getTextDelta();
	return (DWord)(*(Byte *)lc + (*(Byte *)(lc+1) << 8) + (*(Byte *)(lc+2) << 16) + (*(Byte *)(lc+3) << 24));
}


/*==============================================================================
 * FUNCTION:	   PentiumDecoder::PentiumDecoder
 * OVERVIEW:	   Constructor. The code won't work without this (not sure why the default constructor won't do...)
 * PARAMETERS:	   None
 * RETURNS:		   N/A
 *============================================================================*/
PentiumDecoder::PentiumDecoder(Prog* prog) : NJMCDecoder(prog)
{
	std::string file = Boomerang::get()->getProgPath() + "frontend/machine/pentium/pentium.ssl";
	RTLDict.readSSLFile(file.c_str());
}

// For now...
int PentiumDecoder::decodeAssemblyInstruction(unsigned, int)
{ return 0; }

/*==============================================================================
 * FUNCTION:	   genBSFR
 * OVERVIEW:	   Generate statements for the BSF and BSR series (Bit Scan Forward/Reverse)
 * PARAMETERS:	   pc: native PC address (start of the BSF/BSR instruction)
 *				   reg: an expression for the destination register
 *				   modrm: an expression for the operand being scanned
 *				   init: initial value for the dest register
 *				   size: sizeof(modrm) (in bits)
 *				   incdec: either opPlus for Forward scans, or opMinus for Reverse scans
 *				   numBytes: number of bytes this instruction
 * RETURNS:		   true if have to exit early (not in last state)
 *============================================================================*/
static int BSFRstate = 0;		// State number for this state machine
void genBSFR(ADDRESS pc, Exp* dest, Exp* modrm, int init, int size,
  OPER incdec, int numBytes) {
	// Note the horrible hack needed here. We need initialisation code, and an extra branch, so the %SKIP/%RPT won't
	// work. We need to emit 6 statements, but these need to be in 3 RTLs, since the destination of a branch has to be
	// to the start of an RTL.  So we use a state machine, and set numBytes to 0 for the first two times. That way, this
	// instruction ends up emitting three RTLs, each with the semantics we need.
	// Note: we don't use pentium.SSL for these.
	// BSFR1:
	//	pc+0:	zf := 1
	//	pc+0:	branch exit condition modrm = 0
	// BSFR2:
	//	pc+1:	zf := 0
	//	pc+1:	dest := init
	// BSFR3:
	//	pc+2: dest := dest op 1
	//	pc+2: branch pc+2 condition modrm@[dest:dest]=0
	// exit:

	std::list<Statement*>* stmts = new std::list<Statement*>;
	Statement* s;
	BranchStatement* b;
	switch (BSFRstate) {
		case 0:
			s = new Assign(
				new IntegerType(1),
				new Terminal(opZF),
				new Const(1));
			stmts->push_back(s);
			b = new BranchStatement;
			b->setDest(pc+numBytes);
			b->setCondType(BRANCH_JE);
			b->setCondExpr(
				new Binary(opEquals,
					modrm->clone(),
					new Const(0)));
			stmts->push_back(b);
			break;
		case 1:
			s = new Assign(
				new IntegerType(1),
				new Terminal(opZF),
				new Const(0));
			stmts->push_back(s);
			s = new Assign(
				new IntegerType(size),
				dest->clone(),
				new Const(init));
			stmts->push_back(s);
			break;
		case 2:
			s = new Assign(
				new IntegerType(size),
				dest->clone(),
				new Binary(incdec,
					dest->clone(),
					new Const(1)));
			stmts->push_back(s);
			b = new BranchStatement;
			b->setDest(pc+2);
			b->setCondType(BRANCH_JE);
			b->setCondExpr(
				new Binary(opEquals,
					new Ternary(opAt,
						modrm->clone(),
						dest->clone(),
						dest->clone()),
					new Const(0)));
			stmts->push_back(b);
			break;
		default:
			// Should never happen
			assert(BSFRstate - BSFRstate);
	}
	result.rtl = new RTL(pc + BSFRstate, stmts);
	// Keep numBytes == 0 until the last state, so we re-decode this instruction 3 times
	if (BSFRstate != 3-1) {
		// Let the number of bytes be 1. This is important at least for setting the fallthrough address for the branch
		// (in the first RTL), which should point to the next RTL
		result.numBytes = 1;
		result.reDecode = true;		// Decode this instuction again
	} else {
		result.numBytes = numBytes;
		result.reDecode = false;
	}
	if (DEBUG_DECODER)
		std::cout << std::hex << pc+BSFRstate << std::dec << ": " <<
		"BS" << (init == -1 ? "F" : "R") << (size==32 ? ".od" : ".ow") <<
		BSFRstate+1 << "\n";
	if (++BSFRstate == 3)
		BSFRstate = 0;		// Ready for next time
		
}


Exp *PentiumDecoder::addReloc(Exp *e)
{
	if (lastDwordLc != -1)
		e = prog->addReloc(e, lastDwordLc);
	return e;
}



