target/rx: Ensure not being build on user emulation

Currently only system emulation is supported.
Assert no target code is built for user emulation.
Remove #ifdef'ry since more work is required before
being able to emulate a user process.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20250121142341.17001-3-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé 2025-01-21 13:16:26 +01:00
parent a770b10baf
commit edee3da2e6
3 changed files with 4 additions and 12 deletions

View File

@ -192,13 +192,11 @@ static void rx_cpu_init(Object *obj)
qdev_init_gpio_in(DEVICE(cpu), rx_cpu_set_irq, 2); qdev_init_gpio_in(DEVICE(cpu), rx_cpu_set_irq, 2);
} }
#ifndef CONFIG_USER_ONLY
#include "hw/core/sysemu-cpu-ops.h" #include "hw/core/sysemu-cpu-ops.h"
static const struct SysemuCPUOps rx_sysemu_ops = { static const struct SysemuCPUOps rx_sysemu_ops = {
.get_phys_page_debug = rx_cpu_get_phys_page_debug, .get_phys_page_debug = rx_cpu_get_phys_page_debug,
}; };
#endif
#include "accel/tcg/cpu-ops.h" #include "accel/tcg/cpu-ops.h"
@ -209,11 +207,9 @@ static const TCGCPUOps rx_tcg_ops = {
.restore_state_to_opc = rx_restore_state_to_opc, .restore_state_to_opc = rx_restore_state_to_opc,
.tlb_fill = rx_cpu_tlb_fill, .tlb_fill = rx_cpu_tlb_fill,
#ifndef CONFIG_USER_ONLY
.cpu_exec_interrupt = rx_cpu_exec_interrupt, .cpu_exec_interrupt = rx_cpu_exec_interrupt,
.cpu_exec_halt = rx_cpu_has_work, .cpu_exec_halt = rx_cpu_has_work,
.do_interrupt = rx_cpu_do_interrupt, .do_interrupt = rx_cpu_do_interrupt,
#endif /* !CONFIG_USER_ONLY */
}; };
static void rx_cpu_class_init(ObjectClass *klass, void *data) static void rx_cpu_class_init(ObjectClass *klass, void *data)
@ -235,9 +231,7 @@ static void rx_cpu_class_init(ObjectClass *klass, void *data)
cc->set_pc = rx_cpu_set_pc; cc->set_pc = rx_cpu_set_pc;
cc->get_pc = rx_cpu_get_pc; cc->get_pc = rx_cpu_get_pc;
#ifndef CONFIG_USER_ONLY
cc->sysemu_ops = &rx_sysemu_ops; cc->sysemu_ops = &rx_sysemu_ops;
#endif
cc->gdb_read_register = rx_cpu_gdb_read_register; cc->gdb_read_register = rx_cpu_gdb_read_register;
cc->gdb_write_register = rx_cpu_gdb_write_register; cc->gdb_write_register = rx_cpu_gdb_write_register;
cc->disas_set_info = rx_cpu_disas_set_info; cc->disas_set_info = rx_cpu_disas_set_info;

View File

@ -26,6 +26,10 @@
#include "exec/cpu-defs.h" #include "exec/cpu-defs.h"
#include "qemu/cpu-float.h" #include "qemu/cpu-float.h"
#ifdef CONFIG_USER_ONLY
#error "RX does not support user mode emulation"
#endif
/* PSW define */ /* PSW define */
REG32(PSW, 0) REG32(PSW, 0)
FIELD(PSW, C, 0, 1) FIELD(PSW, C, 0, 1)
@ -129,11 +133,9 @@ struct RXCPUClass {
#define CPU_RESOLVING_TYPE TYPE_RX_CPU #define CPU_RESOLVING_TYPE TYPE_RX_CPU
const char *rx_crname(uint8_t cr); const char *rx_crname(uint8_t cr);
#ifndef CONFIG_USER_ONLY
void rx_cpu_do_interrupt(CPUState *cpu); void rx_cpu_do_interrupt(CPUState *cpu);
bool rx_cpu_exec_interrupt(CPUState *cpu, int int_req); bool rx_cpu_exec_interrupt(CPUState *cpu, int int_req);
hwaddr rx_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr); hwaddr rx_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
#endif /* !CONFIG_USER_ONLY */
void rx_cpu_dump_state(CPUState *cpu, FILE *f, int flags); void rx_cpu_dump_state(CPUState *cpu, FILE *f, int flags);
int rx_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); int rx_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg);
int rx_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg); int rx_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);

View File

@ -40,8 +40,6 @@ void rx_cpu_unpack_psw(CPURXState *env, uint32_t psw, int rte)
env->psw_c = FIELD_EX32(psw, PSW, C); env->psw_c = FIELD_EX32(psw, PSW, C);
} }
#ifndef CONFIG_USER_ONLY
#define INT_FLAGS (CPU_INTERRUPT_HARD | CPU_INTERRUPT_FIR) #define INT_FLAGS (CPU_INTERRUPT_HARD | CPU_INTERRUPT_FIR)
void rx_cpu_do_interrupt(CPUState *cs) void rx_cpu_do_interrupt(CPUState *cs)
{ {
@ -146,5 +144,3 @@ hwaddr rx_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{ {
return addr; return addr;
} }
#endif /* !CONFIG_USER_ONLY */