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:
parent
a770b10baf
commit
edee3da2e6
@ -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;
|
||||||
|
@ -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);
|
||||||
|
@ -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 */
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user