aboutsummaryrefslogtreecommitdiff
path: root/sim/iq2000
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2023-08-10 12:14:01 +0930
committerAlan Modra <amodra@gmail.com>2023-08-19 12:41:32 +0930
commit9d4f36166d626554adbecbc5bc0f1f4791354e03 (patch)
tree940cc321cca3b360b9634076fd85bec29b27dafd /sim/iq2000
parentc7631501b22bb607a10396621ad4b82c357ae938 (diff)
downloadbinutils-9d4f36166d626554adbecbc5bc0f1f4791354e03.zip
binutils-9d4f36166d626554adbecbc5bc0f1f4791354e03.tar.gz
binutils-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.c5
-rw-r--r--sim/iq2000/arch.h13
-rw-r--r--sim/iq2000/cpu.c5
-rw-r--r--sim/iq2000/cpu.h13
-rw-r--r--sim/iq2000/cpuall.h5
-rw-r--r--sim/iq2000/decode.c289
-rw-r--r--sim/iq2000/decode.h9
-rw-r--r--sim/iq2000/model.c5
-rw-r--r--sim/iq2000/sem-switch.c9
-rw-r--r--sim/iq2000/sem.c9
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