CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
59 lines
2.0 KiB
C
59 lines
2.0 KiB
C
|
|
/* Main header for the Vitesse IQ2000. */
|
|
|
|
#ifndef SIM_MAIN_H
|
|
#define SIM_MAIN_H
|
|
|
|
/* This is a global setting. Different cpu families can't mix-n-match -scache
|
|
and -pbb. However some cpu families may use -simple while others use
|
|
one of -scache/-pbb. ???? */
|
|
#define WITH_SCACHE_PBB 1
|
|
|
|
#include "sim-basics.h"
|
|
#include "opcodes/iq2000-desc.h"
|
|
#include "opcodes/iq2000-opc.h"
|
|
#include "arch.h"
|
|
|
|
/* Pull in IQ2000_{DATA,INSN}_{MASK,VALUE}. */
|
|
#include "elf/iq2000.h"
|
|
|
|
#include "sim-base.h"
|
|
#include "cgen-sim.h"
|
|
|
|
struct iq2000_sim_cpu {
|
|
/* CPU specific parts go here.
|
|
Note that in files that don't need to access these pieces WANT_CPU_FOO
|
|
won't be defined and thus these parts won't appear. This is ok in the
|
|
sense that things work. It is a source of bugs though.
|
|
One has to of course be careful to not take the size of this
|
|
struct and no structure members accessed in non-cpu specific files can
|
|
go after here. Oh for a better language. */
|
|
#if defined (WANT_CPU_IQ2000BF)
|
|
IQ2000BF_CPU_DATA cpu_data;
|
|
#endif
|
|
};
|
|
#define IQ2000_SIM_CPU(cpu) ((struct iq2000_sim_cpu *) CPU_ARCH_DATA (cpu))
|
|
|
|
/* Misc. */
|
|
|
|
/* Catch address exceptions. */
|
|
extern SIM_CORE_SIGNAL_FN iq2000_core_signal ATTRIBUTE_NORETURN;
|
|
#define SIM_CORE_SIGNAL(SD,CPU,CIA,MAP,NR_BYTES,ADDR,TRANSFER,ERROR) \
|
|
iq2000_core_signal ((SD), (CPU), (CIA), (MAP), (NR_BYTES), (ADDR), \
|
|
(TRANSFER), (ERROR))
|
|
|
|
/* Convert between CPU-internal addresses and sim_core addresses. */
|
|
#define CPU2DATA(addr) (IQ2000_DATA_VALUE + (addr))
|
|
#define DATA2CPU(addr) ((addr) - IQ2000_DATA_VALUE)
|
|
#define CPU2INSN(addr) (IQ2000_INSN_VALUE + ((addr) & ~IQ2000_INSN_MASK))
|
|
#define INSN2CPU(addr) ((addr) - IQ2000_INSN_VALUE)
|
|
#define IQ2000_INSN_MEM_SIZE (CPU2INSN(0x800000) - CPU2INSN(0x0000))
|
|
#define IQ2000_DATA_MEM_SIZE (CPU2DATA(0x800000) - CPU2DATA(0x0000))
|
|
|
|
PCADDR get_h_pc (SIM_CPU *);
|
|
void set_h_pc (SIM_CPU *, PCADDR);
|
|
void do_syscall (SIM_CPU *, PCADDR);
|
|
void do_break (SIM_CPU *, PCADDR);
|
|
|
|
#endif /* SIM_MAIN_H */
|