Message ID | 20190615154352.26824-21-philmd@redhat.com |
---|---|
State | New |
Headers | show |
Series | Support disabling TCG on ARM | expand |
Philippe Mathieu-Daudé <philmd@redhat.com> writes: > From: Samuel Ortiz <sameo@linux.intel.com> > > do_interrupt, do_unaligned_access, do_transaction_failed and debug_excp > are only relevant in the TCG context, so we should not define them > when TCG is disabled. > > Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Reviewed-by: Robert Bradford <robert.bradford@intel.com> > [PMD: Rebased] > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > target/arm/cpu.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/target/arm/cpu.c b/target/arm/cpu.c > index 2335659a85..3ffea857c4 100644 > --- a/target/arm/cpu.c > +++ b/target/arm/cpu.c > @@ -1557,7 +1557,7 @@ static void arm_v7m_class_init(ObjectClass *oc, void *data) > CPUClass *cc = CPU_CLASS(oc); > > acc->info = data; > -#ifndef CONFIG_USER_ONLY > +#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG) > cc->do_interrupt = arm_v7m_cpu_do_interrupt; > #endif > > @@ -2172,22 +2172,24 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data) > cc->gdb_read_register = arm_cpu_gdb_read_register; > cc->gdb_write_register = arm_cpu_gdb_write_register; > #ifndef CONFIG_USER_ONLY > +#ifdef CONFIG_TCG > cc->do_interrupt = arm_cpu_do_interrupt; > cc->do_unaligned_access = arm_cpu_do_unaligned_access; > cc->do_transaction_failed = arm_cpu_do_transaction_failed; > + cc->debug_excp_handler = arm_debug_excp_handler; > +#endif /* CONFIG_TCG */ > cc->get_phys_page_attrs_debug = arm_cpu_get_phys_page_attrs_debug; > cc->asidx_from_attrs = arm_asidx_from_attrs; > cc->vmsd = &vmstate_arm_cpu; > cc->virtio_is_big_endian = arm_cpu_virtio_is_big_endian; > cc->write_elf64_note = arm_cpu_write_elf64_note; > cc->write_elf32_note = arm_cpu_write_elf32_note; > -#endif > +#endif /* CONFIG_USER_ONLY */ > cc->gdb_num_core_regs = 26; > cc->gdb_core_xml_file = "arm-core.xml"; > cc->gdb_arch_name = arm_gdb_arch_name; > cc->gdb_get_dynamic_xml = arm_gdb_get_dynamic_xml; > cc->gdb_stop_before_watchpoint = true; > - cc->debug_excp_handler = arm_debug_excp_handler; > cc->debug_check_watchpoint = arm_debug_check_watchpoint; > #if !defined(CONFIG_USER_ONLY) > cc->adjust_watchpoint_address = arm_adjust_watchpoint_address; -- Alex Bennée
diff --git a/target/arm/cpu.c b/target/arm/cpu.c index 2335659a85..3ffea857c4 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -1557,7 +1557,7 @@ static void arm_v7m_class_init(ObjectClass *oc, void *data) CPUClass *cc = CPU_CLASS(oc); acc->info = data; -#ifndef CONFIG_USER_ONLY +#if !defined(CONFIG_USER_ONLY) && defined(CONFIG_TCG) cc->do_interrupt = arm_v7m_cpu_do_interrupt; #endif @@ -2172,22 +2172,24 @@ static void arm_cpu_class_init(ObjectClass *oc, void *data) cc->gdb_read_register = arm_cpu_gdb_read_register; cc->gdb_write_register = arm_cpu_gdb_write_register; #ifndef CONFIG_USER_ONLY +#ifdef CONFIG_TCG cc->do_interrupt = arm_cpu_do_interrupt; cc->do_unaligned_access = arm_cpu_do_unaligned_access; cc->do_transaction_failed = arm_cpu_do_transaction_failed; + cc->debug_excp_handler = arm_debug_excp_handler; +#endif /* CONFIG_TCG */ cc->get_phys_page_attrs_debug = arm_cpu_get_phys_page_attrs_debug; cc->asidx_from_attrs = arm_asidx_from_attrs; cc->vmsd = &vmstate_arm_cpu; cc->virtio_is_big_endian = arm_cpu_virtio_is_big_endian; cc->write_elf64_note = arm_cpu_write_elf64_note; cc->write_elf32_note = arm_cpu_write_elf32_note; -#endif +#endif /* CONFIG_USER_ONLY */ cc->gdb_num_core_regs = 26; cc->gdb_core_xml_file = "arm-core.xml"; cc->gdb_arch_name = arm_gdb_arch_name; cc->gdb_get_dynamic_xml = arm_gdb_get_dynamic_xml; cc->gdb_stop_before_watchpoint = true; - cc->debug_excp_handler = arm_debug_excp_handler; cc->debug_check_watchpoint = arm_debug_check_watchpoint; #if !defined(CONFIG_USER_ONLY) cc->adjust_watchpoint_address = arm_adjust_watchpoint_address;