mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
softmmu: make do_unaligned_access a method of CPU
We will reference it from more files in the next patch. To avoid ruining the small steps we're making towards multi-target, make it a method of CPU rather than just a global. Reviewed-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
ca0aa40816
commit
93e22326d6
14 changed files with 63 additions and 37 deletions
|
@ -81,5 +81,8 @@ void sparc_cpu_dump_state(CPUState *cpu, FILE *f,
|
|||
hwaddr sparc_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
|
||||
int sparc_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
|
||||
int sparc_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
|
||||
void QEMU_NORETURN sparc_cpu_do_unaligned_access(CPUState *cpu,
|
||||
vaddr addr, int is_write,
|
||||
int is_user, uintptr_t retaddr);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -825,6 +825,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data)
|
|||
cc->handle_mmu_fault = sparc_cpu_handle_mmu_fault;
|
||||
#else
|
||||
cc->do_unassigned_access = sparc_cpu_unassigned_access;
|
||||
cc->do_unaligned_access = sparc_cpu_do_unaligned_access;
|
||||
cc->get_phys_page_debug = sparc_cpu_get_phys_page_debug;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -65,9 +65,6 @@
|
|||
#define QT1 (env->qt1)
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
static void QEMU_NORETURN do_unaligned_access(CPUSPARCState *env,
|
||||
target_ulong addr, int is_write,
|
||||
int is_user, uintptr_t retaddr);
|
||||
#include "exec/softmmu_exec.h"
|
||||
#define MMUSUFFIX _mmu
|
||||
#define ALIGNED_ONLY
|
||||
|
@ -2425,11 +2422,13 @@ void sparc_cpu_unassigned_access(CPUState *cs, hwaddr addr,
|
|||
#endif
|
||||
|
||||
#if !defined(CONFIG_USER_ONLY)
|
||||
static void QEMU_NORETURN do_unaligned_access(CPUSPARCState *env,
|
||||
target_ulong addr, int is_write,
|
||||
int is_user, uintptr_t retaddr)
|
||||
void QEMU_NORETURN sparc_cpu_do_unaligned_access(CPUState *cs,
|
||||
vaddr addr, int is_write,
|
||||
int is_user, uintptr_t retaddr)
|
||||
{
|
||||
SPARCCPU *cpu = sparc_env_get_cpu(env);
|
||||
SPARCCPU *cpu = SPARC_CPU(cs);
|
||||
CPUSPARCState *env = &cpu->env;
|
||||
|
||||
#ifdef DEBUG_UNALIGNED
|
||||
printf("Unaligned access to 0x" TARGET_FMT_lx " from 0x" TARGET_FMT_lx
|
||||
"\n", addr, env->pc);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue