diff options
author | Alan Modra <amodra@gmail.com> | 2023-08-10 12:14:01 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2023-08-19 12:41:32 +0930 |
commit | 9d4f36166d626554adbecbc5bc0f1f4791354e03 (patch) | |
tree | 940cc321cca3b360b9634076fd85bec29b27dafd /sim/iq2000 | |
parent | c7631501b22bb607a10396621ad4b82c357ae938 (diff) | |
download | gdb-9d4f36166d626554adbecbc5bc0f1f4791354e03.zip gdb-9d4f36166d626554adbecbc5bc0f1f4791354e03.tar.gz gdb-9d4f36166d626554adbecbc5bc0f1f4791354e03.tar.bz2 |
sim regen
This regenerates sim files.
Tested with the following tools from a recent binutils build in
sim-site-config.exp, plus a few cross compilers.
set AS_FOR_TARGET_AARCH64 "/home/alan/build/gas/aarch64-linux-gnu/gas/as-new"
set LD_FOR_TARGET_AARCH64 "/home/alan/build/gas/aarch64-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_AARCH64 "aarch64-linux-gnu-gcc"
set AS_FOR_TARGET_ARM "/home/alan/build/gas/arm-linux-gnueabi/gas/as-new"
set LD_FOR_TARGET_ARM "/home/alan/build/gas/arm-linux-gnueabi/ld/ld-new"
set CC_FOR_TARGET_ARM "arm-linux-gnueabi-gcc"
set AS_FOR_TARGET_AVR "/home/alan/build/gas/avr-elf/gas/as-new"
set LD_FOR_TARGET_AVR "/home/alan/build/gas/avr-elf/ld/ld-new"
set CC_FOR_TARGET_AVR ""
set AS_FOR_TARGET_BFIN "/home/alan/build/gas/bfin-elf/gas/as-new"
set LD_FOR_TARGET_BFIN "/home/alan/build/gas/bfin-elf/ld/ld-new"
set CC_FOR_TARGET_BFIN ""
set AS_FOR_TARGET_BPF "/home/alan/build/gas/bpf-none/gas/as-new"
set LD_FOR_TARGET_BPF "/home/alan/build/gas/bpf-none/ld/ld-new"
set CC_FOR_TARGET_BPF ""
set AS_FOR_TARGET_CR16 "/home/alan/build/gas/cr16-elf/gas/as-new"
set LD_FOR_TARGET_CR16 "/home/alan/build/gas/cr16-elf/ld/ld-new"
set CC_FOR_TARGET_CR16 ""
set AS_FOR_TARGET_CRIS "/home/alan/build/gas/cris-elf/gas/as-new"
set LD_FOR_TARGET_CRIS "/home/alan/build/gas/cris-elf/ld/ld-new"
set CC_FOR_TARGET_CRIS ""
set AS_FOR_TARGET_D10V "/home/alan/build/gas/d10v-elf/gas/as-new"
set LD_FOR_TARGET_D10V "/home/alan/build/gas/d10v-elf/ld/ld-new"
set CC_FOR_TARGET_D10V ""
set AS_FOR_TARGET_FRV "/home/alan/build/gas/frv-elf/gas/as-new"
set LD_FOR_TARGET_FRV "/home/alan/build/gas/frv-elf/ld/ld-new"
set CC_FOR_TARGET_FRV ""
set AS_FOR_TARGET_FT32 "/home/alan/build/gas/ft32-elf/gas/as-new"
set LD_FOR_TARGET_FT32 "/home/alan/build/gas/ft32-elf/ld/ld-new"
set CC_FOR_TARGET_FT32 ""
set AS_FOR_TARGET_H8300 "/home/alan/build/gas/h8300-elf/gas/as-new"
set LD_FOR_TARGET_H8300 "/home/alan/build/gas/h8300-elf/ld/ld-new"
set CC_FOR_TARGET_H8300 ""
set AS_FOR_TARGET_IQ2000 "/home/alan/build/gas/iq2000-elf/gas/as-new"
set LD_FOR_TARGET_IQ2000 "/home/alan/build/gas/iq2000-elf/ld/ld-new"
set CC_FOR_TARGET_IQ2000 ""
set AS_FOR_TARGET_LM32 "/home/alan/build/gas/lm32-linux-gnu/gas/as-new"
set LD_FOR_TARGET_LM32 "/home/alan/build/gas/lm32-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_LM32 ""
set AS_FOR_TARGET_M32C "/home/alan/build/gas/m32c-elf/gas/as-new"
set LD_FOR_TARGET_M32C "/home/alan/build/gas/m32c-elf/ld/ld-new"
set CC_FOR_TARGET_M32C ""
set AS_FOR_TARGET_M32R "/home/alan/build/gas/m32r-elf/gas/as-new"
set LD_FOR_TARGET_M32R "/home/alan/build/gas/m32r-elf/ld/ld-new"
set CC_FOR_TARGET_M32R ""
set AS_FOR_TARGET_M68HC11 "/home/alan/build/gas/m68hc11-elf/gas/as-new"
set LD_FOR_TARGET_M68HC11 "/home/alan/build/gas/m68hc11-elf/ld/ld-new"
set CC_FOR_TARGET_M68HC11 ""
set AS_FOR_TARGET_MCORE "/home/alan/build/gas/mcore-elf/gas/as-new"
set LD_FOR_TARGET_MCORE "/home/alan/build/gas/mcore-elf/ld/ld-new"
set CC_FOR_TARGET_MCORE ""
set AS_FOR_TARGET_MICROBLAZE "/home/alan/build/gas/microblaze-linux-gnu/gas/as-new"
set LD_FOR_TARGET_MICROBLAZE "/home/alan/build/gas/microblaze-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_MICROBLAZE "microblaze-linux-gnu-gcc"
set AS_FOR_TARGET_MIPS "/home/alan/build/gas/mips-linux-gnu/gas/as-new"
set LD_FOR_TARGET_MIPS "/home/alan/build/gas/mips-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_MIPS "mips-linux-gnu-gcc"
set AS_FOR_TARGET_MN10300 "/home/alan/build/gas/mn10300-elf/gas/as-new"
set LD_FOR_TARGET_MN10300 "/home/alan/build/gas/mn10300-elf/ld/ld-new"
set CC_FOR_TARGET_MN10300 ""
set AS_FOR_TARGET_MOXIE "/home/alan/build/gas/moxie-elf/gas/as-new"
set LD_FOR_TARGET_MOXIE "/home/alan/build/gas/moxie-elf/ld/ld-new"
set CC_FOR_TARGET_MOXIE ""
set AS_FOR_TARGET_MSP430 "/home/alan/build/gas/msp430-elf/gas/as-new"
set LD_FOR_TARGET_MSP430 "/home/alan/build/gas/msp430-elf/ld/ld-new"
set CC_FOR_TARGET_MSP430 ""
set AS_FOR_TARGET_OR1K "/home/alan/build/gas/or1k-linux-gnu/gas/as-new"
set LD_FOR_TARGET_OR1K "/home/alan/build/gas/or1k-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_OR1K ""
set AS_FOR_TARGET_PPC "/home/alan/build/gas/powerpc-linux-gnu/gas/as-new"
set LD_FOR_TARGET_PPC "/home/alan/build/gas/powerpc-linux-gnu/ld/ld-new"
set CC_FOR_TARGET_PPC "powerpc-linux-gnu-gcc"
set AS_FOR_TARGET_PRU "/home/alan/build/gas/pru-elf/gas/as-new"
set LD_FOR_TARGET_PRU "/home/alan/build/gas/pru-elf/ld/ld-new"
set CC_FOR_TARGET_PRU ""
set AS_FOR_TARGET_RISCV "/home/alan/build/gas/riscv32-elf/gas/as-new"
set LD_FOR_TARGET_RISCV "/home/alan/build/gas/riscv32-elf/ld/ld-new"
set CC_FOR_TARGET_RISCV ""
set AS_FOR_TARGET_RL78 "/home/alan/build/gas/rl78-elf/gas/as-new"
set LD_FOR_TARGET_RL78 "/home/alan/build/gas/rl78-elf/ld/ld-new"
set CC_FOR_TARGET_RL78 ""
set AS_FOR_TARGET_RX "/home/alan/build/gas/rx-elf/gas/as-new"
set LD_FOR_TARGET_RX "/home/alan/build/gas/rx-elf/ld/ld-new"
set CC_FOR_TARGET_RX ""
set AS_FOR_TARGET_SH "/home/alan/build/gas/sh-rtems/gas/as-new"
set LD_FOR_TARGET_SH "/home/alan/build/gas/sh-rtems/ld/ld-new"
set CC_FOR_TARGET_SH ""
set AS_FOR_TARGET_ERC32 ""
set LD_FOR_TARGET_ERC32 ""
set CC_FOR_TARGET_ERC32 ""
set AS_FOR_TARGET_V850 "/home/alan/build/gas/v850-elf/gas/as-new"
set LD_FOR_TARGET_V850 "/home/alan/build/gas/v850-elf/ld/ld-new"
set CC_FOR_TARGET_V850 ""
Results both before and after were:
FAIL: crisv10 mem1.ms (execution)
FAIL: crisv10 mem2.ms (execution)
FAIL: crisv32 mem1.ms (execution)
FAIL: crisv32 mem2.ms (execution)
FAIL: microblaze fail.s (execution)
FAIL: microblaze pass.s (execution)
expected passes 5288
unexpected failures 6
expected failures 3
untested testcases 373
unsupported tests 14
Diffstat (limited to 'sim/iq2000')
-rw-r--r-- | sim/iq2000/arch.c | 5 | ||||
-rw-r--r-- | sim/iq2000/arch.h | 13 | ||||
-rw-r--r-- | sim/iq2000/cpu.c | 5 | ||||
-rw-r--r-- | sim/iq2000/cpu.h | 13 | ||||
-rw-r--r-- | sim/iq2000/cpuall.h | 5 | ||||
-rw-r--r-- | sim/iq2000/decode.c | 289 | ||||
-rw-r--r-- | sim/iq2000/decode.h | 9 | ||||
-rw-r--r-- | sim/iq2000/model.c | 5 | ||||
-rw-r--r-- | sim/iq2000/sem-switch.c | 9 | ||||
-rw-r--r-- | sim/iq2000/sem.c | 9 |
10 files changed, 191 insertions, 171 deletions
diff --git a/sim/iq2000/arch.c b/sim/iq2000/arch.c index 841d0ea..9328e64 100644 --- a/sim/iq2000/arch.c +++ b/sim/iq2000/arch.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + 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/iq2000/arch.h b/sim/iq2000/arch.h index ef4cd82..6359118 100644 --- a/sim/iq2000/arch.h +++ b/sim/iq2000/arch.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,13 +17,22 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ #ifndef IQ2000_ARCH_H #define IQ2000_ARCH_H +#define TARGET_BIG_ENDIAN 1 + +#define WI SI +#define UWI USI +#define AI USI + +#define IAI USI + /* Enum declaration for model types. */ typedef enum model_type { MODEL_IQ2000, MODEL_MAX diff --git a/sim/iq2000/cpu.c b/sim/iq2000/cpu.c index a1ee945..d52be00 100644 --- a/sim/iq2000/cpu.c +++ b/sim/iq2000/cpu.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + 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/iq2000/cpu.h b/sim/iq2000/cpu.h index ef34033..495e48f 100644 --- a/sim/iq2000/cpu.h +++ b/sim/iq2000/cpu.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -277,7 +278,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_BBV_VARS \ UINT f_opcode; \ @@ -290,7 +291,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_BGEZ_VARS \ UINT f_opcode; \ @@ -303,7 +304,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_JALR_VARS \ UINT f_opcode; \ @@ -436,7 +437,7 @@ struct scache { f_opcode = EXTRACT_LSB0_UINT (insn, 32, 31, 6); \ f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); \ f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); \ - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); \ + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); \ #define EXTRACT_IFMT_CFC0_VARS \ UINT f_opcode; \ diff --git a/sim/iq2000/cpuall.h b/sim/iq2000/cpuall.h index 4587a6d..55cc6a1 100644 --- a/sim/iq2000/cpuall.h +++ b/sim/iq2000/cpuall.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + 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/iq2000/decode.c b/sim/iq2000/decode.c index a2d7aec..c9b8915 100644 --- a/sim/iq2000/decode.c +++ b/sim/iq2000/decode.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -26,6 +27,8 @@ This file is part of the GNU simulators. #include "sim-main.h" #include "sim-assert.h" +#include "cgen-mem.h" +#include "cgen-ops.h" /* The instruction descriptor array. This is computed at runtime. Space for it is not malloc'd to save a @@ -105,7 +108,7 @@ static const struct insn_sem iq2000bf_insn_sem[] = { IQ2000_INSN_SH, IQ2000BF_INSN_SH, IQ2000BF_SFMT_SH }, { IQ2000_INSN_SW, IQ2000BF_INSN_SW, IQ2000BF_SFMT_SW }, { IQ2000_INSN_BREAK, IQ2000BF_INSN_BREAK, IQ2000BF_SFMT_BREAK }, - { IQ2000_INSN_SYSCALL, IQ2000BF_INSN_SYSCALL, IQ2000BF_SFMT_SYSCALL }, + { IQ2000_INSN_SYSCALL, IQ2000BF_INSN_SYSCALL, IQ2000BF_SFMT_BREAK }, { IQ2000_INSN_ANDOUI, IQ2000BF_INSN_ANDOUI, IQ2000BF_SFMT_ANDOUI }, { IQ2000_INSN_ORUI, IQ2000BF_INSN_ORUI, IQ2000BF_SFMT_ANDOUI }, { IQ2000_INSN_BGTZ, IQ2000BF_INSN_BGTZ, IQ2000BF_SFMT_BGEZ }, @@ -122,68 +125,68 @@ static const struct insn_sem iq2000bf_insn_sem[] = { IQ2000_INSN_BC0TL, IQ2000BF_INSN_BC0TL, IQ2000BF_SFMT_BCTXT }, { IQ2000_INSN_BC3T, IQ2000BF_INSN_BC3T, IQ2000BF_SFMT_BCTXT }, { IQ2000_INSN_BC3TL, IQ2000BF_INSN_BC3TL, IQ2000BF_SFMT_BCTXT }, - { IQ2000_INSN_CFC0, IQ2000BF_INSN_CFC0, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CFC1, IQ2000BF_INSN_CFC1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CFC2, IQ2000BF_INSN_CFC2, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CFC3, IQ2000BF_INSN_CFC3, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CHKHDR, IQ2000BF_INSN_CHKHDR, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CTC0, IQ2000BF_INSN_CTC0, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CTC1, IQ2000BF_INSN_CTC1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CTC2, IQ2000BF_INSN_CTC2, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_CTC3, IQ2000BF_INSN_CTC3, IQ2000BF_SFMT_SYSCALL }, + { IQ2000_INSN_CFC0, IQ2000BF_INSN_CFC0, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CFC1, IQ2000BF_INSN_CFC1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CFC2, IQ2000BF_INSN_CFC2, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CFC3, IQ2000BF_INSN_CFC3, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CHKHDR, IQ2000BF_INSN_CHKHDR, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CTC0, IQ2000BF_INSN_CTC0, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CTC1, IQ2000BF_INSN_CTC1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CTC2, IQ2000BF_INSN_CTC2, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_CTC3, IQ2000BF_INSN_CTC3, IQ2000BF_SFMT_CFC0 }, { IQ2000_INSN_JCR, IQ2000BF_INSN_JCR, IQ2000BF_SFMT_BCTXT }, - { IQ2000_INSN_LUC32, IQ2000BF_INSN_LUC32, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUC32L, IQ2000BF_INSN_LUC32L, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUC64, IQ2000BF_INSN_LUC64, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUC64L, IQ2000BF_INSN_LUC64L, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUK, IQ2000BF_INSN_LUK, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LULCK, IQ2000BF_INSN_LULCK, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUM32, IQ2000BF_INSN_LUM32, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUM32L, IQ2000BF_INSN_LUM32L, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUM64, IQ2000BF_INSN_LUM64, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUM64L, IQ2000BF_INSN_LUM64L, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUR, IQ2000BF_INSN_LUR, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LURL, IQ2000BF_INSN_LURL, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_LUULCK, IQ2000BF_INSN_LUULCK, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MFC0, IQ2000BF_INSN_MFC0, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MFC1, IQ2000BF_INSN_MFC1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MFC2, IQ2000BF_INSN_MFC2, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MFC3, IQ2000BF_INSN_MFC3, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MTC0, IQ2000BF_INSN_MTC0, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MTC1, IQ2000BF_INSN_MTC1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MTC2, IQ2000BF_INSN_MTC2, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_MTC3, IQ2000BF_INSN_MTC3, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_PKRL, IQ2000BF_INSN_PKRL, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_PKRLR1, IQ2000BF_INSN_PKRLR1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_PKRLR30, IQ2000BF_INSN_PKRLR30, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RB, IQ2000BF_INSN_RB, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RBR1, IQ2000BF_INSN_RBR1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RBR30, IQ2000BF_INSN_RBR30, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RFE, IQ2000BF_INSN_RFE, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RX, IQ2000BF_INSN_RX, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RXR1, IQ2000BF_INSN_RXR1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_RXR30, IQ2000BF_INSN_RXR30, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SLEEP, IQ2000BF_INSN_SLEEP, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SRRD, IQ2000BF_INSN_SRRD, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SRRDL, IQ2000BF_INSN_SRRDL, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SRULCK, IQ2000BF_INSN_SRULCK, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SRWR, IQ2000BF_INSN_SRWR, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_SRWRU, IQ2000BF_INSN_SRWRU, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_TRAPQFL, IQ2000BF_INSN_TRAPQFL, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_TRAPQNE, IQ2000BF_INSN_TRAPQNE, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_TRAPREL, IQ2000BF_INSN_TRAPREL, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WB, IQ2000BF_INSN_WB, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WBU, IQ2000BF_INSN_WBU, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WBR1, IQ2000BF_INSN_WBR1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WBR1U, IQ2000BF_INSN_WBR1U, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WBR30, IQ2000BF_INSN_WBR30, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WBR30U, IQ2000BF_INSN_WBR30U, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WX, IQ2000BF_INSN_WX, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WXU, IQ2000BF_INSN_WXU, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WXR1, IQ2000BF_INSN_WXR1, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WXR1U, IQ2000BF_INSN_WXR1U, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WXR30, IQ2000BF_INSN_WXR30, IQ2000BF_SFMT_SYSCALL }, - { IQ2000_INSN_WXR30U, IQ2000BF_INSN_WXR30U, IQ2000BF_SFMT_SYSCALL }, + { IQ2000_INSN_LUC32, IQ2000BF_INSN_LUC32, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUC32L, IQ2000BF_INSN_LUC32L, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUC64, IQ2000BF_INSN_LUC64, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUC64L, IQ2000BF_INSN_LUC64L, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUK, IQ2000BF_INSN_LUK, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LULCK, IQ2000BF_INSN_LULCK, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUM32, IQ2000BF_INSN_LUM32, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUM32L, IQ2000BF_INSN_LUM32L, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUM64, IQ2000BF_INSN_LUM64, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUM64L, IQ2000BF_INSN_LUM64L, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUR, IQ2000BF_INSN_LUR, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LURL, IQ2000BF_INSN_LURL, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_LUULCK, IQ2000BF_INSN_LUULCK, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MFC0, IQ2000BF_INSN_MFC0, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MFC1, IQ2000BF_INSN_MFC1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MFC2, IQ2000BF_INSN_MFC2, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MFC3, IQ2000BF_INSN_MFC3, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MTC0, IQ2000BF_INSN_MTC0, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MTC1, IQ2000BF_INSN_MTC1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MTC2, IQ2000BF_INSN_MTC2, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_MTC3, IQ2000BF_INSN_MTC3, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_PKRL, IQ2000BF_INSN_PKRL, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_PKRLR1, IQ2000BF_INSN_PKRLR1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_PKRLR30, IQ2000BF_INSN_PKRLR30, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RB, IQ2000BF_INSN_RB, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RBR1, IQ2000BF_INSN_RBR1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RBR30, IQ2000BF_INSN_RBR30, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RFE, IQ2000BF_INSN_RFE, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RX, IQ2000BF_INSN_RX, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RXR1, IQ2000BF_INSN_RXR1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_RXR30, IQ2000BF_INSN_RXR30, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SLEEP, IQ2000BF_INSN_SLEEP, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SRRD, IQ2000BF_INSN_SRRD, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SRRDL, IQ2000BF_INSN_SRRDL, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SRULCK, IQ2000BF_INSN_SRULCK, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SRWR, IQ2000BF_INSN_SRWR, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_SRWRU, IQ2000BF_INSN_SRWRU, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_TRAPQFL, IQ2000BF_INSN_TRAPQFL, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_TRAPQNE, IQ2000BF_INSN_TRAPQNE, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_TRAPREL, IQ2000BF_INSN_TRAPREL, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WB, IQ2000BF_INSN_WB, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WBU, IQ2000BF_INSN_WBU, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WBR1, IQ2000BF_INSN_WBR1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WBR1U, IQ2000BF_INSN_WBR1U, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WBR30, IQ2000BF_INSN_WBR30, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WBR30U, IQ2000BF_INSN_WBR30U, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WX, IQ2000BF_INSN_WX, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WXU, IQ2000BF_INSN_WXU, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WXR1, IQ2000BF_INSN_WXR1, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WXR1U, IQ2000BF_INSN_WXR1U, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WXR30, IQ2000BF_INSN_WXR30, IQ2000BF_SFMT_CFC0 }, + { IQ2000_INSN_WXR30U, IQ2000BF_INSN_WXR30U, IQ2000BF_SFMT_CFC0 }, { IQ2000_INSN_LDW, IQ2000BF_INSN_LDW, IQ2000BF_SFMT_LDW }, { IQ2000_INSN_SDW, IQ2000BF_INSN_SDW, IQ2000BF_SFMT_SDW }, { IQ2000_INSN_J, IQ2000BF_INSN_J, IQ2000BF_SFMT_J }, @@ -320,7 +323,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 12 : if ((entire_insn & 0xfc00003f) == 0xc) - { itype = IQ2000BF_INSN_SYSCALL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SYSCALL; goto extract_sfmt_break; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 13 : if ((entire_insn & 0xffffffff) == 0xd) @@ -328,7 +331,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 14 : if ((entire_insn & 0xfc00003f) == 0xe) - { itype = IQ2000BF_INSN_SLEEP; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SLEEP; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 16 : if ((entire_insn & 0xfc0007ff) == 0x20) @@ -464,28 +467,28 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, case 4 : /* fall through */ case 6 : if ((entire_insn & 0xffe007ff) == 0x40000000) - { itype = IQ2000BF_INSN_MFC0; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MFC0; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 8 : /* fall through */ case 10 : /* fall through */ case 12 : /* fall through */ case 14 : if ((entire_insn & 0xffe007ff) == 0x40400000) - { itype = IQ2000BF_INSN_CFC0; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CFC0; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 16 : /* fall through */ case 18 : /* fall through */ case 20 : /* fall through */ case 22 : if ((entire_insn & 0xffe007ff) == 0x40800000) - { itype = IQ2000BF_INSN_MTC0; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MTC0; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 24 : /* fall through */ case 26 : /* fall through */ case 28 : /* fall through */ case 30 : if ((entire_insn & 0xffe007ff) == 0x40c00000) - { itype = IQ2000BF_INSN_CTC0; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CTC0; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 32 : /* fall through */ case 33 : @@ -509,7 +512,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 65 : if ((entire_insn & 0xffffffff) == 0x42000010) - { itype = IQ2000BF_INSN_RFE; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_RFE; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -521,19 +524,19 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x44000000) - { itype = IQ2000BF_INSN_MFC1; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MFC1; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x44400000) - { itype = IQ2000BF_INSN_CFC1; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CFC1; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 2 : if ((entire_insn & 0xffe007ff) == 0x44800000) - { itype = IQ2000BF_INSN_MTC1; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MTC1; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 3 : if ((entire_insn & 0xffe007ff) == 0x44c00000) - { itype = IQ2000BF_INSN_CTC1; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CTC1; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -550,86 +553,86 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x48000000) - { itype = IQ2000BF_INSN_MFC2; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MFC2; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x48800000) - { itype = IQ2000BF_INSN_MTC2; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MTC2; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } } case 32 : if ((entire_insn & 0xffe0ffff) == 0x48200000) - { itype = IQ2000BF_INSN_LUULCK; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUULCK; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 33 : if ((entire_insn & 0xffe007ff) == 0x48200001) - { itype = IQ2000BF_INSN_LUR; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUR; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 34 : if ((entire_insn & 0xffe007ff) == 0x48200002) - { itype = IQ2000BF_INSN_LUM32; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUM32; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 35 : if ((entire_insn & 0xffe007ff) == 0x48200003) - { itype = IQ2000BF_INSN_LUC32; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUC32; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 36 : if ((entire_insn & 0xffe0ffff) == 0x48200004) - { itype = IQ2000BF_INSN_LULCK; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LULCK; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 37 : if ((entire_insn & 0xffe007ff) == 0x48200005) - { itype = IQ2000BF_INSN_LURL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LURL; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 38 : if ((entire_insn & 0xffe007ff) == 0x48200006) - { itype = IQ2000BF_INSN_LUM32L; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUM32L; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 39 : if ((entire_insn & 0xffe007ff) == 0x48200007) - { itype = IQ2000BF_INSN_LUC32L; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUC32L; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 40 : if ((entire_insn & 0xffe007ff) == 0x48200008) - { itype = IQ2000BF_INSN_LUK; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUK; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 42 : if ((entire_insn & 0xffe007ff) == 0x4820000a) - { itype = IQ2000BF_INSN_LUM64; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUM64; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 43 : if ((entire_insn & 0xffe007ff) == 0x4820000b) - { itype = IQ2000BF_INSN_LUC64; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUC64; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 46 : if ((entire_insn & 0xffe007ff) == 0x4820000e) - { itype = IQ2000BF_INSN_LUM64L; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUM64L; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 47 : if ((entire_insn & 0xffe007ff) == 0x4820000f) - { itype = IQ2000BF_INSN_LUC64L; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_LUC64L; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 48 : if ((entire_insn & 0xffe0ffff) == 0x48200010) - { itype = IQ2000BF_INSN_SRRD; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SRRD; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 49 : if ((entire_insn & 0xffe007ff) == 0x48200011) - { itype = IQ2000BF_INSN_SRWR; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SRWR; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 52 : if ((entire_insn & 0xffe0ffff) == 0x48200014) - { itype = IQ2000BF_INSN_SRRDL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SRRDL; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 53 : if ((entire_insn & 0xffe007ff) == 0x48200015) - { itype = IQ2000BF_INSN_SRWRU; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SRWRU; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 54 : if ((entire_insn & 0xffe0ffff) == 0x48200016) - { itype = IQ2000BF_INSN_SRULCK; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_SRULCK; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 64 : { @@ -638,11 +641,11 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x48400000) - { itype = IQ2000BF_INSN_CFC2; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CFC2; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x48c00000) - { itype = IQ2000BF_INSN_CTC2; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CTC2; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -657,7 +660,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x4c000000) - { itype = IQ2000BF_INSN_MFC3; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MFC3; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 4 : { @@ -666,15 +669,15 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x4c200000) - { itype = IQ2000BF_INSN_WB; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_WB; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x4c200004) - { itype = IQ2000BF_INSN_RB; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_RB; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 2 : if ((entire_insn & 0xffffffff) == 0x4c200008) - { itype = IQ2000BF_INSN_TRAPQFL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_TRAPQFL; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -686,11 +689,11 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x4c200001) - { itype = IQ2000BF_INSN_WBU; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_WBU; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffffffff) == 0x4c200009) - { itype = IQ2000BF_INSN_TRAPQNE; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_TRAPQNE; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -702,15 +705,15 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x4c200002) - { itype = IQ2000BF_INSN_WX; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_WX; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x4c200006) - { itype = IQ2000BF_INSN_RX; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_RX; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 2 : if ((entire_insn & 0xffe0ffff) == 0x4c20000a) - { itype = IQ2000BF_INSN_TRAPREL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_TRAPREL; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } @@ -722,26 +725,26 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, { case 0 : if ((entire_insn & 0xffe007ff) == 0x4c200003) - { itype = IQ2000BF_INSN_WXU; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_WXU; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 1 : if ((entire_insn & 0xffe007ff) == 0x4c200007) - { itype = IQ2000BF_INSN_PKRL; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_PKRL; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } } case 8 : if ((entire_insn & 0xffe007ff) == 0x4c400000) - { itype = IQ2000BF_INSN_CFC3; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CFC3; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 16 : if ((entire_insn & 0xffe007ff) == 0x4c800000) - { itype = IQ2000BF_INSN_MTC3; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_MTC3; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 24 : if ((entire_insn & 0xffe007ff) == 0x4cc00000) - { itype = IQ2000BF_INSN_CTC3; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CTC3; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 32 : /* fall through */ case 33 : /* fall through */ @@ -772,64 +775,64 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, } case 36 : if ((entire_insn & 0xffe007ff) == 0x4d200000) - { itype = IQ2000BF_INSN_CHKHDR; goto extract_sfmt_syscall; } + { itype = IQ2000BF_INSN_CHKHDR; goto extract_sfmt_cfc0; } itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; case 64 : /* fall through */ case 65 : /* fall through */ case 66 : /* fall through */ - case 67 : itype = IQ2000BF_INSN_WBR1; goto extract_sfmt_syscall; + case 67 : itype = IQ2000BF_INSN_WBR1; goto extract_sfmt_cfc0; case 68 : /* fall through */ case 69 : /* fall through */ case 70 : /* fall through */ - case 71 : itype = IQ2000BF_INSN_WBR1U; goto extract_sfmt_syscall; + case 71 : itype = IQ2000BF_INSN_WBR1U; goto extract_sfmt_cfc0; case 72 : /* fall through */ case 73 : /* fall through */ case 74 : /* fall through */ - case 75 : itype = IQ2000BF_INSN_WBR30; goto extract_sfmt_syscall; + case 75 : itype = IQ2000BF_INSN_WBR30; goto extract_sfmt_cfc0; case 76 : /* fall through */ case 77 : /* fall through */ case 78 : /* fall through */ - case 79 : itype = IQ2000BF_INSN_WBR30U; goto extract_sfmt_syscall; + case 79 : itype = IQ2000BF_INSN_WBR30U; goto extract_sfmt_cfc0; case 80 : /* fall through */ case 81 : /* fall through */ case 82 : /* fall through */ - case 83 : itype = IQ2000BF_INSN_WXR1; goto extract_sfmt_syscall; + case 83 : itype = IQ2000BF_INSN_WXR1; goto extract_sfmt_cfc0; case 84 : /* fall through */ case 85 : /* fall through */ case 86 : /* fall through */ - case 87 : itype = IQ2000BF_INSN_WXR1U; goto extract_sfmt_syscall; + case 87 : itype = IQ2000BF_INSN_WXR1U; goto extract_sfmt_cfc0; case 88 : /* fall through */ case 89 : /* fall through */ case 90 : /* fall through */ - case 91 : itype = IQ2000BF_INSN_WXR30; goto extract_sfmt_syscall; + case 91 : itype = IQ2000BF_INSN_WXR30; goto extract_sfmt_cfc0; case 92 : /* fall through */ case 93 : /* fall through */ case 94 : /* fall through */ - case 95 : itype = IQ2000BF_INSN_WXR30U; goto extract_sfmt_syscall; + case 95 : itype = IQ2000BF_INSN_WXR30U; goto extract_sfmt_cfc0; case 96 : /* fall through */ case 97 : /* fall through */ case 98 : /* fall through */ - case 99 : itype = IQ2000BF_INSN_RBR1; goto extract_sfmt_syscall; + case 99 : itype = IQ2000BF_INSN_RBR1; goto extract_sfmt_cfc0; case 104 : /* fall through */ case 105 : /* fall through */ case 106 : /* fall through */ - case 107 : itype = IQ2000BF_INSN_RBR30; goto extract_sfmt_syscall; + case 107 : itype = IQ2000BF_INSN_RBR30; goto extract_sfmt_cfc0; case 112 : /* fall through */ case 113 : /* fall through */ case 114 : /* fall through */ - case 115 : itype = IQ2000BF_INSN_RXR1; goto extract_sfmt_syscall; + case 115 : itype = IQ2000BF_INSN_RXR1; goto extract_sfmt_cfc0; case 116 : /* fall through */ case 117 : /* fall through */ case 118 : /* fall through */ - case 119 : itype = IQ2000BF_INSN_PKRLR1; goto extract_sfmt_syscall; + case 119 : itype = IQ2000BF_INSN_PKRLR1; goto extract_sfmt_cfc0; case 120 : /* fall through */ case 121 : /* fall through */ case 122 : /* fall through */ - case 123 : itype = IQ2000BF_INSN_RXR30; goto extract_sfmt_syscall; + case 123 : itype = IQ2000BF_INSN_RXR30; goto extract_sfmt_cfc0; case 124 : /* fall through */ case 125 : /* fall through */ case 126 : /* fall through */ - case 127 : itype = IQ2000BF_INSN_PKRLR30; goto extract_sfmt_syscall; + case 127 : itype = IQ2000BF_INSN_PKRLR30; goto extract_sfmt_cfc0; default : itype = IQ2000BF_INSN_X_INVALID; goto extract_sfmt_empty; } } @@ -1070,7 +1073,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); /* Record the fields for the semantic handler. */ FLD (f_rt) = f_rt; @@ -1099,7 +1102,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); f_rt = EXTRACT_LSB0_UINT (insn, 32, 20, 5); - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); /* Record the fields for the semantic handler. */ FLD (f_rs) = f_rs; @@ -1126,7 +1129,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, SI f_offset; f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); /* Record the fields for the semantic handler. */ FLD (f_rs) = f_rs; @@ -1152,7 +1155,7 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, SI f_offset; f_rs = EXTRACT_LSB0_UINT (insn, 32, 25, 5); - f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) << (2))) + (((pc) + (4)))); + f_offset = ((((EXTRACT_LSB0_SINT (insn, 32, 15, 16)) * (4))) + (((pc) + (4)))); /* Record the fields for the semantic handler. */ FLD (f_rs) = f_rs; @@ -1395,19 +1398,6 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } - extract_sfmt_syscall: - { - const IDESC *idesc = &iq2000bf_insn_data[itype]; -#define FLD(f) abuf->fields.sfmt_empty.f - - - /* Record the fields for the semantic handler. */ - CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_syscall", (char *) 0)); - -#undef FLD - return idesc; - } - extract_sfmt_andoui: { const IDESC *idesc = &iq2000bf_insn_data[itype]; @@ -1470,6 +1460,19 @@ iq2000bf_decode (SIM_CPU *current_cpu, IADDR pc, return idesc; } + extract_sfmt_cfc0: + { + const IDESC *idesc = &iq2000bf_insn_data[itype]; +#define FLD(f) abuf->fields.sfmt_empty.f + + + /* Record the fields for the semantic handler. */ + CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cfc0", (char *) 0)); + +#undef FLD + return idesc; + } + extract_sfmt_ldw: { const IDESC *idesc = &iq2000bf_insn_data[itype]; diff --git a/sim/iq2000/decode.h b/sim/iq2000/decode.h index d6b848a..95ff05e 100644 --- a/sim/iq2000/decode.h +++ b/sim/iq2000/decode.h @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -80,8 +81,8 @@ typedef enum iq2000bf_sfmt_type { , IQ2000BF_SFMT_BBI, IQ2000BF_SFMT_BBV, IQ2000BF_SFMT_BGEZ, IQ2000BF_SFMT_BGEZAL , IQ2000BF_SFMT_JALR, IQ2000BF_SFMT_JR, IQ2000BF_SFMT_LB, IQ2000BF_SFMT_LH , IQ2000BF_SFMT_LUI, IQ2000BF_SFMT_LW, IQ2000BF_SFMT_SB, IQ2000BF_SFMT_SH - , IQ2000BF_SFMT_SW, IQ2000BF_SFMT_BREAK, IQ2000BF_SFMT_SYSCALL, IQ2000BF_SFMT_ANDOUI - , IQ2000BF_SFMT_MRGB, IQ2000BF_SFMT_BCTXT, IQ2000BF_SFMT_LDW, IQ2000BF_SFMT_SDW + , IQ2000BF_SFMT_SW, IQ2000BF_SFMT_BREAK, IQ2000BF_SFMT_ANDOUI, IQ2000BF_SFMT_MRGB + , IQ2000BF_SFMT_BCTXT, IQ2000BF_SFMT_CFC0, IQ2000BF_SFMT_LDW, IQ2000BF_SFMT_SDW , IQ2000BF_SFMT_J, IQ2000BF_SFMT_JAL } IQ2000BF_SFMT_TYPE; diff --git a/sim/iq2000/model.c b/sim/iq2000/model.c index e637cee..bfac2f8 100644 --- a/sim/iq2000/model.c +++ b/sim/iq2000/model.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + 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/iq2000/sem-switch.c b/sim/iq2000/sem-switch.c index 5d0ce75..6e6cc9b 100644 --- a/sim/iq2000/sem-switch.c +++ b/sim/iq2000/sem-switch.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -1809,10 +1810,10 @@ do_break (current_cpu, pc); ARGBUF *abuf = SEM_ARGBUF (sem_arg); #define FLD(f) abuf->fields.sfmt_empty.f int UNUSED written = 0; - IADDR pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - do_syscall (current_cpu, pc); +do_syscall (current_cpu, pc); #undef FLD } diff --git a/sim/iq2000/sem.c b/sim/iq2000/sem.c index c1ea01f..d56e451 100644 --- a/sim/iq2000/sem.c +++ b/sim/iq2000/sem.c @@ -2,7 +2,7 @@ THIS FILE IS MACHINE GENERATED WITH CGEN. -Copyright 1996-2023 Free Software Foundation, Inc. +Copyright (C) 1996-2023 Free Software Foundation, Inc. This file is part of the GNU simulators. @@ -17,7 +17,8 @@ This file is part of the GNU simulators. 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/>. + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -1747,10 +1748,10 @@ SEM_FN_NAME (iq2000bf,syscall) (SIM_CPU *current_cpu, SEM_ARG sem_arg) #define FLD(f) abuf->fields.sfmt_empty.f ARGBUF *abuf = SEM_ARGBUF (sem_arg); int UNUSED written = 0; - IADDR pc = abuf->addr; + IADDR UNUSED pc = abuf->addr; SEM_PC vpc = SEM_NEXT_VPC (sem_arg, pc, 4); - do_syscall (current_cpu, pc); +do_syscall (current_cpu, pc); return vpc; #undef FLD |