This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Let me know if you have any problems or concerns Dave
2005-05-18 Dave Brolley <brolley@redhat.com> * utils-sim.scm (-gen-decode-default-entry): New function. (-gen-decode-insn-entry): Now takes 'invalid-insn' argument. Generate code to check that all opcodes bits match. (-gen-decoder-switch): Use -gen-decode-default-entry.
Index: cgen/utils-sim.scm
===================================================================
RCS file: /cvs/src/src/cgen/utils-sim.scm,v
retrieving revision 1.12
diff -c -p -r1.12 utils-sim.scm
*** cgen/utils-sim.scm 16 Jul 2003 05:35:48 -0000 1.12
--- cgen/utils-sim.scm 18 May 2005 21:51:13 -0000
***************
*** 1,5 ****
; Generic simulator application utilities.
! ; Copyright (C) 2000 Red Hat, Inc.
; This file is part of CGEN.
; See file COPYING.CGEN for details.
--- 1,5 ----
; Generic simulator application utilities.
! ; Copyright (C) 2000, 2005 Red Hat, Inc.
; This file is part of CGEN.
; See file COPYING.CGEN for details.
***************
*** 579,588 ****
; Convert decoder table into C code.
; Return code for one insn entry.
; REST is the remaining entries.
! (define (-gen-decode-insn-entry entry rest indent fn?)
(assert (eq? 'insn (dtable-entry-type entry)))
(logit 3 "Generating decode insn entry for " (obj:name (dtable-entry-value entry)) " ...\n")
--- 579,603 ----
; Convert decoder table into C code.
+ ; Return code for the default entry of each switch table
+ ;
+ (define (-gen-decode-default-entry indent invalid-insn fn?)
+ (string-append
+ "itype = "
+ (gen-cpu-insn-enum (current-cpu) invalid-insn)
+ ";"
+ (if (with-scache?)
+ (if fn?
+ " @prefix@_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;\n"
+ " goto extract_sfmt_empty;\n")
+ " goto done;\n")
+ )
+ )
+
; Return code for one insn entry.
; REST is the remaining entries.
! (define (-gen-decode-insn-entry entry rest indent invalid-insn fn?)
(assert (eq? 'insn (dtable-entry-type entry)))
(logit 3 "Generating decode insn entry for " (obj:name (dtable-entry-value entry)) " ...\n")
***************
*** 609,631 ****
(else
(string-append indent " case "
! (number->string (dtable-entry-index entry)) " : "
! "itype = " (gen-cpu-insn-enum (current-cpu) insn) ";"
; Compensate for base-insn-size > current-insn-size by adjusting entire_insn.
; Activate this logic only for sid simulators; they are consistent in
; interpreting base-insn-bitsize this way.
(if (and (equal? APPLICATION 'SID-SIMULATOR)
(> (state-base-insn-bitsize) (insn-length insn)))
(string-append
! " entire_insn = base_insn >> "
(number->string (- (state-base-insn-bitsize) (insn-length insn)))
! ";")
"")
(if (with-scache?)
(if fn?
! (string-append " @prefix@_extract_" fmt-name " (this, current_cpu, pc, base_insn, entire_insn); goto done;\n")
! (string-append " goto extract_" fmt-name ";\n"))
! " goto done;\n")))))
)
; Subroutine of -decode-expr-ifield-tracking.
--- 624,650 ----
(else
(string-append indent " case "
! (number->string (dtable-entry-index entry)) " :\n"
; Compensate for base-insn-size > current-insn-size by adjusting entire_insn.
; Activate this logic only for sid simulators; they are consistent in
; interpreting base-insn-bitsize this way.
(if (and (equal? APPLICATION 'SID-SIMULATOR)
(> (state-base-insn-bitsize) (insn-length insn)))
(string-append
! indent " entire_insn = base_insn >> "
(number->string (- (state-base-insn-bitsize) (insn-length insn)))
! ";\n")
"")
+ ; Generate code to check that all of the opcode bits for this insn match
+ indent " if ((entire_insn & 0x" (number->hex (insn-base-mask insn)) ") == 0x" (number->hex (insn-value insn)) ")\n"
+ indent " { itype = " (gen-cpu-insn-enum (current-cpu) insn) ";"
(if (with-scache?)
(if fn?
! (string-append " @prefix@_extract_" fmt-name " (this, current_cpu, pc, base_insn, entire_insn); goto done;")
! (string-append " goto extract_" fmt-name ";"))
! " goto done;")
! " }\n"
! indent " " (-gen-decode-default-entry indent invalid-insn fn?)))))
)
; Subroutine of -decode-expr-ifield-tracking.
***************
*** 963,969 ****
(cdr entries)
(cons (case (dtable-entry-type (car entries))
((insn)
! (-gen-decode-insn-entry (car entries) (cdr entries) indent fn?))
((expr)
(-gen-decode-expr-entry (car entries) indent invalid-insn fn?))
((table)
--- 982,988 ----
(cdr entries)
(cons (case (dtable-entry-type (car entries))
((insn)
! (-gen-decode-insn-entry (car entries) (cdr entries) indent invalid-insn fn?))
((expr)
(-gen-decode-expr-entry (car entries) indent invalid-insn fn?))
((table)
***************
*** 974,987 ****
result))))
; ??? Can delete if all cases are present.
! indent " default : itype = "
! (gen-cpu-insn-enum (current-cpu) invalid-insn)
! ";"
! (if (with-scache?)
! (if fn?
! " @prefix@_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;\n"
! " goto extract_sfmt_empty;\n")
! " goto done;\n")
indent " }\n"
indent "}\n"
)
--- 993,1000 ----
result))))
; ??? Can delete if all cases are present.
! indent " default : "
! (-gen-decode-default-entry indent invalid-insn fn?)
indent " }\n"
indent "}\n"
)
Index: xstormy16-decode.cxx
===================================================================
RCS file: /cvs/src/src/sid/component/cgen-cpu/xstormy16/xstormy16-decode.cxx,v
retrieving revision 1.8
diff -c -p -r1.8 xstormy16-decode.cxx
*** xstormy16-decode.cxx 22 Jul 2004 01:49:45 -0000 1.8
--- xstormy16-decode.cxx 18 May 2005 21:20:26 -0000
***************
*** 2,8 ****
THIS FILE IS MACHINE GENERATED WITH CGEN.
! Copyright (C) 2000-2004 Red Hat, Inc.
This file is part of the Red Hat simulators.
--- 2,8 ----
THIS FILE IS MACHINE GENERATED WITH CGEN.
! Copyright (C) 2000-2005 Red Hat, Inc.
This file is part of the Red Hat simulators.
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 366,376 ****
unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_NOP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_SYSCALL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_IRET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_RET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 5 : itype = XSTORMY16_INSN_BRK; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 8 : /* fall through */
case 9 : /* fall through */
case 10 : /* fall through */
--- 366,396 ----
unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x0)
! { itype = XSTORMY16_INSN_NOP; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x1)
! { itype = XSTORMY16_INSN_SYSCALL; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x2)
! { itype = XSTORMY16_INSN_IRET; xstormy16_extract_sfmt_iret (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x3)
! { itype = XSTORMY16_INSN_RET; xstormy16_extract_sfmt_ret (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 5 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x5)
! { itype = XSTORMY16_INSN_BRK; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 8 : /* fall through */
case 9 : /* fall through */
case 10 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 378,384 ****
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
--- 398,408 ----
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x10)
! { itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 386,392 ****
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
--- 410,420 ----
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x20)
! { itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 394,401 ****
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 1 :
--- 422,433 ----
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30)
! { itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 1 :
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 403,412 ****
unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_HALT; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_HOLD; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_HOLDX; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 7 : itype = XSTORMY16_INSN_RESET; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 8 : /* fall through */
case 9 : /* fall through */
case 10 : /* fall through */
--- 435,460 ----
unsigned int val = (((insn >> 17) & (3 << 3)) | ((insn >> 16) & (7 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0x8)
! { itype = XSTORMY16_INSN_HALT; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xa)
! { itype = XSTORMY16_INSN_HOLD; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xb)
! { itype = XSTORMY16_INSN_HOLDX; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 7 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xf)
! { itype = XSTORMY16_INSN_RESET; xstormy16_extract_sfmt_reset (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 8 : /* fall through */
case 9 : /* fall through */
case 10 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 414,420 ****
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 : itype = XSTORMY16_INSN_CALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
--- 462,472 ----
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x10)
! { itype = XSTORMY16_INSN_CALLRGR; xstormy16_extract_sfmt_callrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 422,428 ****
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 : itype = XSTORMY16_INSN_BGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
--- 474,484 ----
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x20)
! { itype = XSTORMY16_INSN_BGR; xstormy16_extract_sfmt_bgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 430,437 ****
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 : itype = XSTORMY16_INSN_ICALLRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 2 : /* fall through */
--- 486,497 ----
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30)
! { itype = XSTORMY16_INSN_ICALLRGR; xstormy16_extract_sfmt_icallrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 2 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 440,448 ****
unsigned int val = (((insn >> 21) & (1 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_JMP; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_ICALLGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_icallgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 4 : /* fall through */
--- 500,516 ----
unsigned int val = (((insn >> 21) & (1 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffe0) == 0x40)
! { itype = XSTORMY16_INSN_JMP; xstormy16_extract_sfmt_jmp (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffe0) == 0x60)
! { itype = XSTORMY16_INSN_ICALLGR; xstormy16_extract_sfmt_icallgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 4 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 451,461 ****
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_PUSHGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_POPGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 2 : /* fall through */
! case 3 : itype = XSTORMY16_INSN_CALLGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 6 :
--- 519,541 ----
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x80)
! { itype = XSTORMY16_INSN_PUSHGR; xstormy16_extract_sfmt_pushgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x90)
! { itype = XSTORMY16_INSN_POPGR; xstormy16_extract_sfmt_popgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 2 : /* fall through */
! case 3 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffe0) == 0xa0)
! { itype = XSTORMY16_INSN_CALLGR; xstormy16_extract_sfmt_callgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 6 :
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 463,472 ****
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_DIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_MUL; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_DIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 7 :
--- 543,564 ----
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xc0)
! { itype = XSTORMY16_INSN_DIV; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xd0)
! { itype = XSTORMY16_INSN_MUL; xstormy16_extract_sfmt_mul (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xe0)
! { itype = XSTORMY16_INSN_DIVLH; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 7 :
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 474,482 ****
unsigned int val = (((insn >> 21) & (1 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_SDIV; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdiv (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_SDIVLH; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 8 : /* fall through */
--- 566,582 ----
unsigned int val = (((insn >> 21) & (1 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xc8)
! { itype = XSTORMY16_INSN_SDIV; xstormy16_extract_sfmt_sdiv (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffff) == 0xe8)
! { itype = XSTORMY16_INSN_SDIVLH; xstormy16_extract_sfmt_sdivlh (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 8 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 486,492 ****
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 : itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
--- 586,595 ----
case 12 : /* fall through */
case 13 : /* fall through */
case 14 : /* fall through */
! case 15 :
! if ((entire_insn & 0xff000000) == 0x1000000)
! { itype = XSTORMY16_INSN_CALLFIMM; xstormy16_extract_sfmt_callfimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 16 : /* fall through */
case 17 : /* fall through */
case 18 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 494,500 ****
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 : itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
--- 597,606 ----
case 20 : /* fall through */
case 21 : /* fall through */
case 22 : /* fall through */
! case 23 :
! if ((entire_insn & 0xff000000) == 0x2000000)
! { itype = XSTORMY16_INSN_JMPF; xstormy16_extract_sfmt_jmpf (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 24 : /* fall through */
case 25 : /* fall through */
case 26 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 502,508 ****
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 : itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 32 : /* fall through */
case 33 : /* fall through */
case 34 : /* fall through */
--- 608,617 ----
case 28 : /* fall through */
case 29 : /* fall through */
case 30 : /* fall through */
! case 31 :
! if ((entire_insn & 0xff000000) == 0x3000000)
! { itype = XSTORMY16_INSN_ICALLFIMM; xstormy16_extract_sfmt_icallfimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 32 : /* fall through */
case 33 : /* fall through */
case 34 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 510,516 ****
case 36 : /* fall through */
case 37 : /* fall through */
case 38 : /* fall through */
! case 39 : itype = XSTORMY16_INSN_BNGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 40 : /* fall through */
case 41 : /* fall through */
case 42 : /* fall through */
--- 619,628 ----
case 36 : /* fall through */
case 37 : /* fall through */
case 38 : /* fall through */
! case 39 :
! if ((entire_insn & 0xff00f000) == 0x4000000)
! { itype = XSTORMY16_INSN_BNGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 40 : /* fall through */
case 41 : /* fall through */
case 42 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 518,524 ****
case 44 : /* fall through */
case 45 : /* fall through */
case 46 : /* fall through */
! case 47 : itype = XSTORMY16_INSN_BPGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 48 : /* fall through */
case 49 : /* fall through */
case 50 : /* fall through */
--- 630,639 ----
case 44 : /* fall through */
case 45 : /* fall through */
case 46 : /* fall through */
! case 47 :
! if ((entire_insn & 0xff00f000) == 0x5000000)
! { itype = XSTORMY16_INSN_BPGRIMM4; xstormy16_extract_sfmt_bngrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 48 : /* fall through */
case 49 : /* fall through */
case 50 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 526,532 ****
case 52 : /* fall through */
case 53 : /* fall through */
case 54 : /* fall through */
! case 55 : itype = XSTORMY16_INSN_BNGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 56 : /* fall through */
case 57 : /* fall through */
case 58 : /* fall through */
--- 641,650 ----
case 52 : /* fall through */
case 53 : /* fall through */
case 54 : /* fall through */
! case 55 :
! if ((entire_insn & 0xff00f000) == 0x6000000)
! { itype = XSTORMY16_INSN_BNGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 56 : /* fall through */
case 57 : /* fall through */
case 58 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 534,540 ****
case 60 : /* fall through */
case 61 : /* fall through */
case 62 : /* fall through */
! case 63 : itype = XSTORMY16_INSN_BPGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 64 : /* fall through */
case 65 : /* fall through */
case 66 : /* fall through */
--- 652,661 ----
case 60 : /* fall through */
case 61 : /* fall through */
case 62 : /* fall through */
! case 63 :
! if ((entire_insn & 0xff00f000) == 0x7000000)
! { itype = XSTORMY16_INSN_BPGRGR; xstormy16_extract_sfmt_bngrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 64 : /* fall through */
case 65 : /* fall through */
case 66 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 542,548 ****
case 68 : /* fall through */
case 69 : /* fall through */
case 70 : /* fall through */
! case 71 : itype = XSTORMY16_INSN_CLR1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 72 : /* fall through */
case 73 : /* fall through */
case 74 : /* fall through */
--- 663,673 ----
case 68 : /* fall through */
case 69 : /* fall through */
case 70 : /* fall through */
! case 71 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x800)
! { itype = XSTORMY16_INSN_CLR1GRIMM; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 72 : /* fall through */
case 73 : /* fall through */
case 74 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 550,556 ****
case 76 : /* fall through */
case 77 : /* fall through */
case 78 : /* fall through */
! case 79 : itype = XSTORMY16_INSN_SET1GRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 80 : /* fall through */
case 81 : /* fall through */
case 82 : /* fall through */
--- 675,685 ----
case 76 : /* fall through */
case 77 : /* fall through */
case 78 : /* fall through */
! case 79 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x900)
! { itype = XSTORMY16_INSN_SET1GRIMM; xstormy16_extract_sfmt_set1grimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 80 : /* fall through */
case 81 : /* fall through */
case 82 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 558,564 ****
case 84 : /* fall through */
case 85 : /* fall through */
case 86 : /* fall through */
! case 87 : itype = XSTORMY16_INSN_CLR1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 88 : /* fall through */
case 89 : /* fall through */
case 90 : /* fall through */
--- 687,697 ----
case 84 : /* fall through */
case 85 : /* fall through */
case 86 : /* fall through */
! case 87 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0xa00)
! { itype = XSTORMY16_INSN_CLR1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 88 : /* fall through */
case 89 : /* fall through */
case 90 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 566,572 ****
case 92 : /* fall through */
case 93 : /* fall through */
case 94 : /* fall through */
! case 95 : itype = XSTORMY16_INSN_SET1GRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 104 : /* fall through */
case 105 : /* fall through */
case 106 : /* fall through */
--- 699,709 ----
case 92 : /* fall through */
case 93 : /* fall through */
case 94 : /* fall through */
! case 95 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0xb00)
! { itype = XSTORMY16_INSN_SET1GRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 104 : /* fall through */
case 105 : /* fall through */
case 106 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 574,580 ****
case 108 : /* fall through */
case 109 : /* fall through */
case 110 : /* fall through */
! case 111 : itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 128 : /* fall through */
case 129 : /* fall through */
case 130 : /* fall through */
--- 711,720 ----
case 108 : /* fall through */
case 109 : /* fall through */
case 110 : /* fall through */
! case 111 :
! if ((entire_insn & 0xff000000) == 0xd000000)
! { itype = XSTORMY16_INSN_BCCGRGR; xstormy16_extract_sfmt_bccgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 128 : /* fall through */
case 129 : /* fall through */
case 130 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 707,715 ****
unsigned int val = (((insn >> 16) & (1 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_BR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_CALLRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_callrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 256 : /* fall through */
--- 847,863 ----
unsigned int val = (((insn >> 16) & (1 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xf001) == 0x1000)
! { itype = XSTORMY16_INSN_BR; xstormy16_extract_sfmt_br (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xf001) == 0x1001)
! { itype = XSTORMY16_INSN_CALLRIMM; xstormy16_extract_sfmt_callrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 256 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 775,781 ****
case 372 : /* fall through */
case 373 : /* fall through */
case 374 : /* fall through */
! case 375 : itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 264 : /* fall through */
case 265 : /* fall through */
case 266 : /* fall through */
--- 923,932 ----
case 372 : /* fall through */
case 373 : /* fall through */
case 374 : /* fall through */
! case 375 :
! if ((entire_insn & 0xf1000000) == 0x20000000)
! { itype = XSTORMY16_INSN_BCCGRIMM8; xstormy16_extract_sfmt_bccgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 264 : /* fall through */
case 265 : /* fall through */
case 266 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 839,860 ****
case 380 : /* fall through */
case 381 : /* fall through */
case 382 : /* fall through */
! case 383 : itype = XSTORMY16_INSN_MOVWGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 384 : /* fall through */
! case 385 : itype = XSTORMY16_INSN_INCGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 386 : /* fall through */
! case 387 : itype = XSTORMY16_INSN_DECGRIMM2; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 388 : /* fall through */
case 389 :
{
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_SWPB; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_SWPN; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_CBWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_NOTGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 390 : /* fall through */
--- 990,1039 ----
case 380 : /* fall through */
case 381 : /* fall through */
case 382 : /* fall through */
! case 383 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xf100) == 0x2100)
! { itype = XSTORMY16_INSN_MOVWGRIMM8; xstormy16_extract_sfmt_movwgrimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 384 : /* fall through */
! case 385 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffc0) == 0x3000)
! { itype = XSTORMY16_INSN_INCGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 386 : /* fall through */
! case 387 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xffc0) == 0x3040)
! { itype = XSTORMY16_INSN_DECGRIMM2; xstormy16_extract_sfmt_incgrimm2 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 388 : /* fall through */
case 389 :
{
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x3080)
! { itype = XSTORMY16_INSN_SWPB; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x3090)
! { itype = XSTORMY16_INSN_SWPN; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30a0)
! { itype = XSTORMY16_INSN_CBWGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30b0)
! { itype = XSTORMY16_INSN_NOTGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 390 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 863,873 ****
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_MOVLOWGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_MOVHIGHGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_MASKGRIMM16; xstormy16_extract_sfmt_maskgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_REVGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 392 : /* fall through */
--- 1042,1067 ----
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30c0)
! { itype = XSTORMY16_INSN_MOVLOWGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30d0)
! { itype = XSTORMY16_INSN_MOVHIGHGR; xstormy16_extract_sfmt_movlowgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! if ((entire_insn & 0xfff00000) == 0x30e00000)
! { itype = XSTORMY16_INSN_MASKGRIMM16; xstormy16_extract_sfmt_maskgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfff0) == 0x30f0)
! { itype = XSTORMY16_INSN_REVGR; xstormy16_extract_sfmt_swpn (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 392 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 876,886 ****
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_ANDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_ORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_XORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_MOVWGRIMM16; xstormy16_extract_sfmt_movwgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 394 : /* fall through */
--- 1070,1092 ----
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! if ((entire_insn & 0xfff00000) == 0x31000000)
! { itype = XSTORMY16_INSN_ANDGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! if ((entire_insn & 0xfff00000) == 0x31100000)
! { itype = XSTORMY16_INSN_ORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! if ((entire_insn & 0xfff00000) == 0x31200000)
! { itype = XSTORMY16_INSN_XORGRIMM16; xstormy16_extract_sfmt_andgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! if ((entire_insn & 0xfff00000) == 0x31300000)
! { itype = XSTORMY16_INSN_MOVWGRIMM16; xstormy16_extract_sfmt_movwgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 394 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 889,899 ****
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 : itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 : itype = XSTORMY16_INSN_ADCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 : itype = XSTORMY16_INSN_SUBGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 : itype = XSTORMY16_INSN_SBCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 400 : /* fall through */
--- 1095,1117 ----
unsigned int val = (((insn >> 20) & (3 << 0)));
switch (val)
{
! case 0 :
! if ((entire_insn & 0xfff00000) == 0x31400000)
! { itype = XSTORMY16_INSN_ADDGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 1 :
! if ((entire_insn & 0xfff00000) == 0x31500000)
! { itype = XSTORMY16_INSN_ADCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 2 :
! if ((entire_insn & 0xfff00000) == 0x31600000)
! { itype = XSTORMY16_INSN_SUBGRIMM16; xstormy16_extract_sfmt_addgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! case 3 :
! if ((entire_insn & 0xfff00000) == 0x31700000)
! { itype = XSTORMY16_INSN_SBCGRIMM16; xstormy16_extract_sfmt_adcgrimm16 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
! default : itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
}
}
case 400 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 903,909 ****
case 404 : /* fall through */
case 405 : /* fall through */
case 406 : /* fall through */
! case 407 : itype = XSTORMY16_INSN_SWPW; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 408 : /* fall through */
case 409 : /* fall through */
case 410 : /* fall through */
--- 1121,1131 ----
case 404 : /* fall through */
case 405 : /* fall through */
case 406 : /* fall through */
! case 407 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3200)
! { itype = XSTORMY16_INSN_SWPW; xstormy16_extract_sfmt_swpw (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 408 : /* fall through */
case 409 : /* fall through */
case 410 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 911,917 ****
case 412 : /* fall through */
case 413 : /* fall through */
case 414 : /* fall through */
! case 415 : itype = XSTORMY16_INSN_MASKGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 432 : /* fall through */
case 433 : /* fall through */
case 434 : /* fall through */
--- 1133,1143 ----
case 412 : /* fall through */
case 413 : /* fall through */
case 414 : /* fall through */
! case 415 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3300)
! { itype = XSTORMY16_INSN_MASKGRGR; xstormy16_extract_sfmt_maskgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 432 : /* fall through */
case 433 : /* fall through */
case 434 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 919,925 ****
case 436 : /* fall through */
case 437 : /* fall through */
case 438 : /* fall through */
! case 439 : itype = XSTORMY16_INSN_ASRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 440 : /* fall through */
case 441 : /* fall through */
case 442 : /* fall through */
--- 1145,1155 ----
case 436 : /* fall through */
case 437 : /* fall through */
case 438 : /* fall through */
! case 439 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3600)
! { itype = XSTORMY16_INSN_ASRGRGR; xstormy16_extract_sfmt_asrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 440 : /* fall through */
case 441 : /* fall through */
case 442 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 927,933 ****
case 444 : /* fall through */
case 445 : /* fall through */
case 446 : /* fall through */
! case 447 : itype = XSTORMY16_INSN_ASRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_asrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 448 : /* fall through */
case 449 : /* fall through */
case 450 : /* fall through */
--- 1157,1167 ----
case 444 : /* fall through */
case 445 : /* fall through */
case 446 : /* fall through */
! case 447 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3700)
! { itype = XSTORMY16_INSN_ASRGRIMM; xstormy16_extract_sfmt_asrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 448 : /* fall through */
case 449 : /* fall through */
case 450 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 935,941 ****
case 452 : /* fall through */
case 453 : /* fall through */
case 454 : /* fall through */
! case 455 : itype = XSTORMY16_INSN_RRCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 456 : /* fall through */
case 457 : /* fall through */
case 458 : /* fall through */
--- 1169,1179 ----
case 452 : /* fall through */
case 453 : /* fall through */
case 454 : /* fall through */
! case 455 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3800)
! { itype = XSTORMY16_INSN_RRCGRGR; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 456 : /* fall through */
case 457 : /* fall through */
case 458 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 943,949 ****
case 460 : /* fall through */
case 461 : /* fall through */
case 462 : /* fall through */
! case 463 : itype = XSTORMY16_INSN_RRCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 464 : /* fall through */
case 465 : /* fall through */
case 466 : /* fall through */
--- 1181,1191 ----
case 460 : /* fall through */
case 461 : /* fall through */
case 462 : /* fall through */
! case 463 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3900)
! { itype = XSTORMY16_INSN_RRCGRIMM4; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 464 : /* fall through */
case 465 : /* fall through */
case 466 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 951,957 ****
case 468 : /* fall through */
case 469 : /* fall through */
case 470 : /* fall through */
! case 471 : itype = XSTORMY16_INSN_RLCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 472 : /* fall through */
case 473 : /* fall through */
case 474 : /* fall through */
--- 1193,1203 ----
case 468 : /* fall through */
case 469 : /* fall through */
case 470 : /* fall through */
! case 471 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3a00)
! { itype = XSTORMY16_INSN_RLCGRGR; xstormy16_extract_sfmt_rrcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 472 : /* fall through */
case 473 : /* fall through */
case 474 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 959,965 ****
case 476 : /* fall through */
case 477 : /* fall through */
case 478 : /* fall through */
! case 479 : itype = XSTORMY16_INSN_RLCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 480 : /* fall through */
case 481 : /* fall through */
case 482 : /* fall through */
--- 1205,1215 ----
case 476 : /* fall through */
case 477 : /* fall through */
case 478 : /* fall through */
! case 479 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3b00)
! { itype = XSTORMY16_INSN_RLCGRIMM4; xstormy16_extract_sfmt_rrcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 480 : /* fall through */
case 481 : /* fall through */
case 482 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 967,973 ****
case 484 : /* fall through */
case 485 : /* fall through */
case 486 : /* fall through */
! case 487 : itype = XSTORMY16_INSN_SHRGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 488 : /* fall through */
case 489 : /* fall through */
case 490 : /* fall through */
--- 1217,1227 ----
case 484 : /* fall through */
case 485 : /* fall through */
case 486 : /* fall through */
! case 487 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3c00)
! { itype = XSTORMY16_INSN_SHRGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 488 : /* fall through */
case 489 : /* fall through */
case 490 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 975,981 ****
case 492 : /* fall through */
case 493 : /* fall through */
case 494 : /* fall through */
! case 495 : itype = XSTORMY16_INSN_SHRGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 496 : /* fall through */
case 497 : /* fall through */
case 498 : /* fall through */
--- 1229,1239 ----
case 492 : /* fall through */
case 493 : /* fall through */
case 494 : /* fall through */
! case 495 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3d00)
! { itype = XSTORMY16_INSN_SHRGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 496 : /* fall through */
case 497 : /* fall through */
case 498 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 983,989 ****
case 500 : /* fall through */
case 501 : /* fall through */
case 502 : /* fall through */
! case 503 : itype = XSTORMY16_INSN_SHLGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 504 : /* fall through */
case 505 : /* fall through */
case 506 : /* fall through */
--- 1241,1251 ----
case 500 : /* fall through */
case 501 : /* fall through */
case 502 : /* fall through */
! case 503 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3e00)
! { itype = XSTORMY16_INSN_SHLGRGR; xstormy16_extract_sfmt_shrgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 504 : /* fall through */
case 505 : /* fall through */
case 506 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 991,997 ****
case 508 : /* fall through */
case 509 : /* fall through */
case 510 : /* fall through */
! case 511 : itype = XSTORMY16_INSN_SHLGRIMM; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 512 : /* fall through */
case 513 : /* fall through */
case 514 : /* fall through */
--- 1253,1263 ----
case 508 : /* fall through */
case 509 : /* fall through */
case 510 : /* fall through */
! case 511 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x3f00)
! { itype = XSTORMY16_INSN_SHLGRIMM; xstormy16_extract_sfmt_shrgrimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 512 : /* fall through */
case 513 : /* fall through */
case 514 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 999,1005 ****
case 516 : /* fall through */
case 517 : /* fall through */
case 518 : /* fall through */
! case 519 : itype = XSTORMY16_INSN_ANDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 520 : /* fall through */
case 521 : /* fall through */
case 522 : /* fall through */
--- 1265,1275 ----
case 516 : /* fall through */
case 517 : /* fall through */
case 518 : /* fall through */
! case 519 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4000)
! { itype = XSTORMY16_INSN_ANDGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 520 : /* fall through */
case 521 : /* fall through */
case 522 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1007,1013 ****
case 524 : /* fall through */
case 525 : /* fall through */
case 526 : /* fall through */
! case 527 : itype = XSTORMY16_INSN_ANDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 528 : /* fall through */
case 529 : /* fall through */
case 530 : /* fall through */
--- 1277,1287 ----
case 524 : /* fall through */
case 525 : /* fall through */
case 526 : /* fall through */
! case 527 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4100)
! { itype = XSTORMY16_INSN_ANDIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 528 : /* fall through */
case 529 : /* fall through */
case 530 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1015,1021 ****
case 532 : /* fall through */
case 533 : /* fall through */
case 534 : /* fall through */
! case 535 : itype = XSTORMY16_INSN_ORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 536 : /* fall through */
case 537 : /* fall through */
case 538 : /* fall through */
--- 1289,1299 ----
case 532 : /* fall through */
case 533 : /* fall through */
case 534 : /* fall through */
! case 535 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4200)
! { itype = XSTORMY16_INSN_ORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 536 : /* fall through */
case 537 : /* fall through */
case 538 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1023,1029 ****
case 540 : /* fall through */
case 541 : /* fall through */
case 542 : /* fall through */
! case 543 : itype = XSTORMY16_INSN_ORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 544 : /* fall through */
case 545 : /* fall through */
case 546 : /* fall through */
--- 1301,1311 ----
case 540 : /* fall through */
case 541 : /* fall through */
case 542 : /* fall through */
! case 543 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4300)
! { itype = XSTORMY16_INSN_ORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 544 : /* fall through */
case 545 : /* fall through */
case 546 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1031,1037 ****
case 548 : /* fall through */
case 549 : /* fall through */
case 550 : /* fall through */
! case 551 : itype = XSTORMY16_INSN_XORGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 552 : /* fall through */
case 553 : /* fall through */
case 554 : /* fall through */
--- 1313,1323 ----
case 548 : /* fall through */
case 549 : /* fall through */
case 550 : /* fall through */
! case 551 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4400)
! { itype = XSTORMY16_INSN_XORGRGR; xstormy16_extract_sfmt_andgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 552 : /* fall through */
case 553 : /* fall through */
case 554 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1039,1045 ****
case 556 : /* fall through */
case 557 : /* fall through */
case 558 : /* fall through */
! case 559 : itype = XSTORMY16_INSN_XORIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 560 : /* fall through */
case 561 : /* fall through */
case 562 : /* fall through */
--- 1325,1335 ----
case 556 : /* fall through */
case 557 : /* fall through */
case 558 : /* fall through */
! case 559 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4500)
! { itype = XSTORMY16_INSN_XORIMM8; xstormy16_extract_sfmt_andimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 560 : /* fall through */
case 561 : /* fall through */
case 562 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1047,1053 ****
case 564 : /* fall through */
case 565 : /* fall through */
case 566 : /* fall through */
! case 567 : itype = XSTORMY16_INSN_MOVGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 568 : /* fall through */
case 569 : /* fall through */
case 570 : /* fall through */
--- 1337,1347 ----
case 564 : /* fall through */
case 565 : /* fall through */
case 566 : /* fall through */
! case 567 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4600)
! { itype = XSTORMY16_INSN_MOVGRGR; xstormy16_extract_sfmt_movgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 568 : /* fall through */
case 569 : /* fall through */
case 570 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1055,1061 ****
case 572 : /* fall through */
case 573 : /* fall through */
case 574 : /* fall through */
! case 575 : itype = XSTORMY16_INSN_MOVWIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 584 : /* fall through */
case 585 : /* fall through */
case 586 : /* fall through */
--- 1349,1359 ----
case 572 : /* fall through */
case 573 : /* fall through */
case 574 : /* fall through */
! case 575 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4700)
! { itype = XSTORMY16_INSN_MOVWIMM8; xstormy16_extract_sfmt_movwimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 584 : /* fall through */
case 585 : /* fall through */
case 586 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1063,1069 ****
case 588 : /* fall through */
case 589 : /* fall through */
case 590 : /* fall through */
! case 591 : itype = XSTORMY16_INSN_ADDGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 600 : /* fall through */
case 601 : /* fall through */
case 602 : /* fall through */
--- 1361,1371 ----
case 588 : /* fall through */
case 589 : /* fall through */
case 590 : /* fall through */
! case 591 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4900)
! { itype = XSTORMY16_INSN_ADDGRGR; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 600 : /* fall through */
case 601 : /* fall through */
case 602 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1071,1077 ****
case 604 : /* fall through */
case 605 : /* fall through */
case 606 : /* fall through */
! case 607 : itype = XSTORMY16_INSN_ADCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 616 : /* fall through */
case 617 : /* fall through */
case 618 : /* fall through */
--- 1373,1383 ----
case 604 : /* fall through */
case 605 : /* fall through */
case 606 : /* fall through */
! case 607 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4b00)
! { itype = XSTORMY16_INSN_ADCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 616 : /* fall through */
case 617 : /* fall through */
case 618 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1079,1085 ****
case 620 : /* fall through */
case 621 : /* fall through */
case 622 : /* fall through */
! case 623 : itype = XSTORMY16_INSN_SUBGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 632 : /* fall through */
case 633 : /* fall through */
case 634 : /* fall through */
--- 1385,1395 ----
case 620 : /* fall through */
case 621 : /* fall through */
case 622 : /* fall through */
! case 623 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4d00)
! { itype = XSTORMY16_INSN_SUBGRGR; xstormy16_extract_sfmt_addgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 632 : /* fall through */
case 633 : /* fall through */
case 634 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1087,1093 ****
case 636 : /* fall through */
case 637 : /* fall through */
case 638 : /* fall through */
! case 639 : itype = XSTORMY16_INSN_SBCGRGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 648 : /* fall through */
case 649 : /* fall through */
case 650 : /* fall through */
--- 1397,1407 ----
case 636 : /* fall through */
case 637 : /* fall through */
case 638 : /* fall through */
! case 639 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x4f00)
! { itype = XSTORMY16_INSN_SBCGRGR; xstormy16_extract_sfmt_adcgrgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 648 : /* fall through */
case 649 : /* fall through */
case 650 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1095,1101 ****
case 652 : /* fall through */
case 653 : /* fall through */
case 654 : /* fall through */
! case 655 : itype = XSTORMY16_INSN_ADDGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 664 : /* fall through */
case 665 : /* fall through */
case 666 : /* fall through */
--- 1409,1419 ----
case 652 : /* fall through */
case 653 : /* fall through */
case 654 : /* fall through */
! case 655 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5100)
! { itype = XSTORMY16_INSN_ADDGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 664 : /* fall through */
case 665 : /* fall through */
case 666 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1103,1109 ****
case 668 : /* fall through */
case 669 : /* fall through */
case 670 : /* fall through */
! case 671 : itype = XSTORMY16_INSN_ADCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 680 : /* fall through */
case 681 : /* fall through */
case 682 : /* fall through */
--- 1421,1431 ----
case 668 : /* fall through */
case 669 : /* fall through */
case 670 : /* fall through */
! case 671 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5300)
! { itype = XSTORMY16_INSN_ADCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 680 : /* fall through */
case 681 : /* fall through */
case 682 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1111,1117 ****
case 684 : /* fall through */
case 685 : /* fall through */
case 686 : /* fall through */
! case 687 : itype = XSTORMY16_INSN_SUBGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 696 : /* fall through */
case 697 : /* fall through */
case 698 : /* fall through */
--- 1433,1443 ----
case 684 : /* fall through */
case 685 : /* fall through */
case 686 : /* fall through */
! case 687 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5500)
! { itype = XSTORMY16_INSN_SUBGRIMM4; xstormy16_extract_sfmt_addgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 696 : /* fall through */
case 697 : /* fall through */
case 698 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1119,1125 ****
case 700 : /* fall through */
case 701 : /* fall through */
case 702 : /* fall through */
! case 703 : itype = XSTORMY16_INSN_SBCGRIMM4; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 712 : /* fall through */
case 713 : /* fall through */
case 714 : /* fall through */
--- 1445,1455 ----
case 700 : /* fall through */
case 701 : /* fall through */
case 702 : /* fall through */
! case 703 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5700)
! { itype = XSTORMY16_INSN_SBCGRIMM4; xstormy16_extract_sfmt_adcgrimm4 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 712 : /* fall through */
case 713 : /* fall through */
case 714 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1127,1133 ****
case 716 : /* fall through */
case 717 : /* fall through */
case 718 : /* fall through */
! case 719 : itype = XSTORMY16_INSN_ADDIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 728 : /* fall through */
case 729 : /* fall through */
case 730 : /* fall through */
--- 1457,1467 ----
case 716 : /* fall through */
case 717 : /* fall through */
case 718 : /* fall through */
! case 719 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5900)
! { itype = XSTORMY16_INSN_ADDIMM8; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 728 : /* fall through */
case 729 : /* fall through */
case 730 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1135,1141 ****
case 732 : /* fall through */
case 733 : /* fall through */
case 734 : /* fall through */
! case 735 : itype = XSTORMY16_INSN_ADCIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 744 : /* fall through */
case 745 : /* fall through */
case 746 : /* fall through */
--- 1469,1479 ----
case 732 : /* fall through */
case 733 : /* fall through */
case 734 : /* fall through */
! case 735 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5b00)
! { itype = XSTORMY16_INSN_ADCIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 744 : /* fall through */
case 745 : /* fall through */
case 746 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1143,1149 ****
case 748 : /* fall through */
case 749 : /* fall through */
case 750 : /* fall through */
! case 751 : itype = XSTORMY16_INSN_SUBIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 760 : /* fall through */
case 761 : /* fall through */
case 762 : /* fall through */
--- 1481,1491 ----
case 748 : /* fall through */
case 749 : /* fall through */
case 750 : /* fall through */
! case 751 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5d00)
! { itype = XSTORMY16_INSN_SUBIMM8; xstormy16_extract_sfmt_addimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 760 : /* fall through */
case 761 : /* fall through */
case 762 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1151,1157 ****
case 764 : /* fall through */
case 765 : /* fall through */
case 766 : /* fall through */
! case 767 : itype = XSTORMY16_INSN_SBCGRIMM8; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 768 : /* fall through */
case 770 : /* fall through */
case 772 : /* fall through */
--- 1493,1503 ----
case 764 : /* fall through */
case 765 : /* fall through */
case 766 : /* fall through */
! case 767 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xff00) == 0x5f00)
! { itype = XSTORMY16_INSN_SBCGRIMM8; xstormy16_extract_sfmt_adcimm8 (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 768 : /* fall through */
case 770 : /* fall through */
case 772 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1159,1165 ****
case 776 : /* fall through */
case 778 : /* fall through */
case 780 : /* fall through */
! case 782 : itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 769 : /* fall through */
case 771 : /* fall through */
case 773 : /* fall through */
--- 1505,1515 ----
case 776 : /* fall through */
case 778 : /* fall through */
case 780 : /* fall through */
! case 782 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6000)
! { itype = XSTORMY16_INSN_MOVGRGRIPOSTINC; xstormy16_extract_sfmt_movgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 769 : /* fall through */
case 771 : /* fall through */
case 773 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1167,1173 ****
case 777 : /* fall through */
case 779 : /* fall through */
case 781 : /* fall through */
! case 783 : itype = XSTORMY16_INSN_MOVGRGRIIPOSTINC; xstormy16_extract_sfmt_movgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 784 : /* fall through */
case 786 : /* fall through */
case 788 : /* fall through */
--- 1517,1526 ----
case 777 : /* fall through */
case 779 : /* fall through */
case 781 : /* fall through */
! case 783 :
! if ((entire_insn & 0xfe08f000) == 0x60080000)
! { itype = XSTORMY16_INSN_MOVGRGRIIPOSTINC; xstormy16_extract_sfmt_movgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 784 : /* fall through */
case 786 : /* fall through */
case 788 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1175,1181 ****
case 792 : /* fall through */
case 794 : /* fall through */
case 796 : /* fall through */
! case 798 : itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 785 : /* fall through */
case 787 : /* fall through */
case 789 : /* fall through */
--- 1528,1538 ----
case 792 : /* fall through */
case 794 : /* fall through */
case 796 : /* fall through */
! case 798 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6200)
! { itype = XSTORMY16_INSN_MOVGRIPOSTINCGR; xstormy16_extract_sfmt_movgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 785 : /* fall through */
case 787 : /* fall through */
case 789 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1183,1189 ****
case 793 : /* fall through */
case 795 : /* fall through */
case 797 : /* fall through */
! case 799 : itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 800 : /* fall through */
case 802 : /* fall through */
case 804 : /* fall through */
--- 1540,1549 ----
case 793 : /* fall through */
case 795 : /* fall through */
case 797 : /* fall through */
! case 799 :
! if ((entire_insn & 0xfe08f000) == 0x62080000)
! { itype = XSTORMY16_INSN_MOVGRIIPOSTINCGR; xstormy16_extract_sfmt_movgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 800 : /* fall through */
case 802 : /* fall through */
case 804 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1191,1197 ****
case 808 : /* fall through */
case 810 : /* fall through */
case 812 : /* fall through */
! case 814 : itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 801 : /* fall through */
case 803 : /* fall through */
case 805 : /* fall through */
--- 1551,1561 ----
case 808 : /* fall through */
case 810 : /* fall through */
case 812 : /* fall through */
! case 814 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6400)
! { itype = XSTORMY16_INSN_MOVFGRGRIPOSTINC; xstormy16_extract_sfmt_movfgrgripostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 801 : /* fall through */
case 803 : /* fall through */
case 805 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1199,1205 ****
case 809 : /* fall through */
case 811 : /* fall through */
case 813 : /* fall through */
! case 815 : itype = XSTORMY16_INSN_MOVFGRGRIIPOSTINC; xstormy16_extract_sfmt_movfgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 816 : /* fall through */
case 818 : /* fall through */
case 820 : /* fall through */
--- 1563,1572 ----
case 809 : /* fall through */
case 811 : /* fall through */
case 813 : /* fall through */
! case 815 :
! if ((entire_insn & 0xfe088000) == 0x64080000)
! { itype = XSTORMY16_INSN_MOVFGRGRIIPOSTINC; xstormy16_extract_sfmt_movfgrgriipostinc (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 816 : /* fall through */
case 818 : /* fall through */
case 820 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1207,1213 ****
case 824 : /* fall through */
case 826 : /* fall through */
case 828 : /* fall through */
! case 830 : itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 817 : /* fall through */
case 819 : /* fall through */
case 821 : /* fall through */
--- 1574,1584 ----
case 824 : /* fall through */
case 826 : /* fall through */
case 828 : /* fall through */
! case 830 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6600)
! { itype = XSTORMY16_INSN_MOVFGRIPOSTINCGR; xstormy16_extract_sfmt_movfgripostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 817 : /* fall through */
case 819 : /* fall through */
case 821 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1215,1221 ****
case 825 : /* fall through */
case 827 : /* fall through */
case 829 : /* fall through */
! case 831 : itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 832 : /* fall through */
case 834 : /* fall through */
case 836 : /* fall through */
--- 1586,1595 ----
case 825 : /* fall through */
case 827 : /* fall through */
case 829 : /* fall through */
! case 831 :
! if ((entire_insn & 0xfe088000) == 0x66080000)
! { itype = XSTORMY16_INSN_MOVFGRIIPOSTINCGR; xstormy16_extract_sfmt_movfgriipostincgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 832 : /* fall through */
case 834 : /* fall through */
case 836 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1223,1229 ****
case 840 : /* fall through */
case 842 : /* fall through */
case 844 : /* fall through */
! case 846 : itype = XSTORMY16_INSN_MOVGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 833 : /* fall through */
case 835 : /* fall through */
case 837 : /* fall through */
--- 1597,1607 ----
case 840 : /* fall through */
case 842 : /* fall through */
case 844 : /* fall through */
! case 846 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6800)
! { itype = XSTORMY16_INSN_MOVGRGRIPREDEC; xstormy16_extract_sfmt_movgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 833 : /* fall through */
case 835 : /* fall through */
case 837 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1231,1237 ****
case 841 : /* fall through */
case 843 : /* fall through */
case 845 : /* fall through */
! case 847 : itype = XSTORMY16_INSN_MOVGRGRIIPREDEC; xstormy16_extract_sfmt_movgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 848 : /* fall through */
case 850 : /* fall through */
case 852 : /* fall through */
--- 1609,1618 ----
case 841 : /* fall through */
case 843 : /* fall through */
case 845 : /* fall through */
! case 847 :
! if ((entire_insn & 0xfe08f000) == 0x68080000)
! { itype = XSTORMY16_INSN_MOVGRGRIIPREDEC; xstormy16_extract_sfmt_movgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 848 : /* fall through */
case 850 : /* fall through */
case 852 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1239,1245 ****
case 856 : /* fall through */
case 858 : /* fall through */
case 860 : /* fall through */
! case 862 : itype = XSTORMY16_INSN_MOVGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 849 : /* fall through */
case 851 : /* fall through */
case 853 : /* fall through */
--- 1620,1630 ----
case 856 : /* fall through */
case 858 : /* fall through */
case 860 : /* fall through */
! case 862 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6a00)
! { itype = XSTORMY16_INSN_MOVGRIPREDECGR; xstormy16_extract_sfmt_movgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 849 : /* fall through */
case 851 : /* fall through */
case 853 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1247,1253 ****
case 857 : /* fall through */
case 859 : /* fall through */
case 861 : /* fall through */
! case 863 : itype = XSTORMY16_INSN_MOVGRIIPREDECGR; xstormy16_extract_sfmt_movgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 864 : /* fall through */
case 866 : /* fall through */
case 868 : /* fall through */
--- 1632,1641 ----
case 857 : /* fall through */
case 859 : /* fall through */
case 861 : /* fall through */
! case 863 :
! if ((entire_insn & 0xfe08f000) == 0x6a080000)
! { itype = XSTORMY16_INSN_MOVGRIIPREDECGR; xstormy16_extract_sfmt_movgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 864 : /* fall through */
case 866 : /* fall through */
case 868 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1255,1261 ****
case 872 : /* fall through */
case 874 : /* fall through */
case 876 : /* fall through */
! case 878 : itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 865 : /* fall through */
case 867 : /* fall through */
case 869 : /* fall through */
--- 1643,1653 ----
case 872 : /* fall through */
case 874 : /* fall through */
case 876 : /* fall through */
! case 878 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6c00)
! { itype = XSTORMY16_INSN_MOVFGRGRIPREDEC; xstormy16_extract_sfmt_movfgrgripredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 865 : /* fall through */
case 867 : /* fall through */
case 869 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1263,1269 ****
case 873 : /* fall through */
case 875 : /* fall through */
case 877 : /* fall through */
! case 879 : itype = XSTORMY16_INSN_MOVFGRGRIIPREDEC; xstormy16_extract_sfmt_movfgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 880 : /* fall through */
case 882 : /* fall through */
case 884 : /* fall through */
--- 1655,1664 ----
case 873 : /* fall through */
case 875 : /* fall through */
case 877 : /* fall through */
! case 879 :
! if ((entire_insn & 0xfe088000) == 0x6c080000)
! { itype = XSTORMY16_INSN_MOVFGRGRIIPREDEC; xstormy16_extract_sfmt_movfgrgriipredec (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 880 : /* fall through */
case 882 : /* fall through */
case 884 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1271,1277 ****
case 888 : /* fall through */
case 890 : /* fall through */
case 892 : /* fall through */
! case 894 : itype = XSTORMY16_INSN_MOVFGRIPREDECGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 881 : /* fall through */
case 883 : /* fall through */
case 885 : /* fall through */
--- 1666,1676 ----
case 888 : /* fall through */
case 890 : /* fall through */
case 892 : /* fall through */
! case 894 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x6e00)
! { itype = XSTORMY16_INSN_MOVFGRIPREDECGR; xstormy16_extract_sfmt_movfgripredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 881 : /* fall through */
case 883 : /* fall through */
case 885 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1279,1285 ****
case 889 : /* fall through */
case 891 : /* fall through */
case 893 : /* fall through */
! case 895 : itype = XSTORMY16_INSN_MOVFGRIIPREDECGR; xstormy16_extract_sfmt_movfgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 896 : /* fall through */
case 898 : /* fall through */
case 900 : /* fall through */
--- 1678,1687 ----
case 889 : /* fall through */
case 891 : /* fall through */
case 893 : /* fall through */
! case 895 :
! if ((entire_insn & 0xfe088000) == 0x6e080000)
! { itype = XSTORMY16_INSN_MOVFGRIIPREDECGR; xstormy16_extract_sfmt_movfgriipredecgr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 896 : /* fall through */
case 898 : /* fall through */
case 900 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1287,1293 ****
case 904 : /* fall through */
case 906 : /* fall through */
case 908 : /* fall through */
! case 910 : itype = XSTORMY16_INSN_MOVGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 897 : /* fall through */
case 899 : /* fall through */
case 901 : /* fall through */
--- 1689,1699 ----
case 904 : /* fall through */
case 906 : /* fall through */
case 908 : /* fall through */
! case 910 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x7000)
! { itype = XSTORMY16_INSN_MOVGRGRI; xstormy16_extract_sfmt_movgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 897 : /* fall through */
case 899 : /* fall through */
case 901 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1295,1301 ****
case 905 : /* fall through */
case 907 : /* fall through */
case 909 : /* fall through */
! case 911 : itype = XSTORMY16_INSN_MOVGRGRII; xstormy16_extract_sfmt_movgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 912 : /* fall through */
case 914 : /* fall through */
case 916 : /* fall through */
--- 1701,1710 ----
case 905 : /* fall through */
case 907 : /* fall through */
case 909 : /* fall through */
! case 911 :
! if ((entire_insn & 0xfe08f000) == 0x70080000)
! { itype = XSTORMY16_INSN_MOVGRGRII; xstormy16_extract_sfmt_movgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 912 : /* fall through */
case 914 : /* fall through */
case 916 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1303,1309 ****
case 920 : /* fall through */
case 922 : /* fall through */
case 924 : /* fall through */
! case 926 : itype = XSTORMY16_INSN_MOVGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 913 : /* fall through */
case 915 : /* fall through */
case 917 : /* fall through */
--- 1712,1722 ----
case 920 : /* fall through */
case 922 : /* fall through */
case 924 : /* fall through */
! case 926 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x7200)
! { itype = XSTORMY16_INSN_MOVGRIGR; xstormy16_extract_sfmt_movgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 913 : /* fall through */
case 915 : /* fall through */
case 917 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1311,1317 ****
case 921 : /* fall through */
case 923 : /* fall through */
case 925 : /* fall through */
! case 927 : itype = XSTORMY16_INSN_MOVGRIIGR; xstormy16_extract_sfmt_movgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 928 : /* fall through */
case 930 : /* fall through */
case 932 : /* fall through */
--- 1724,1733 ----
case 921 : /* fall through */
case 923 : /* fall through */
case 925 : /* fall through */
! case 927 :
! if ((entire_insn & 0xfe08f000) == 0x72080000)
! { itype = XSTORMY16_INSN_MOVGRIIGR; xstormy16_extract_sfmt_movgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 928 : /* fall through */
case 930 : /* fall through */
case 932 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1319,1325 ****
case 936 : /* fall through */
case 938 : /* fall through */
case 940 : /* fall through */
! case 942 : itype = XSTORMY16_INSN_MOVFGRGRI; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 929 : /* fall through */
case 931 : /* fall through */
case 933 : /* fall through */
--- 1735,1745 ----
case 936 : /* fall through */
case 938 : /* fall through */
case 940 : /* fall through */
! case 942 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x7400)
! { itype = XSTORMY16_INSN_MOVFGRGRI; xstormy16_extract_sfmt_movfgrgri (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 929 : /* fall through */
case 931 : /* fall through */
case 933 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1327,1333 ****
case 937 : /* fall through */
case 939 : /* fall through */
case 941 : /* fall through */
! case 943 : itype = XSTORMY16_INSN_MOVFGRGRII; xstormy16_extract_sfmt_movfgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 944 : /* fall through */
case 946 : /* fall through */
case 948 : /* fall through */
--- 1747,1756 ----
case 937 : /* fall through */
case 939 : /* fall through */
case 941 : /* fall through */
! case 943 :
! if ((entire_insn & 0xfe088000) == 0x74080000)
! { itype = XSTORMY16_INSN_MOVFGRGRII; xstormy16_extract_sfmt_movfgrgrii (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 944 : /* fall through */
case 946 : /* fall through */
case 948 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1335,1341 ****
case 952 : /* fall through */
case 954 : /* fall through */
case 956 : /* fall through */
! case 958 : itype = XSTORMY16_INSN_MOVFGRIGR; entire_insn = base_insn >> 16; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 945 : /* fall through */
case 947 : /* fall through */
case 949 : /* fall through */
--- 1758,1768 ----
case 952 : /* fall through */
case 954 : /* fall through */
case 956 : /* fall through */
! case 958 :
! entire_insn = base_insn >> 16;
! if ((entire_insn & 0xfe08) == 0x7600)
! { itype = XSTORMY16_INSN_MOVFGRIGR; xstormy16_extract_sfmt_movfgrigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 945 : /* fall through */
case 947 : /* fall through */
case 949 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1343,1349 ****
case 953 : /* fall through */
case 955 : /* fall through */
case 957 : /* fall through */
! case 959 : itype = XSTORMY16_INSN_MOVFGRIIGR; xstormy16_extract_sfmt_movfgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 960 : /* fall through */
case 961 : /* fall through */
case 962 : /* fall through */
--- 1770,1779 ----
case 953 : /* fall through */
case 955 : /* fall through */
case 957 : /* fall through */
! case 959 :
! if ((entire_insn & 0xfe088000) == 0x76080000)
! { itype = XSTORMY16_INSN_MOVFGRIIGR; xstormy16_extract_sfmt_movfgriigr (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 960 : /* fall through */
case 961 : /* fall through */
case 962 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1359,1365 ****
case 972 : /* fall through */
case 973 : /* fall through */
case 974 : /* fall through */
! case 975 : itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 976 : /* fall through */
case 977 : /* fall through */
case 978 : /* fall through */
--- 1789,1798 ----
case 972 : /* fall through */
case 973 : /* fall through */
case 974 : /* fall through */
! case 975 :
! if ((entire_insn & 0xfe000000) == 0x78000000)
! { itype = XSTORMY16_INSN_MOVLMEMIMM; xstormy16_extract_sfmt_movlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 976 : /* fall through */
case 977 : /* fall through */
case 978 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1375,1381 ****
case 988 : /* fall through */
case 989 : /* fall through */
case 990 : /* fall through */
! case 991 : itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 992 : /* fall through */
case 993 : /* fall through */
case 994 : /* fall through */
--- 1808,1817 ----
case 988 : /* fall through */
case 989 : /* fall through */
case 990 : /* fall through */
! case 991 :
! if ((entire_insn & 0xfe000000) == 0x7a000000)
! { itype = XSTORMY16_INSN_MOVHMEMIMM; xstormy16_extract_sfmt_movhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 992 : /* fall through */
case 993 : /* fall through */
case 994 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1383,1389 ****
case 996 : /* fall through */
case 997 : /* fall through */
case 998 : /* fall through */
! case 999 : itype = XSTORMY16_INSN_BNLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1000 : /* fall through */
case 1001 : /* fall through */
case 1002 : /* fall through */
--- 1819,1828 ----
case 996 : /* fall through */
case 997 : /* fall through */
case 998 : /* fall through */
! case 999 :
! if ((entire_insn & 0xff008000) == 0x7c000000)
! { itype = XSTORMY16_INSN_BNLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1000 : /* fall through */
case 1001 : /* fall through */
case 1002 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1391,1397 ****
case 1004 : /* fall through */
case 1005 : /* fall through */
case 1006 : /* fall through */
! case 1007 : itype = XSTORMY16_INSN_BPLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1008 : /* fall through */
case 1009 : /* fall through */
case 1010 : /* fall through */
--- 1830,1839 ----
case 1004 : /* fall through */
case 1005 : /* fall through */
case 1006 : /* fall through */
! case 1007 :
! if ((entire_insn & 0xff008000) == 0x7d000000)
! { itype = XSTORMY16_INSN_BPLMEMIMM; xstormy16_extract_sfmt_bnlmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1008 : /* fall through */
case 1009 : /* fall through */
case 1010 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1399,1405 ****
case 1012 : /* fall through */
case 1013 : /* fall through */
case 1014 : /* fall through */
! case 1015 : itype = XSTORMY16_INSN_BNHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1016 : /* fall through */
case 1017 : /* fall through */
case 1018 : /* fall through */
--- 1841,1850 ----
case 1012 : /* fall through */
case 1013 : /* fall through */
case 1014 : /* fall through */
! case 1015 :
! if ((entire_insn & 0xff008000) == 0x7e000000)
! { itype = XSTORMY16_INSN_BNHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done; }
! itype = XSTORMY16_INSN_X_INVALID; xstormy16_extract_sfmt_empty (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1016 : /* fall through */
case 1017 : /* fall through */
case 1018 : /* fall through */
*************** xstormy16_scache::decode (xstormy16_cpu*
*** 1407,1413 ****
case 1020 : /* fall through */
case 1021 : /* fall through */
case 1022 : /* fall through */
! case 1023 : itype = XSTORMY16_INSN_BPHMEMIMM; xstormy16_extract_sfmt_bnhmemimm (this, current_cpu, pc, base_insn, entire_insn); goto done;
case 1024 : /* fall through */
case 1025 : /* fall through */
case 1026 : /* fall through */
--- 1852,1861 ----
case 1020 : /* fall through */
case 1021 : /* fall through */
case 1022 : /* fall through */
! case 1023 :
!