diff options
-rw-r--r-- | sim/sh64/ChangeLog | 18 | ||||
-rw-r--r-- | sim/sh64/arch.c | 23 | ||||
-rw-r--r-- | sim/sh64/arch.h | 23 | ||||
-rw-r--r-- | sim/sh64/cpu.c | 23 | ||||
-rw-r--r-- | sim/sh64/cpu.h | 25 | ||||
-rw-r--r-- | sim/sh64/cpuall.h | 23 | ||||
-rw-r--r-- | sim/sh64/decode-compact.c | 637 | ||||
-rw-r--r-- | sim/sh64/decode-compact.h | 23 | ||||
-rw-r--r-- | sim/sh64/decode-media.c | 102 | ||||
-rw-r--r-- | sim/sh64/decode-media.h | 36 | ||||
-rw-r--r-- | sim/sh64/defs-compact.h | 23 | ||||
-rw-r--r-- | sim/sh64/defs-media.h | 23 | ||||
-rw-r--r-- | sim/sh64/sem-compact-switch.c | 23 | ||||
-rw-r--r-- | sim/sh64/sem-compact.c | 23 | ||||
-rw-r--r-- | sim/sh64/sem-media-switch.c | 23 | ||||
-rw-r--r-- | sim/sh64/sem-media.c | 23 | ||||
-rw-r--r-- | sim/sh64/sh-desc.c | 29 | ||||
-rw-r--r-- | sim/sh64/sh-opc.h | 23 |
18 files changed, 364 insertions, 759 deletions
diff --git a/sim/sh64/ChangeLog b/sim/sh64/ChangeLog index e3a0a7f..849e54b 100644 --- a/sim/sh64/ChangeLog +++ b/sim/sh64/ChangeLog @@ -1,5 +1,23 @@ 2009-11-03 Doug Evans <dje@sebabeach.org> + * arch.c: Regenerate. + * arch.h: Regenerate. + * cpu.c: Regenerate. + * cpu.h: Regenerate. + * cpuall.h: Regenerate. + * decode-compact.c: Regenerate. + * decode-compact.h: Regenerate. + * decode-media.c: Regenerate. + * decode-media.h: Regenerate. + * defs-compact.h: Regenerate. + * defs-media.h: Regenerate. + * sem-compact-switch.c: Regenerate. + * sem-compact.c: Regenerate. + * sem-media-switch.c: Regenerate. + * sem-media.c: Regenerate. + * sh-desc.c: Regenerate. + * sh-opc.h: Regenerate. + * Makefile.in (SIM_EXTRA_DEPS): Add sh-desc.h sh-opc.h. (sh-desc.o): New rule. (sh-desc.h,sh-desc.c,sh-opc.h): Replaces rule for desc.h. diff --git a/sim/sh64/arch.c b/sim/sh64/arch.c index 859540e..42deb35 100644 --- a/sim/sh64/arch.c +++ b/sim/sh64/arch.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/arch.h b/sim/sh64/arch.h index f9c79b8..b68de02 100644 --- a/sim/sh64/arch.h +++ b/sim/sh64/arch.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/cpu.c b/sim/sh64/cpu.c index bfbbb1b..f53fc7a 100644 --- a/sim/sh64/cpu.c +++ b/sim/sh64/cpu.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/cpu.h b/sim/sh64/cpu.h index ef82dca..69e1731 100644 --- a/sim/sh64/cpu.h +++ b/sim/sh64/cpu.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -47,7 +48,7 @@ CPU (h_pc) = ANDDI ((x), INVDI (1));\ ;} while (0) /* General purpose integer registers */ DI h_gr[64]; -#define GET_H_GR(index) ((((index) == (63))) ? (0) : (CPU (h_gr[index]))) +#define GET_H_GR(index) ((((index) == (63))) ? (MAKEDI (0, 0)) : (CPU (h_gr[index]))) #define SET_H_GR(index, x) \ do { \ if ((((index)) != (63))) {\ diff --git a/sim/sh64/cpuall.h b/sim/sh64/cpuall.h index 43ae3bb..a188f42 100644 --- a/sim/sh64/cpuall.h +++ b/sim/sh64/cpuall.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/decode-compact.c b/sim/sh64/decode-compact.c index 3fd22ad..c2042ca 100644 --- a/sim/sh64/decode-compact.c +++ b/sim/sh64/decode-compact.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -325,23 +326,14 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 64 : /* fall through */ case 80 : /* fall through */ case 96 : /* fall through */ - case 112 : - if ((entire_insn & 0xf00f0000) == 0x0) - { itype = SH64_COMPACT_INSN_MOVI20_COMPACT; goto extract_sfmt_movi20_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 112 : itype = SH64_COMPACT_INSN_MOVI20_COMPACT; goto extract_sfmt_movi20_compact; case 3 : { unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0x3) - { itype = SH64_COMPACT_INSN_BSRF_COMPACT; goto extract_sfmt_bsrf_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0x83) - { itype = SH64_COMPACT_INSN_PREF_COMPACT; goto extract_sfmt_pref_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_BSRF_COMPACT; goto extract_sfmt_bsrf_compact; + case 1 : itype = SH64_COMPACT_INSN_PREF_COMPACT; goto extract_sfmt_pref_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -352,10 +344,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 68 : /* fall through */ case 84 : /* fall through */ case 100 : /* fall through */ - case 116 : - if ((entire_insn & 0xf00f) == 0x4) - { itype = SH64_COMPACT_INSN_MOVB3_COMPACT; goto extract_sfmt_movb3_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 116 : itype = SH64_COMPACT_INSN_MOVB3_COMPACT; goto extract_sfmt_movb3_compact; case 5 : /* fall through */ case 21 : /* fall through */ case 37 : /* fall through */ @@ -363,10 +352,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 69 : /* fall through */ case 85 : /* fall through */ case 101 : /* fall through */ - case 117 : - if ((entire_insn & 0xf00f) == 0x5) - { itype = SH64_COMPACT_INSN_MOVW3_COMPACT; goto extract_sfmt_movw3_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 117 : itype = SH64_COMPACT_INSN_MOVW3_COMPACT; goto extract_sfmt_movw3_compact; case 6 : /* fall through */ case 22 : /* fall through */ case 38 : /* fall through */ @@ -374,10 +360,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 70 : /* fall through */ case 86 : /* fall through */ case 102 : /* fall through */ - case 118 : - if ((entire_insn & 0xf00f) == 0x6) - { itype = SH64_COMPACT_INSN_MOVL3_COMPACT; goto extract_sfmt_movl3_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 118 : itype = SH64_COMPACT_INSN_MOVL3_COMPACT; goto extract_sfmt_movl3_compact; case 7 : /* fall through */ case 23 : /* fall through */ case 39 : /* fall through */ @@ -385,10 +368,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 71 : /* fall through */ case 87 : /* fall through */ case 103 : /* fall through */ - case 119 : - if ((entire_insn & 0xf00f) == 0x7) - { itype = SH64_COMPACT_INSN_MULL_COMPACT; goto extract_sfmt_mull_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 119 : itype = SH64_COMPACT_INSN_MULL_COMPACT; goto extract_sfmt_mull_compact; case 8 : if ((entire_insn & 0xffff) == 0x8) { itype = SH64_COMPACT_INSN_CLRT_COMPACT; goto extract_sfmt_clrt_compact; } @@ -412,10 +392,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 76 : /* fall through */ case 92 : /* fall through */ case 108 : /* fall through */ - case 124 : - if ((entire_insn & 0xf00f) == 0xc) - { itype = SH64_COMPACT_INSN_MOVB8_COMPACT; goto extract_sfmt_movb8_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 124 : itype = SH64_COMPACT_INSN_MOVB8_COMPACT; goto extract_sfmt_movb8_compact; case 13 : /* fall through */ case 29 : /* fall through */ case 45 : /* fall through */ @@ -423,10 +400,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 77 : /* fall through */ case 93 : /* fall through */ case 109 : /* fall through */ - case 125 : - if ((entire_insn & 0xf00f) == 0xd) - { itype = SH64_COMPACT_INSN_MOVW8_COMPACT; goto extract_sfmt_movw8_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 125 : itype = SH64_COMPACT_INSN_MOVW8_COMPACT; goto extract_sfmt_movw8_compact; case 14 : /* fall through */ case 30 : /* fall through */ case 46 : /* fall through */ @@ -434,10 +408,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 78 : /* fall through */ case 94 : /* fall through */ case 110 : /* fall through */ - case 126 : - if ((entire_insn & 0xf00f) == 0xe) - { itype = SH64_COMPACT_INSN_MOVL8_COMPACT; goto extract_sfmt_movl8_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 126 : itype = SH64_COMPACT_INSN_MOVL8_COMPACT; goto extract_sfmt_movl8_compact; case 15 : /* fall through */ case 31 : /* fall through */ case 47 : /* fall through */ @@ -445,10 +416,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 79 : /* fall through */ case 95 : /* fall through */ case 111 : /* fall through */ - case 127 : - if ((entire_insn & 0xf00f) == 0xf) - { itype = SH64_COMPACT_INSN_MACL_COMPACT; goto extract_sfmt_macl_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 127 : itype = SH64_COMPACT_INSN_MACL_COMPACT; goto extract_sfmt_macl_compact; case 18 : if ((entire_insn & 0xf0ff) == 0x12) { itype = SH64_COMPACT_INSN_STC_GBR_COMPACT; goto extract_sfmt_stc_gbr_compact; } @@ -478,14 +446,8 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0x23) - { itype = SH64_COMPACT_INSN_BRAF_COMPACT; goto extract_sfmt_braf_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0xa3) - { itype = SH64_COMPACT_INSN_OCBP_COMPACT; goto extract_sfmt_movcol_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_BRAF_COMPACT; goto extract_sfmt_braf_compact; + case 1 : itype = SH64_COMPACT_INSN_OCBP_COMPACT; goto extract_sfmt_movcol_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -660,10 +622,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 252 : /* fall through */ case 253 : /* fall through */ case 254 : /* fall through */ - case 255 : - if ((entire_insn & 0xf000) == 0x1000) - { itype = SH64_COMPACT_INSN_MOVL5_COMPACT; goto extract_sfmt_movl5_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 255 : itype = SH64_COMPACT_INSN_MOVL5_COMPACT; goto extract_sfmt_movl5_compact; case 256 : /* fall through */ case 272 : /* fall through */ case 288 : /* fall through */ @@ -671,10 +630,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 320 : /* fall through */ case 336 : /* fall through */ case 352 : /* fall through */ - case 368 : - if ((entire_insn & 0xf00f) == 0x2000) - { itype = SH64_COMPACT_INSN_MOVB1_COMPACT; goto extract_sfmt_movb1_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 368 : itype = SH64_COMPACT_INSN_MOVB1_COMPACT; goto extract_sfmt_movb1_compact; case 257 : /* fall through */ case 273 : /* fall through */ case 289 : /* fall through */ @@ -682,10 +638,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 321 : /* fall through */ case 337 : /* fall through */ case 353 : /* fall through */ - case 369 : - if ((entire_insn & 0xf00f) == 0x2001) - { itype = SH64_COMPACT_INSN_MOVW1_COMPACT; goto extract_sfmt_movw1_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 369 : itype = SH64_COMPACT_INSN_MOVW1_COMPACT; goto extract_sfmt_movw1_compact; case 258 : /* fall through */ case 274 : /* fall through */ case 290 : /* fall through */ @@ -693,10 +646,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 322 : /* fall through */ case 338 : /* fall through */ case 354 : /* fall through */ - case 370 : - if ((entire_insn & 0xf00f) == 0x2002) - { itype = SH64_COMPACT_INSN_MOVL1_COMPACT; goto extract_sfmt_movl1_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 370 : itype = SH64_COMPACT_INSN_MOVL1_COMPACT; goto extract_sfmt_movl1_compact; case 260 : /* fall through */ case 276 : /* fall through */ case 292 : /* fall through */ @@ -704,10 +654,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 324 : /* fall through */ case 340 : /* fall through */ case 356 : /* fall through */ - case 372 : - if ((entire_insn & 0xf00f) == 0x2004) - { itype = SH64_COMPACT_INSN_MOVB2_COMPACT; goto extract_sfmt_movb2_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 372 : itype = SH64_COMPACT_INSN_MOVB2_COMPACT; goto extract_sfmt_movb2_compact; case 261 : /* fall through */ case 277 : /* fall through */ case 293 : /* fall through */ @@ -715,10 +662,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 325 : /* fall through */ case 341 : /* fall through */ case 357 : /* fall through */ - case 373 : - if ((entire_insn & 0xf00f) == 0x2005) - { itype = SH64_COMPACT_INSN_MOVW2_COMPACT; goto extract_sfmt_movw2_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 373 : itype = SH64_COMPACT_INSN_MOVW2_COMPACT; goto extract_sfmt_movw2_compact; case 262 : /* fall through */ case 278 : /* fall through */ case 294 : /* fall through */ @@ -726,10 +670,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 326 : /* fall through */ case 342 : /* fall through */ case 358 : /* fall through */ - case 374 : - if ((entire_insn & 0xf00f) == 0x2006) - { itype = SH64_COMPACT_INSN_MOVL2_COMPACT; goto extract_sfmt_movl2_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 374 : itype = SH64_COMPACT_INSN_MOVL2_COMPACT; goto extract_sfmt_movl2_compact; case 263 : /* fall through */ case 279 : /* fall through */ case 295 : /* fall through */ @@ -737,10 +678,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 327 : /* fall through */ case 343 : /* fall through */ case 359 : /* fall through */ - case 375 : - if ((entire_insn & 0xf00f) == 0x2007) - { itype = SH64_COMPACT_INSN_DIV0S_COMPACT; goto extract_sfmt_div0s_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 375 : itype = SH64_COMPACT_INSN_DIV0S_COMPACT; goto extract_sfmt_div0s_compact; case 264 : /* fall through */ case 280 : /* fall through */ case 296 : /* fall through */ @@ -748,10 +686,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 328 : /* fall through */ case 344 : /* fall through */ case 360 : /* fall through */ - case 376 : - if ((entire_insn & 0xf00f) == 0x2008) - { itype = SH64_COMPACT_INSN_TST_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 376 : itype = SH64_COMPACT_INSN_TST_COMPACT; goto extract_sfmt_cmpeq_compact; case 265 : /* fall through */ case 281 : /* fall through */ case 297 : /* fall through */ @@ -759,10 +694,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 329 : /* fall through */ case 345 : /* fall through */ case 361 : /* fall through */ - case 377 : - if ((entire_insn & 0xf00f) == 0x2009) - { itype = SH64_COMPACT_INSN_AND_COMPACT; goto extract_sfmt_and_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 377 : itype = SH64_COMPACT_INSN_AND_COMPACT; goto extract_sfmt_and_compact; case 266 : /* fall through */ case 282 : /* fall through */ case 298 : /* fall through */ @@ -770,10 +702,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 330 : /* fall through */ case 346 : /* fall through */ case 362 : /* fall through */ - case 378 : - if ((entire_insn & 0xf00f) == 0x200a) - { itype = SH64_COMPACT_INSN_XOR_COMPACT; goto extract_sfmt_and_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 378 : itype = SH64_COMPACT_INSN_XOR_COMPACT; goto extract_sfmt_and_compact; case 267 : /* fall through */ case 283 : /* fall through */ case 299 : /* fall through */ @@ -781,10 +710,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 331 : /* fall through */ case 347 : /* fall through */ case 363 : /* fall through */ - case 379 : - if ((entire_insn & 0xf00f) == 0x200b) - { itype = SH64_COMPACT_INSN_OR_COMPACT; goto extract_sfmt_and_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 379 : itype = SH64_COMPACT_INSN_OR_COMPACT; goto extract_sfmt_and_compact; case 268 : /* fall through */ case 284 : /* fall through */ case 300 : /* fall through */ @@ -792,10 +718,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 332 : /* fall through */ case 348 : /* fall through */ case 364 : /* fall through */ - case 380 : - if ((entire_insn & 0xf00f) == 0x200c) - { itype = SH64_COMPACT_INSN_CMPSTR_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 380 : itype = SH64_COMPACT_INSN_CMPSTR_COMPACT; goto extract_sfmt_cmpeq_compact; case 269 : /* fall through */ case 285 : /* fall through */ case 301 : /* fall through */ @@ -803,10 +726,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 333 : /* fall through */ case 349 : /* fall through */ case 365 : /* fall through */ - case 381 : - if ((entire_insn & 0xf00f) == 0x200d) - { itype = SH64_COMPACT_INSN_XTRCT_COMPACT; goto extract_sfmt_add_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 381 : itype = SH64_COMPACT_INSN_XTRCT_COMPACT; goto extract_sfmt_add_compact; case 270 : /* fall through */ case 286 : /* fall through */ case 302 : /* fall through */ @@ -814,10 +734,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 334 : /* fall through */ case 350 : /* fall through */ case 366 : /* fall through */ - case 382 : - if ((entire_insn & 0xf00f) == 0x200e) - { itype = SH64_COMPACT_INSN_MULUW_COMPACT; goto extract_sfmt_mull_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 382 : itype = SH64_COMPACT_INSN_MULUW_COMPACT; goto extract_sfmt_mull_compact; case 271 : /* fall through */ case 287 : /* fall through */ case 303 : /* fall through */ @@ -825,10 +742,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 335 : /* fall through */ case 351 : /* fall through */ case 367 : /* fall through */ - case 383 : - if ((entire_insn & 0xf00f) == 0x200f) - { itype = SH64_COMPACT_INSN_MULSW_COMPACT; goto extract_sfmt_mull_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 383 : itype = SH64_COMPACT_INSN_MULSW_COMPACT; goto extract_sfmt_mull_compact; case 384 : /* fall through */ case 400 : /* fall through */ case 416 : /* fall through */ @@ -836,16 +750,13 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 448 : /* fall through */ case 464 : /* fall through */ case 480 : /* fall through */ - case 496 : - if ((entire_insn & 0xf00f) == 0x3000) - { itype = SH64_COMPACT_INSN_CMPEQ_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 496 : itype = SH64_COMPACT_INSN_CMPEQ_COMPACT; goto extract_sfmt_cmpeq_compact; case 385 : /* fall through */ case 417 : /* fall through */ case 449 : /* fall through */ case 481 : { - unsigned int val = (((insn >> -3) & (1 << 1)) | ((insn >> -4) & (1 << 0))); + unsigned int val = (((entire_insn >> 13) & (1 << 1)) | ((entire_insn >> 12) & (1 << 0))); switch (val) { case 0 : @@ -874,10 +785,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 450 : /* fall through */ case 466 : /* fall through */ case 482 : /* fall through */ - case 498 : - if ((entire_insn & 0xf00f) == 0x3002) - { itype = SH64_COMPACT_INSN_CMPHS_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 498 : itype = SH64_COMPACT_INSN_CMPHS_COMPACT; goto extract_sfmt_cmpeq_compact; case 387 : /* fall through */ case 403 : /* fall through */ case 419 : /* fall through */ @@ -885,10 +793,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 451 : /* fall through */ case 467 : /* fall through */ case 483 : /* fall through */ - case 499 : - if ((entire_insn & 0xf00f) == 0x3003) - { itype = SH64_COMPACT_INSN_CMPGE_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 499 : itype = SH64_COMPACT_INSN_CMPGE_COMPACT; goto extract_sfmt_cmpeq_compact; case 388 : /* fall through */ case 404 : /* fall through */ case 420 : /* fall through */ @@ -896,10 +801,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 452 : /* fall through */ case 468 : /* fall through */ case 484 : /* fall through */ - case 500 : - if ((entire_insn & 0xf00f) == 0x3004) - { itype = SH64_COMPACT_INSN_DIV1_COMPACT; goto extract_sfmt_div1_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 500 : itype = SH64_COMPACT_INSN_DIV1_COMPACT; goto extract_sfmt_div1_compact; case 389 : /* fall through */ case 405 : /* fall through */ case 421 : /* fall through */ @@ -907,10 +809,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 453 : /* fall through */ case 469 : /* fall through */ case 485 : /* fall through */ - case 501 : - if ((entire_insn & 0xf00f) == 0x3005) - { itype = SH64_COMPACT_INSN_DMULUL_COMPACT; goto extract_sfmt_dmulsl_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 501 : itype = SH64_COMPACT_INSN_DMULUL_COMPACT; goto extract_sfmt_dmulsl_compact; case 390 : /* fall through */ case 406 : /* fall through */ case 422 : /* fall through */ @@ -918,10 +817,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 454 : /* fall through */ case 470 : /* fall through */ case 486 : /* fall through */ - case 502 : - if ((entire_insn & 0xf00f) == 0x3006) - { itype = SH64_COMPACT_INSN_CMPHI_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 502 : itype = SH64_COMPACT_INSN_CMPHI_COMPACT; goto extract_sfmt_cmpeq_compact; case 391 : /* fall through */ case 407 : /* fall through */ case 423 : /* fall through */ @@ -929,10 +825,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 455 : /* fall through */ case 471 : /* fall through */ case 487 : /* fall through */ - case 503 : - if ((entire_insn & 0xf00f) == 0x3007) - { itype = SH64_COMPACT_INSN_CMPGT_COMPACT; goto extract_sfmt_cmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 503 : itype = SH64_COMPACT_INSN_CMPGT_COMPACT; goto extract_sfmt_cmpeq_compact; case 392 : /* fall through */ case 408 : /* fall through */ case 424 : /* fall through */ @@ -940,10 +833,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 456 : /* fall through */ case 472 : /* fall through */ case 488 : /* fall through */ - case 504 : - if ((entire_insn & 0xf00f) == 0x3008) - { itype = SH64_COMPACT_INSN_SUB_COMPACT; goto extract_sfmt_add_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 504 : itype = SH64_COMPACT_INSN_SUB_COMPACT; goto extract_sfmt_add_compact; case 394 : /* fall through */ case 410 : /* fall through */ case 426 : /* fall through */ @@ -951,10 +841,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 458 : /* fall through */ case 474 : /* fall through */ case 490 : /* fall through */ - case 506 : - if ((entire_insn & 0xf00f) == 0x300a) - { itype = SH64_COMPACT_INSN_SUBC_COMPACT; goto extract_sfmt_addc_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 506 : itype = SH64_COMPACT_INSN_SUBC_COMPACT; goto extract_sfmt_addc_compact; case 395 : /* fall through */ case 411 : /* fall through */ case 427 : /* fall through */ @@ -962,10 +849,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 459 : /* fall through */ case 475 : /* fall through */ case 491 : /* fall through */ - case 507 : - if ((entire_insn & 0xf00f) == 0x300b) - { itype = SH64_COMPACT_INSN_SUBV_COMPACT; goto extract_sfmt_addv_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 507 : itype = SH64_COMPACT_INSN_SUBV_COMPACT; goto extract_sfmt_addv_compact; case 396 : /* fall through */ case 412 : /* fall through */ case 428 : /* fall through */ @@ -973,10 +857,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 460 : /* fall through */ case 476 : /* fall through */ case 492 : /* fall through */ - case 508 : - if ((entire_insn & 0xf00f) == 0x300c) - { itype = SH64_COMPACT_INSN_ADD_COMPACT; goto extract_sfmt_add_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 508 : itype = SH64_COMPACT_INSN_ADD_COMPACT; goto extract_sfmt_add_compact; case 397 : /* fall through */ case 413 : /* fall through */ case 429 : /* fall through */ @@ -984,10 +865,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 461 : /* fall through */ case 477 : /* fall through */ case 493 : /* fall through */ - case 509 : - if ((entire_insn & 0xf00f) == 0x300d) - { itype = SH64_COMPACT_INSN_DMULSL_COMPACT; goto extract_sfmt_dmulsl_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 509 : itype = SH64_COMPACT_INSN_DMULSL_COMPACT; goto extract_sfmt_dmulsl_compact; case 398 : /* fall through */ case 414 : /* fall through */ case 430 : /* fall through */ @@ -995,10 +873,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 462 : /* fall through */ case 478 : /* fall through */ case 494 : /* fall through */ - case 510 : - if ((entire_insn & 0xf00f) == 0x300e) - { itype = SH64_COMPACT_INSN_ADDC_COMPACT; goto extract_sfmt_addc_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 510 : itype = SH64_COMPACT_INSN_ADDC_COMPACT; goto extract_sfmt_addc_compact; case 399 : /* fall through */ case 415 : /* fall through */ case 431 : /* fall through */ @@ -1006,16 +881,13 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 463 : /* fall through */ case 479 : /* fall through */ case 495 : /* fall through */ - case 511 : - if ((entire_insn & 0xf00f) == 0x300f) - { itype = SH64_COMPACT_INSN_ADDV_COMPACT; goto extract_sfmt_addv_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 511 : itype = SH64_COMPACT_INSN_ADDV_COMPACT; goto extract_sfmt_addv_compact; case 401 : /* fall through */ case 433 : /* fall through */ case 465 : /* fall through */ case 497 : { - unsigned int val = (((insn >> -3) & (1 << 1)) | ((insn >> -4) & (1 << 0))); + unsigned int val = (((entire_insn >> 13) & (1 << 1)) | ((entire_insn >> 12) & (1 << 0))); switch (val) { case 0 : @@ -1038,14 +910,8 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0x4000) - { itype = SH64_COMPACT_INSN_SHLL_COMPACT; goto extract_sfmt_dt_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0x4080) - { itype = SH64_COMPACT_INSN_MULR_COMPACT; goto extract_sfmt_divu_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_SHLL_COMPACT; goto extract_sfmt_dt_compact; + case 1 : itype = SH64_COMPACT_INSN_MULR_COMPACT; goto extract_sfmt_divu_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -1062,14 +928,8 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0x4004) - { itype = SH64_COMPACT_INSN_ROTL_COMPACT; goto extract_sfmt_dt_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0x4084) - { itype = SH64_COMPACT_INSN_DIVU_COMPACT; goto extract_sfmt_divu_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_ROTL_COMPACT; goto extract_sfmt_dt_compact; + case 1 : itype = SH64_COMPACT_INSN_DIVU_COMPACT; goto extract_sfmt_divu_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -1104,10 +964,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 588 : /* fall through */ case 604 : /* fall through */ case 620 : /* fall through */ - case 636 : - if ((entire_insn & 0xf00f) == 0x400c) - { itype = SH64_COMPACT_INSN_SHAD_COMPACT; goto extract_sfmt_shad_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 636 : itype = SH64_COMPACT_INSN_SHAD_COMPACT; goto extract_sfmt_shad_compact; case 525 : /* fall through */ case 541 : /* fall through */ case 557 : /* fall through */ @@ -1115,10 +972,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 589 : /* fall through */ case 605 : /* fall through */ case 621 : /* fall through */ - case 637 : - if ((entire_insn & 0xf00f) == 0x400d) - { itype = SH64_COMPACT_INSN_SHLD_COMPACT; goto extract_sfmt_shad_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 637 : itype = SH64_COMPACT_INSN_SHLD_COMPACT; goto extract_sfmt_shad_compact; case 526 : if ((entire_insn & 0xf0ff) == 0x400e) { itype = SH64_COMPACT_INSN_LDC_SR_COMPACT; goto extract_sfmt_ldc_sr_compact; } @@ -1130,10 +984,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 591 : /* fall through */ case 607 : /* fall through */ case 623 : /* fall through */ - case 639 : - if ((entire_insn & 0xf00f) == 0x400f) - { itype = SH64_COMPACT_INSN_MACW_COMPACT; goto extract_sfmt_macw_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 639 : itype = SH64_COMPACT_INSN_MACW_COMPACT; goto extract_sfmt_macw_compact; case 528 : if ((entire_insn & 0xf0ff) == 0x4010) { itype = SH64_COMPACT_INSN_DT_COMPACT; goto extract_sfmt_dt_compact; } @@ -1223,14 +1074,8 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0x4029) - { itype = SH64_COMPACT_INSN_SHLR16_COMPACT; goto extract_sfmt_movcol_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0x40a9) - { itype = SH64_COMPACT_INSN_MOVUAL_COMPACT; goto extract_sfmt_movual_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_SHLR16_COMPACT; goto extract_sfmt_movcol_compact; + case 1 : itype = SH64_COMPACT_INSN_MOVUAL_COMPACT; goto extract_sfmt_movual_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -1401,10 +1246,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 764 : /* fall through */ case 765 : /* fall through */ case 766 : /* fall through */ - case 767 : - if ((entire_insn & 0xf000) == 0x5000) - { itype = SH64_COMPACT_INSN_MOVL11_COMPACT; goto extract_sfmt_movl11_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 767 : itype = SH64_COMPACT_INSN_MOVL11_COMPACT; goto extract_sfmt_movl11_compact; case 768 : /* fall through */ case 784 : /* fall through */ case 800 : /* fall through */ @@ -1412,10 +1254,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 832 : /* fall through */ case 848 : /* fall through */ case 864 : /* fall through */ - case 880 : - if ((entire_insn & 0xf00f) == 0x6000) - { itype = SH64_COMPACT_INSN_MOVB6_COMPACT; goto extract_sfmt_movb6_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 880 : itype = SH64_COMPACT_INSN_MOVB6_COMPACT; goto extract_sfmt_movb6_compact; case 769 : /* fall through */ case 785 : /* fall through */ case 801 : /* fall through */ @@ -1423,10 +1262,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 833 : /* fall through */ case 849 : /* fall through */ case 865 : /* fall through */ - case 881 : - if ((entire_insn & 0xf00f) == 0x6001) - { itype = SH64_COMPACT_INSN_MOVW6_COMPACT; goto extract_sfmt_movw6_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 881 : itype = SH64_COMPACT_INSN_MOVW6_COMPACT; goto extract_sfmt_movw6_compact; case 770 : /* fall through */ case 786 : /* fall through */ case 802 : /* fall through */ @@ -1434,10 +1270,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 834 : /* fall through */ case 850 : /* fall through */ case 866 : /* fall through */ - case 882 : - if ((entire_insn & 0xf00f) == 0x6002) - { itype = SH64_COMPACT_INSN_MOVL6_COMPACT; goto extract_sfmt_movl6_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 882 : itype = SH64_COMPACT_INSN_MOVL6_COMPACT; goto extract_sfmt_movl6_compact; case 771 : /* fall through */ case 787 : /* fall through */ case 803 : /* fall through */ @@ -1445,10 +1278,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 835 : /* fall through */ case 851 : /* fall through */ case 867 : /* fall through */ - case 883 : - if ((entire_insn & 0xf00f) == 0x6003) - { itype = SH64_COMPACT_INSN_MOV_COMPACT; goto extract_sfmt_mov_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 883 : itype = SH64_COMPACT_INSN_MOV_COMPACT; goto extract_sfmt_mov_compact; case 772 : /* fall through */ case 788 : /* fall through */ case 804 : /* fall through */ @@ -1456,10 +1286,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 836 : /* fall through */ case 852 : /* fall through */ case 868 : /* fall through */ - case 884 : - if ((entire_insn & 0xf00f) == 0x6004) - { itype = SH64_COMPACT_INSN_MOVB7_COMPACT; goto extract_sfmt_movb7_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 884 : itype = SH64_COMPACT_INSN_MOVB7_COMPACT; goto extract_sfmt_movb7_compact; case 773 : /* fall through */ case 789 : /* fall through */ case 805 : /* fall through */ @@ -1467,10 +1294,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 837 : /* fall through */ case 853 : /* fall through */ case 869 : /* fall through */ - case 885 : - if ((entire_insn & 0xf00f) == 0x6005) - { itype = SH64_COMPACT_INSN_MOVW7_COMPACT; goto extract_sfmt_movw7_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 885 : itype = SH64_COMPACT_INSN_MOVW7_COMPACT; goto extract_sfmt_movw7_compact; case 774 : /* fall through */ case 790 : /* fall through */ case 806 : /* fall through */ @@ -1478,10 +1302,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 838 : /* fall through */ case 854 : /* fall through */ case 870 : /* fall through */ - case 886 : - if ((entire_insn & 0xf00f) == 0x6006) - { itype = SH64_COMPACT_INSN_MOVL7_COMPACT; goto extract_sfmt_movl7_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 886 : itype = SH64_COMPACT_INSN_MOVL7_COMPACT; goto extract_sfmt_movl7_compact; case 775 : /* fall through */ case 791 : /* fall through */ case 807 : /* fall through */ @@ -1489,10 +1310,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 839 : /* fall through */ case 855 : /* fall through */ case 871 : /* fall through */ - case 887 : - if ((entire_insn & 0xf00f) == 0x6007) - { itype = SH64_COMPACT_INSN_NOT_COMPACT; goto extract_sfmt_mov_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 887 : itype = SH64_COMPACT_INSN_NOT_COMPACT; goto extract_sfmt_mov_compact; case 776 : /* fall through */ case 792 : /* fall through */ case 808 : /* fall through */ @@ -1500,10 +1318,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 840 : /* fall through */ case 856 : /* fall through */ case 872 : /* fall through */ - case 888 : - if ((entire_insn & 0xf00f) == 0x6008) - { itype = SH64_COMPACT_INSN_SWAPB_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 888 : itype = SH64_COMPACT_INSN_SWAPB_COMPACT; goto extract_sfmt_extsb_compact; case 777 : /* fall through */ case 793 : /* fall through */ case 809 : /* fall through */ @@ -1511,10 +1326,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 841 : /* fall through */ case 857 : /* fall through */ case 873 : /* fall through */ - case 889 : - if ((entire_insn & 0xf00f) == 0x6009) - { itype = SH64_COMPACT_INSN_SWAPW_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 889 : itype = SH64_COMPACT_INSN_SWAPW_COMPACT; goto extract_sfmt_extsb_compact; case 778 : /* fall through */ case 794 : /* fall through */ case 810 : /* fall through */ @@ -1522,10 +1334,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 842 : /* fall through */ case 858 : /* fall through */ case 874 : /* fall through */ - case 890 : - if ((entire_insn & 0xf00f) == 0x600a) - { itype = SH64_COMPACT_INSN_NEGC_COMPACT; goto extract_sfmt_negc_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 890 : itype = SH64_COMPACT_INSN_NEGC_COMPACT; goto extract_sfmt_negc_compact; case 779 : /* fall through */ case 795 : /* fall through */ case 811 : /* fall through */ @@ -1533,10 +1342,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 843 : /* fall through */ case 859 : /* fall through */ case 875 : /* fall through */ - case 891 : - if ((entire_insn & 0xf00f) == 0x600b) - { itype = SH64_COMPACT_INSN_NEG_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 891 : itype = SH64_COMPACT_INSN_NEG_COMPACT; goto extract_sfmt_extsb_compact; case 780 : /* fall through */ case 796 : /* fall through */ case 812 : /* fall through */ @@ -1544,10 +1350,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 844 : /* fall through */ case 860 : /* fall through */ case 876 : /* fall through */ - case 892 : - if ((entire_insn & 0xf00f) == 0x600c) - { itype = SH64_COMPACT_INSN_EXTUB_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 892 : itype = SH64_COMPACT_INSN_EXTUB_COMPACT; goto extract_sfmt_extsb_compact; case 781 : /* fall through */ case 797 : /* fall through */ case 813 : /* fall through */ @@ -1555,10 +1358,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 845 : /* fall through */ case 861 : /* fall through */ case 877 : /* fall through */ - case 893 : - if ((entire_insn & 0xf00f) == 0x600d) - { itype = SH64_COMPACT_INSN_EXTUW_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 893 : itype = SH64_COMPACT_INSN_EXTUW_COMPACT; goto extract_sfmt_extsb_compact; case 782 : /* fall through */ case 798 : /* fall through */ case 814 : /* fall through */ @@ -1566,10 +1366,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 846 : /* fall through */ case 862 : /* fall through */ case 878 : /* fall through */ - case 894 : - if ((entire_insn & 0xf00f) == 0x600e) - { itype = SH64_COMPACT_INSN_EXTSB_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 894 : itype = SH64_COMPACT_INSN_EXTSB_COMPACT; goto extract_sfmt_extsb_compact; case 783 : /* fall through */ case 799 : /* fall through */ case 815 : /* fall through */ @@ -1577,10 +1374,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 847 : /* fall through */ case 863 : /* fall through */ case 879 : /* fall through */ - case 895 : - if ((entire_insn & 0xf00f) == 0x600f) - { itype = SH64_COMPACT_INSN_EXTSW_COMPACT; goto extract_sfmt_extsb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 895 : itype = SH64_COMPACT_INSN_EXTSW_COMPACT; goto extract_sfmt_extsb_compact; case 896 : /* fall through */ case 897 : /* fall through */ case 898 : /* fall through */ @@ -1708,10 +1502,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1020 : /* fall through */ case 1021 : /* fall through */ case 1022 : /* fall through */ - case 1023 : - if ((entire_insn & 0xf000) == 0x7000) - { itype = SH64_COMPACT_INSN_ADDI_COMPACT; goto extract_sfmt_addi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1023 : itype = SH64_COMPACT_INSN_ADDI_COMPACT; goto extract_sfmt_addi_compact; case 1024 : /* fall through */ case 1025 : /* fall through */ case 1026 : /* fall through */ @@ -1844,42 +1635,15 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 8) & (15 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xff00) == 0x8000) - { itype = SH64_COMPACT_INSN_MOVB5_COMPACT; goto extract_sfmt_movb5_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xff00) == 0x8100) - { itype = SH64_COMPACT_INSN_MOVW5_COMPACT; goto extract_sfmt_movw5_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 4 : - if ((entire_insn & 0xff00) == 0x8400) - { itype = SH64_COMPACT_INSN_MOVB10_COMPACT; goto extract_sfmt_movb10_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 5 : - if ((entire_insn & 0xff00) == 0x8500) - { itype = SH64_COMPACT_INSN_MOVW11_COMPACT; goto extract_sfmt_movw11_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 8 : - if ((entire_insn & 0xff00) == 0x8800) - { itype = SH64_COMPACT_INSN_CMPEQI_COMPACT; goto extract_sfmt_cmpeqi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 9 : - if ((entire_insn & 0xff00) == 0x8900) - { itype = SH64_COMPACT_INSN_BT_COMPACT; goto extract_sfmt_bf_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 11 : - if ((entire_insn & 0xff00) == 0x8b00) - { itype = SH64_COMPACT_INSN_BF_COMPACT; goto extract_sfmt_bf_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 13 : - if ((entire_insn & 0xff00) == 0x8d00) - { itype = SH64_COMPACT_INSN_BTS_COMPACT; goto extract_sfmt_bfs_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 15 : - if ((entire_insn & 0xff00) == 0x8f00) - { itype = SH64_COMPACT_INSN_BFS_COMPACT; goto extract_sfmt_bfs_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_MOVB5_COMPACT; goto extract_sfmt_movb5_compact; + case 1 : itype = SH64_COMPACT_INSN_MOVW5_COMPACT; goto extract_sfmt_movw5_compact; + case 4 : itype = SH64_COMPACT_INSN_MOVB10_COMPACT; goto extract_sfmt_movb10_compact; + case 5 : itype = SH64_COMPACT_INSN_MOVW11_COMPACT; goto extract_sfmt_movw11_compact; + case 8 : itype = SH64_COMPACT_INSN_CMPEQI_COMPACT; goto extract_sfmt_cmpeqi_compact; + case 9 : itype = SH64_COMPACT_INSN_BT_COMPACT; goto extract_sfmt_bf_compact; + case 11 : itype = SH64_COMPACT_INSN_BF_COMPACT; goto extract_sfmt_bf_compact; + case 13 : itype = SH64_COMPACT_INSN_BTS_COMPACT; goto extract_sfmt_bfs_compact; + case 15 : itype = SH64_COMPACT_INSN_BFS_COMPACT; goto extract_sfmt_bfs_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -2010,10 +1774,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1276 : /* fall through */ case 1277 : /* fall through */ case 1278 : /* fall through */ - case 1279 : - if ((entire_insn & 0xf000) == 0x9000) - { itype = SH64_COMPACT_INSN_MOVW10_COMPACT; goto extract_sfmt_movw10_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1279 : itype = SH64_COMPACT_INSN_MOVW10_COMPACT; goto extract_sfmt_movw10_compact; case 1280 : /* fall through */ case 1281 : /* fall through */ case 1282 : /* fall through */ @@ -2141,10 +1902,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1404 : /* fall through */ case 1405 : /* fall through */ case 1406 : /* fall through */ - case 1407 : - if ((entire_insn & 0xf000) == 0xa000) - { itype = SH64_COMPACT_INSN_BRA_COMPACT; goto extract_sfmt_bra_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1407 : itype = SH64_COMPACT_INSN_BRA_COMPACT; goto extract_sfmt_bra_compact; case 1408 : /* fall through */ case 1409 : /* fall through */ case 1410 : /* fall through */ @@ -2272,10 +2030,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1532 : /* fall through */ case 1533 : /* fall through */ case 1534 : /* fall through */ - case 1535 : - if ((entire_insn & 0xf000) == 0xb000) - { itype = SH64_COMPACT_INSN_BSR_COMPACT; goto extract_sfmt_bsr_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1535 : itype = SH64_COMPACT_INSN_BSR_COMPACT; goto extract_sfmt_bsr_compact; case 1536 : /* fall through */ case 1537 : /* fall through */ case 1538 : /* fall through */ @@ -2408,70 +2163,22 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 8) & (15 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xff00) == 0xc000) - { itype = SH64_COMPACT_INSN_MOVB4_COMPACT; goto extract_sfmt_movb4_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xff00) == 0xc100) - { itype = SH64_COMPACT_INSN_MOVW4_COMPACT; goto extract_sfmt_movw4_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 2 : - if ((entire_insn & 0xff00) == 0xc200) - { itype = SH64_COMPACT_INSN_MOVL4_COMPACT; goto extract_sfmt_movl4_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 3 : - if ((entire_insn & 0xff00) == 0xc300) - { itype = SH64_COMPACT_INSN_TRAPA_COMPACT; goto extract_sfmt_trapa_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 4 : - if ((entire_insn & 0xff00) == 0xc400) - { itype = SH64_COMPACT_INSN_MOVB9_COMPACT; goto extract_sfmt_movb9_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 5 : - if ((entire_insn & 0xff00) == 0xc500) - { itype = SH64_COMPACT_INSN_MOVW9_COMPACT; goto extract_sfmt_movw9_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 6 : - if ((entire_insn & 0xff00) == 0xc600) - { itype = SH64_COMPACT_INSN_MOVL9_COMPACT; goto extract_sfmt_movl9_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 7 : - if ((entire_insn & 0xff00) == 0xc700) - { itype = SH64_COMPACT_INSN_MOVA_COMPACT; goto extract_sfmt_mova_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 8 : - if ((entire_insn & 0xff00) == 0xc800) - { itype = SH64_COMPACT_INSN_TSTI_COMPACT; goto extract_sfmt_tsti_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 9 : - if ((entire_insn & 0xff00) == 0xc900) - { itype = SH64_COMPACT_INSN_ANDI_COMPACT; goto extract_sfmt_andi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 10 : - if ((entire_insn & 0xff00) == 0xca00) - { itype = SH64_COMPACT_INSN_XORI_COMPACT; goto extract_sfmt_andi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 11 : - if ((entire_insn & 0xff00) == 0xcb00) - { itype = SH64_COMPACT_INSN_ORI_COMPACT; goto extract_sfmt_andi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 12 : - if ((entire_insn & 0xff00) == 0xcc00) - { itype = SH64_COMPACT_INSN_TSTB_COMPACT; goto extract_sfmt_tstb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 13 : - if ((entire_insn & 0xff00) == 0xcd00) - { itype = SH64_COMPACT_INSN_ANDB_COMPACT; goto extract_sfmt_andb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 14 : - if ((entire_insn & 0xff00) == 0xce00) - { itype = SH64_COMPACT_INSN_XORB_COMPACT; goto extract_sfmt_andb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 15 : - if ((entire_insn & 0xff00) == 0xcf00) - { itype = SH64_COMPACT_INSN_ORB_COMPACT; goto extract_sfmt_andb_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_MOVB4_COMPACT; goto extract_sfmt_movb4_compact; + case 1 : itype = SH64_COMPACT_INSN_MOVW4_COMPACT; goto extract_sfmt_movw4_compact; + case 2 : itype = SH64_COMPACT_INSN_MOVL4_COMPACT; goto extract_sfmt_movl4_compact; + case 3 : itype = SH64_COMPACT_INSN_TRAPA_COMPACT; goto extract_sfmt_trapa_compact; + case 4 : itype = SH64_COMPACT_INSN_MOVB9_COMPACT; goto extract_sfmt_movb9_compact; + case 5 : itype = SH64_COMPACT_INSN_MOVW9_COMPACT; goto extract_sfmt_movw9_compact; + case 6 : itype = SH64_COMPACT_INSN_MOVL9_COMPACT; goto extract_sfmt_movl9_compact; + case 7 : itype = SH64_COMPACT_INSN_MOVA_COMPACT; goto extract_sfmt_mova_compact; + case 8 : itype = SH64_COMPACT_INSN_TSTI_COMPACT; goto extract_sfmt_tsti_compact; + case 9 : itype = SH64_COMPACT_INSN_ANDI_COMPACT; goto extract_sfmt_andi_compact; + case 10 : itype = SH64_COMPACT_INSN_XORI_COMPACT; goto extract_sfmt_andi_compact; + case 11 : itype = SH64_COMPACT_INSN_ORI_COMPACT; goto extract_sfmt_andi_compact; + case 12 : itype = SH64_COMPACT_INSN_TSTB_COMPACT; goto extract_sfmt_tstb_compact; + case 13 : itype = SH64_COMPACT_INSN_ANDB_COMPACT; goto extract_sfmt_andb_compact; + case 14 : itype = SH64_COMPACT_INSN_XORB_COMPACT; goto extract_sfmt_andb_compact; + case 15 : itype = SH64_COMPACT_INSN_ORB_COMPACT; goto extract_sfmt_andb_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -2602,10 +2309,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1788 : /* fall through */ case 1789 : /* fall through */ case 1790 : /* fall through */ - case 1791 : - if ((entire_insn & 0xf000) == 0xd000) - { itype = SH64_COMPACT_INSN_MOVL10_COMPACT; goto extract_sfmt_movl10_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1791 : itype = SH64_COMPACT_INSN_MOVL10_COMPACT; goto extract_sfmt_movl10_compact; case 1792 : /* fall through */ case 1793 : /* fall through */ case 1794 : /* fall through */ @@ -2733,10 +2437,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1916 : /* fall through */ case 1917 : /* fall through */ case 1918 : /* fall through */ - case 1919 : - if ((entire_insn & 0xf000) == 0xe000) - { itype = SH64_COMPACT_INSN_MOVI_COMPACT; goto extract_sfmt_movi_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 1919 : itype = SH64_COMPACT_INSN_MOVI_COMPACT; goto extract_sfmt_movi_compact; case 1920 : /* fall through */ case 1936 : /* fall through */ case 1952 : /* fall through */ @@ -2744,10 +2445,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1984 : /* fall through */ case 2000 : /* fall through */ case 2016 : /* fall through */ - case 2032 : - if ((entire_insn & 0xf00f) == 0xf000) - { itype = SH64_COMPACT_INSN_FADD_COMPACT; goto extract_sfmt_fadd_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2032 : itype = SH64_COMPACT_INSN_FADD_COMPACT; goto extract_sfmt_fadd_compact; case 1921 : /* fall through */ case 1937 : /* fall through */ case 1953 : /* fall through */ @@ -2755,10 +2453,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1985 : /* fall through */ case 2001 : /* fall through */ case 2017 : /* fall through */ - case 2033 : - if ((entire_insn & 0xf00f) == 0xf001) - { itype = SH64_COMPACT_INSN_FSUB_COMPACT; goto extract_sfmt_fadd_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2033 : itype = SH64_COMPACT_INSN_FSUB_COMPACT; goto extract_sfmt_fadd_compact; case 1922 : /* fall through */ case 1938 : /* fall through */ case 1954 : /* fall through */ @@ -2766,10 +2461,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1986 : /* fall through */ case 2002 : /* fall through */ case 2018 : /* fall through */ - case 2034 : - if ((entire_insn & 0xf00f) == 0xf002) - { itype = SH64_COMPACT_INSN_FMUL_COMPACT; goto extract_sfmt_fadd_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2034 : itype = SH64_COMPACT_INSN_FMUL_COMPACT; goto extract_sfmt_fadd_compact; case 1923 : /* fall through */ case 1939 : /* fall through */ case 1955 : /* fall through */ @@ -2777,10 +2469,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1987 : /* fall through */ case 2003 : /* fall through */ case 2019 : /* fall through */ - case 2035 : - if ((entire_insn & 0xf00f) == 0xf003) - { itype = SH64_COMPACT_INSN_FDIV_COMPACT; goto extract_sfmt_fadd_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2035 : itype = SH64_COMPACT_INSN_FDIV_COMPACT; goto extract_sfmt_fadd_compact; case 1924 : /* fall through */ case 1940 : /* fall through */ case 1956 : /* fall through */ @@ -2788,10 +2477,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1988 : /* fall through */ case 2004 : /* fall through */ case 2020 : /* fall through */ - case 2036 : - if ((entire_insn & 0xf00f) == 0xf004) - { itype = SH64_COMPACT_INSN_FCMPEQ_COMPACT; goto extract_sfmt_fcmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2036 : itype = SH64_COMPACT_INSN_FCMPEQ_COMPACT; goto extract_sfmt_fcmpeq_compact; case 1925 : /* fall through */ case 1941 : /* fall through */ case 1957 : /* fall through */ @@ -2799,10 +2485,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1989 : /* fall through */ case 2005 : /* fall through */ case 2021 : /* fall through */ - case 2037 : - if ((entire_insn & 0xf00f) == 0xf005) - { itype = SH64_COMPACT_INSN_FCMPGT_COMPACT; goto extract_sfmt_fcmpeq_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2037 : itype = SH64_COMPACT_INSN_FCMPGT_COMPACT; goto extract_sfmt_fcmpeq_compact; case 1926 : /* fall through */ case 1942 : /* fall through */ case 1958 : /* fall through */ @@ -2810,10 +2493,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1990 : /* fall through */ case 2006 : /* fall through */ case 2022 : /* fall through */ - case 2038 : - if ((entire_insn & 0xf00f) == 0xf006) - { itype = SH64_COMPACT_INSN_FMOV4_COMPACT; goto extract_sfmt_fmov4_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2038 : itype = SH64_COMPACT_INSN_FMOV4_COMPACT; goto extract_sfmt_fmov4_compact; case 1927 : /* fall through */ case 1943 : /* fall through */ case 1959 : /* fall through */ @@ -2821,10 +2501,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1991 : /* fall through */ case 2007 : /* fall through */ case 2023 : /* fall through */ - case 2039 : - if ((entire_insn & 0xf00f) == 0xf007) - { itype = SH64_COMPACT_INSN_FMOV7_COMPACT; goto extract_sfmt_fmov7_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2039 : itype = SH64_COMPACT_INSN_FMOV7_COMPACT; goto extract_sfmt_fmov7_compact; case 1928 : /* fall through */ case 1944 : /* fall through */ case 1960 : /* fall through */ @@ -2832,10 +2509,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1992 : /* fall through */ case 2008 : /* fall through */ case 2024 : /* fall through */ - case 2040 : - if ((entire_insn & 0xf00f) == 0xf008) - { itype = SH64_COMPACT_INSN_FMOV2_COMPACT; goto extract_sfmt_fmov2_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2040 : itype = SH64_COMPACT_INSN_FMOV2_COMPACT; goto extract_sfmt_fmov2_compact; case 1929 : /* fall through */ case 1945 : /* fall through */ case 1961 : /* fall through */ @@ -2843,10 +2517,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1993 : /* fall through */ case 2009 : /* fall through */ case 2025 : /* fall through */ - case 2041 : - if ((entire_insn & 0xf00f) == 0xf009) - { itype = SH64_COMPACT_INSN_FMOV3_COMPACT; goto extract_sfmt_fmov3_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2041 : itype = SH64_COMPACT_INSN_FMOV3_COMPACT; goto extract_sfmt_fmov3_compact; case 1930 : /* fall through */ case 1946 : /* fall through */ case 1962 : /* fall through */ @@ -2854,10 +2525,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1994 : /* fall through */ case 2010 : /* fall through */ case 2026 : /* fall through */ - case 2042 : - if ((entire_insn & 0xf00f) == 0xf00a) - { itype = SH64_COMPACT_INSN_FMOV5_COMPACT; goto extract_sfmt_fmov5_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2042 : itype = SH64_COMPACT_INSN_FMOV5_COMPACT; goto extract_sfmt_fmov5_compact; case 1931 : /* fall through */ case 1947 : /* fall through */ case 1963 : /* fall through */ @@ -2865,10 +2533,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1995 : /* fall through */ case 2011 : /* fall through */ case 2027 : /* fall through */ - case 2043 : - if ((entire_insn & 0xf00f) == 0xf00b) - { itype = SH64_COMPACT_INSN_FMOV6_COMPACT; goto extract_sfmt_fmov6_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2043 : itype = SH64_COMPACT_INSN_FMOV6_COMPACT; goto extract_sfmt_fmov6_compact; case 1932 : /* fall through */ case 1948 : /* fall through */ case 1964 : /* fall through */ @@ -2876,23 +2541,14 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1996 : /* fall through */ case 2012 : /* fall through */ case 2028 : /* fall through */ - case 2044 : - if ((entire_insn & 0xf00f) == 0xf00c) - { itype = SH64_COMPACT_INSN_FMOV1_COMPACT; goto extract_sfmt_fmov1_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2044 : itype = SH64_COMPACT_INSN_FMOV1_COMPACT; goto extract_sfmt_fmov1_compact; case 1933 : { unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0xf00d) - { itype = SH64_COMPACT_INSN_FSTS_COMPACT; goto extract_sfmt_fsts_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0xf08d) - { itype = SH64_COMPACT_INSN_FLDI0_COMPACT; goto extract_sfmt_fldi0_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_FSTS_COMPACT; goto extract_sfmt_fsts_compact; + case 1 : itype = SH64_COMPACT_INSN_FLDI0_COMPACT; goto extract_sfmt_fldi0_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -2903,23 +2559,14 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, case 1998 : /* fall through */ case 2014 : /* fall through */ case 2030 : /* fall through */ - case 2046 : - if ((entire_insn & 0xf00f) == 0xf00e) - { itype = SH64_COMPACT_INSN_FMAC_COMPACT; goto extract_sfmt_fmac_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 2046 : itype = SH64_COMPACT_INSN_FMAC_COMPACT; goto extract_sfmt_fmac_compact; case 1949 : { unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0xf01d) - { itype = SH64_COMPACT_INSN_FLDS_COMPACT; goto extract_sfmt_flds_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0xf09d) - { itype = SH64_COMPACT_INSN_FLDI1_COMPACT; goto extract_sfmt_fldi0_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_FLDS_COMPACT; goto extract_sfmt_flds_compact; + case 1 : itype = SH64_COMPACT_INSN_FLDI1_COMPACT; goto extract_sfmt_fldi0_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -2928,10 +2575,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0xf02d) - { itype = SH64_COMPACT_INSN_FLOAT_COMPACT; goto extract_sfmt_float_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_FLOAT_COMPACT; goto extract_sfmt_float_compact; case 1 : if ((entire_insn & 0xf1ff) == 0xf0ad) { itype = SH64_COMPACT_INSN_FCNVSD_COMPACT; goto extract_sfmt_fcnvsd_compact; } @@ -2944,10 +2588,7 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0xf03d) - { itype = SH64_COMPACT_INSN_FTRC_COMPACT; goto extract_sfmt_ftrc_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_FTRC_COMPACT; goto extract_sfmt_ftrc_compact; case 1 : if ((entire_insn & 0xf1ff) == 0xf0bd) { itype = SH64_COMPACT_INSN_FCNVDS_COMPACT; goto extract_sfmt_fcnvds_compact; } @@ -2968,14 +2609,8 @@ sh64_compact_decode (SIM_CPU *current_cpu, IADDR pc, unsigned int val = (((insn >> 7) & (1 << 0))); switch (val) { - case 0 : - if ((entire_insn & 0xf0ff) == 0xf06d) - { itype = SH64_COMPACT_INSN_FSQRT_COMPACT; goto extract_sfmt_fabs_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; - case 1 : - if ((entire_insn & 0xf0ff) == 0xf0ed) - { itype = SH64_COMPACT_INSN_FIPR_COMPACT; goto extract_sfmt_fipr_compact; } - itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; + case 0 : itype = SH64_COMPACT_INSN_FSQRT_COMPACT; goto extract_sfmt_fabs_compact; + case 1 : itype = SH64_COMPACT_INSN_FIPR_COMPACT; goto extract_sfmt_fipr_compact; default : itype = SH64_COMPACT_INSN_X_INVALID; goto extract_sfmt_empty; } } diff --git a/sim/sh64/decode-compact.h b/sim/sh64/decode-compact.h index 39bf7dc..554856a 100644 --- a/sim/sh64/decode-compact.h +++ b/sim/sh64/decode-compact.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/decode-media.c b/sim/sh64/decode-media.c index 300ecb9..4ee6093 100644 --- a/sim/sh64/decode-media.c +++ b/sim/sh64/decode-media.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -180,7 +181,7 @@ static const struct insn_sem sh64_media_insn_sem[] = { SH_INSN_MMULLOWL, SH64_MEDIA_INSN_MMULLOWL, SH64_MEDIA_SFMT_ADD }, { SH_INSN_MMULSUMWQ, SH64_MEDIA_INSN_MMULSUMWQ, SH64_MEDIA_SFMT_MCMV }, { SH_INSN_MOVI, SH64_MEDIA_INSN_MOVI, SH64_MEDIA_SFMT_MOVI }, - { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_MPERMW }, + { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_ADD }, { SH_INSN_MSADUBQ, SH64_MEDIA_INSN_MSADUBQ, SH64_MEDIA_SFMT_MCMV }, { SH_INSN_MSHALDSL, SH64_MEDIA_INSN_MSHALDSL, SH64_MEDIA_SFMT_ADD }, { SH_INSN_MSHALDSW, SH64_MEDIA_INSN_MSHALDSW, SH64_MEDIA_SFMT_ADD }, @@ -222,15 +223,15 @@ static const struct insn_sem sh64_media_insn_sem[] = { SH_INSN_SHARD, SH64_MEDIA_INSN_SHARD, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHARDL, SH64_MEDIA_INSN_SHARDL, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHARI, SH64_MEDIA_INSN_SHARI, SH64_MEDIA_SFMT_SHARI }, - { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARIL }, + { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARI }, { SH_INSN_SHLLD, SH64_MEDIA_INSN_SHLLD, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHLLDL, SH64_MEDIA_INSN_SHLLDL, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHLLI, SH64_MEDIA_INSN_SHLLI, SH64_MEDIA_SFMT_SHARI }, - { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARIL }, + { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARI }, { SH_INSN_SHLRD, SH64_MEDIA_INSN_SHLRD, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHLRDL, SH64_MEDIA_INSN_SHLRDL, SH64_MEDIA_SFMT_ADD }, { SH_INSN_SHLRI, SH64_MEDIA_INSN_SHLRI, SH64_MEDIA_SFMT_SHARI }, - { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARIL }, + { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARI }, { SH_INSN_SHORI, SH64_MEDIA_INSN_SHORI, SH64_MEDIA_SFMT_SHORI }, { SH_INSN_SLEEP, SH64_MEDIA_INSN_SLEEP, SH64_MEDIA_SFMT_NOP }, { SH_INSN_STB, SH64_MEDIA_INSN_STB, SH64_MEDIA_SFMT_STB }, @@ -602,7 +603,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 173 : if ((entire_insn & 0xfc0f000f) == 0x280d0000) - { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_mpermw; } + { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_add; } itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 175 : if ((entire_insn & 0xfc0f000f) == 0x280f0000) @@ -1294,7 +1295,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 784 : if ((entire_insn & 0xfc0f000f) == 0xc4000000) - { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_sharil; } + { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_shari; } itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 785 : if ((entire_insn & 0xfc0f000f) == 0xc4010000) @@ -1302,7 +1303,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 786 : if ((entire_insn & 0xfc0f000f) == 0xc4020000) - { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_sharil; } + { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_shari; } itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 787 : if ((entire_insn & 0xfc0f000f) == 0xc4030000) @@ -1310,7 +1311,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 790 : if ((entire_insn & 0xfc0f000f) == 0xc4060000) - { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_sharil; } + { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_shari; } itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty; case 791 : if ((entire_insn & 0xfc0f000f) == 0xc4070000) @@ -3235,38 +3236,6 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_sfmt_mpermw: - { - const IDESC *idesc = &sh64_media_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_add.f - UINT f_left; - UINT f_right; - UINT f_dest; - - f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6); - f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6); - f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6); - - /* Record the fields for the semantic handler. */ - FLD (f_left) = f_left; - FLD (f_right) = f_right; - FLD (f_dest) = f_dest; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mpermw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_rm) = f_left; - FLD (in_rn) = f_right; - FLD (out_rd) = f_dest; - } -#endif -#undef FLD - return idesc; - } - extract_sfmt_nop: { const IDESC *idesc = &sh64_media_insn_data[itype]; @@ -3483,37 +3452,6 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_sfmt_sharil: - { - const IDESC *idesc = &sh64_media_insn_data[itype]; - CGEN_INSN_INT insn = entire_insn; -#define FLD(f) abuf->fields.sfmt_shari.f - UINT f_left; - UINT f_uimm6; - UINT f_dest; - - f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6); - f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6); - f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6); - - /* Record the fields for the semantic handler. */ - FLD (f_left) = f_left; - FLD (f_uimm6) = f_uimm6; - FLD (f_dest) = f_dest; - TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sharil", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0)); - -#if WITH_PROFILE_MODEL_P - /* Record the fields for profiling. */ - if (PROFILE_MODEL_P (current_cpu)) - { - FLD (in_rm) = f_left; - FLD (out_rd) = f_dest; - } -#endif -#undef FLD - return idesc; - } - extract_sfmt_shori: { const IDESC *idesc = &sh64_media_insn_data[itype]; diff --git a/sim/sh64/decode-media.h b/sim/sh64/decode-media.h index 6c04ea4..8f317c6 100644 --- a/sim/sh64/decode-media.h +++ b/sim/sh64/decode-media.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -105,13 +106,12 @@ typedef enum sh64_media_sfmt_type { , SH64_MEDIA_SFMT_LDHIL, SH64_MEDIA_SFMT_LDHIQ, SH64_MEDIA_SFMT_LDLOL, SH64_MEDIA_SFMT_LDLOQ , SH64_MEDIA_SFMT_LDXB, SH64_MEDIA_SFMT_LDXL, SH64_MEDIA_SFMT_LDXQ, SH64_MEDIA_SFMT_LDXUB , SH64_MEDIA_SFMT_LDXUW, SH64_MEDIA_SFMT_LDXW, SH64_MEDIA_SFMT_MCMV, SH64_MEDIA_SFMT_MOVI - , SH64_MEDIA_SFMT_MPERMW, SH64_MEDIA_SFMT_NOP, SH64_MEDIA_SFMT_ORI, SH64_MEDIA_SFMT_PTA - , SH64_MEDIA_SFMT_PTABS, SH64_MEDIA_SFMT_PTREL, SH64_MEDIA_SFMT_PUTCFG, SH64_MEDIA_SFMT_PUTCON - , SH64_MEDIA_SFMT_SHARI, SH64_MEDIA_SFMT_SHARIL, SH64_MEDIA_SFMT_SHORI, SH64_MEDIA_SFMT_STB - , SH64_MEDIA_SFMT_STL, SH64_MEDIA_SFMT_STQ, SH64_MEDIA_SFMT_STW, SH64_MEDIA_SFMT_STHIL - , SH64_MEDIA_SFMT_STHIQ, SH64_MEDIA_SFMT_STLOL, SH64_MEDIA_SFMT_STLOQ, SH64_MEDIA_SFMT_STXB - , SH64_MEDIA_SFMT_STXL, SH64_MEDIA_SFMT_STXQ, SH64_MEDIA_SFMT_STXW, SH64_MEDIA_SFMT_SWAPQ - , SH64_MEDIA_SFMT_TRAPA, SH64_MEDIA_SFMT_XORI + , SH64_MEDIA_SFMT_NOP, SH64_MEDIA_SFMT_ORI, SH64_MEDIA_SFMT_PTA, SH64_MEDIA_SFMT_PTABS + , SH64_MEDIA_SFMT_PTREL, SH64_MEDIA_SFMT_PUTCFG, SH64_MEDIA_SFMT_PUTCON, SH64_MEDIA_SFMT_SHARI + , SH64_MEDIA_SFMT_SHORI, SH64_MEDIA_SFMT_STB, SH64_MEDIA_SFMT_STL, SH64_MEDIA_SFMT_STQ + , SH64_MEDIA_SFMT_STW, SH64_MEDIA_SFMT_STHIL, SH64_MEDIA_SFMT_STHIQ, SH64_MEDIA_SFMT_STLOL + , SH64_MEDIA_SFMT_STLOQ, SH64_MEDIA_SFMT_STXB, SH64_MEDIA_SFMT_STXL, SH64_MEDIA_SFMT_STXQ + , SH64_MEDIA_SFMT_STXW, SH64_MEDIA_SFMT_SWAPQ, SH64_MEDIA_SFMT_TRAPA, SH64_MEDIA_SFMT_XORI } SH64_MEDIA_SFMT_TYPE; /* Function unit handlers (user written). */ diff --git a/sim/sh64/defs-compact.h b/sim/sh64/defs-compact.h index e61fd8a..f5a60ae 100644 --- a/sim/sh64/defs-compact.h +++ b/sim/sh64/defs-compact.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/defs-media.h b/sim/sh64/defs-media.h index 44ff301..91b95e4 100644 --- a/sim/sh64/defs-media.h +++ b/sim/sh64/defs-media.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/sem-compact-switch.c b/sim/sh64/sem-compact-switch.c index db91f91..43ea3c6 100644 --- a/sim/sh64/sem-compact-switch.c +++ b/sim/sh64/sem-compact-switch.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/sem-compact.c b/sim/sh64/sem-compact.c index 31b75c3..103200ab 100644 --- a/sim/sh64/sem-compact.c +++ b/sim/sh64/sem-compact.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/sem-media-switch.c b/sim/sh64/sem-media-switch.c index eb669c4..681e4bd 100644 --- a/sim/sh64/sem-media-switch.c +++ b/sim/sh64/sem-media-switch.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/sem-media.c b/sim/sh64/sem-media.c index 64da25c..e9449af 100644 --- a/sim/sh64/sem-media.c +++ b/sim/sh64/sem-media.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU simulators. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ diff --git a/sim/sh64/sh-desc.c b/sim/sh64/sh-desc.c index 8f10e3b..09d7aab 100644 --- a/sim/sh64/sh-desc.c +++ b/sim/sh64/sh-desc.c @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -788,8 +789,8 @@ const CGEN_HW_ENTRY sh_cgen_hw_table[] = const CGEN_IFLD sh_cgen_ifld_table[] = { - { SH_F_NIL, "f-nil", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, - { SH_F_ANYOF, "f-anyof", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, + { SH_F_NIL, "f-nil", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xc0" } } } } }, + { SH_F_ANYOF, "f-anyof", 0, 0, 0, 0, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\xc0" } } } } }, { SH_F_OP4, "f-op4", 0, 32, 0, 4, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, { SH_F_OP8, "f-op8", 0, 32, 0, 8, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, { SH_F_OP16, "f-op16", 0, 32, 0, 16, { 0, { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, @@ -890,7 +891,7 @@ const CGEN_OPERAND sh_cgen_operand_table[] = /* pc: program counter */ { "pc", SH_OPERAND_PC, HW_H_PC, 0, 0, { 0, { (const PTR) &sh_cgen_ifld_table[SH_F_NIL] } }, - { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\x80" } } } } }, + { 0|A(SEM_ONLY), { { { (1<<MACH_BASE), 0 } }, { { 1, "\xc0" } } } } }, /* endian: Endian mode */ { "endian", SH_OPERAND_ENDIAN, HW_H_ENDIAN, 0, 0, { 0, { (const PTR) 0 } }, diff --git a/sim/sh64/sh-opc.h b/sim/sh64/sh-opc.h index 095dd2b..640d1c6 100644 --- a/sim/sh64/sh-opc.h +++ b/sim/sh64/sh-opc.h @@ -2,22 +2,23 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2005 Free Software Foundation, Inc. +Copyright 1996-2009 Free Software Foundation, Inc. This file is part of the GNU Binutils and/or GDB, the GNU debugger. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 3 of the License, or -(at your option) any later version. + This file is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3, or (at your option) + any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + It is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. -You should have received a copy of the GNU General Public License -along with this program. If not, see <http://www.gnu.org/licenses/>. + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ |