* [Qemu-devel] [PULL 1/8] disas: QOMify s390x specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 2/8] disas: QOMify moxie " Andreas Färber
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Richard Henderson, Alexander Graf,
Andreas Färber, Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() s390 specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Acked-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 6 ------
target-s390x/cpu.c | 8 ++++++++
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/disas.c b/disas.c
index 45878fa..655f23d 100644
--- a/disas.c
+++ b/disas.c
@@ -249,9 +249,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
#elif defined(TARGET_ALPHA)
s.info.mach = bfd_mach_alpha_ev6;
s.info.print_insn = print_insn_alpha;
-#elif defined(TARGET_S390X)
- s.info.mach = bfd_mach_s390_64;
- s.info.print_insn = print_insn_s390;
#elif defined(TARGET_MOXIE)
s.info.mach = bfd_arch_moxie;
s.info.print_insn = print_insn_moxie;
@@ -462,9 +459,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
#elif defined(TARGET_SH4)
s.info.mach = bfd_mach_sh4;
s.info.print_insn = print_insn_sh;
-#elif defined(TARGET_S390X)
- s.info.mach = bfd_mach_s390_64;
- s.info.print_insn = print_insn_s390;
#elif defined(TARGET_MOXIE)
s.info.mach = bfd_arch_moxie;
s.info.print_insn = print_insn_moxie;
diff --git a/target-s390x/cpu.c b/target-s390x/cpu.c
index ccfaa8a..189a2af 100644
--- a/target-s390x/cpu.c
+++ b/target-s390x/cpu.c
@@ -184,6 +184,12 @@ static void s390_cpu_machine_reset_cb(void *opaque)
}
#endif
+static void s390_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->mach = bfd_mach_s390_64;
+ info->print_insn = print_insn_s390;
+}
+
static void s390_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -351,6 +357,8 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
cc->cpu_exec_interrupt = s390_cpu_exec_interrupt;
cc->debug_excp_handler = s390x_cpu_debug_excp_handler;
#endif
+ cc->disas_set_info = s390_cpu_disas_set_info;
+
cc->gdb_num_core_regs = S390_NUM_CORE_REGS;
cc->gdb_core_xml_file = "s390x-core64.xml";
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 2/8] disas: QOMify moxie specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 1/8] disas: QOMify s390x specific disas setup Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 3/8] disas: QOMify m68k " Andreas Färber
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Anthony Green, Andreas Färber,
Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() moxie specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Cc: Anthony Green <green@moxielogic.com>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 6 ------
target-moxie/cpu.c | 7 +++++++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/disas.c b/disas.c
index 655f23d..05d409b 100644
--- a/disas.c
+++ b/disas.c
@@ -249,9 +249,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
#elif defined(TARGET_ALPHA)
s.info.mach = bfd_mach_alpha_ev6;
s.info.print_insn = print_insn_alpha;
-#elif defined(TARGET_MOXIE)
- s.info.mach = bfd_arch_moxie;
- s.info.print_insn = print_insn_moxie;
#elif defined(TARGET_LM32)
s.info.mach = bfd_mach_lm32;
s.info.print_insn = print_insn_lm32;
@@ -459,9 +456,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
#elif defined(TARGET_SH4)
s.info.mach = bfd_mach_sh4;
s.info.print_insn = print_insn_sh;
-#elif defined(TARGET_MOXIE)
- s.info.mach = bfd_arch_moxie;
- s.info.print_insn = print_insn_moxie;
#elif defined(TARGET_LM32)
s.info.mach = bfd_mach_lm32;
s.info.print_insn = print_insn_lm32;
diff --git a/target-moxie/cpu.c b/target-moxie/cpu.c
index 3af3779..0c60c65 100644
--- a/target-moxie/cpu.c
+++ b/target-moxie/cpu.c
@@ -48,6 +48,12 @@ static void moxie_cpu_reset(CPUState *s)
tlb_flush(s, 1);
}
+static void moxie_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->mach = bfd_arch_moxie;
+ info->print_insn = print_insn_moxie;
+}
+
static void moxie_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -114,6 +120,7 @@ static void moxie_cpu_class_init(ObjectClass *oc, void *data)
cc->get_phys_page_debug = moxie_cpu_get_phys_page_debug;
cc->vmsd = &vmstate_moxie_cpu;
#endif
+ cc->disas_set_info = moxie_cpu_disas_set_info;
/*
* Reason: moxie_cpu_initfn() calls cpu_exec_init(), which saves
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 3/8] disas: QOMify m68k specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 1/8] disas: QOMify s390x specific disas setup Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 2/8] disas: QOMify moxie " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 4/8] disas: QOMify sparc " Andreas Färber
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Peter Crosthwaite, Andreas Färber, Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() m68k specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 4 ----
target-m68k/cpu.c | 9 ++++++++-
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/disas.c b/disas.c
index 05d409b..1ef2596 100644
--- a/disas.c
+++ b/disas.c
@@ -235,8 +235,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
}
s.info.disassembler_options = (char *)"any";
s.info.print_insn = print_insn_ppc;
-#elif defined(TARGET_M68K)
- s.info.print_insn = print_insn_m68k;
#elif defined(TARGET_MIPS)
#ifdef TARGET_WORDS_BIGENDIAN
s.info.print_insn = print_insn_big_mips;
@@ -445,8 +443,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
s.info.endian = BFD_ENDIAN_LITTLE;
}
s.info.print_insn = print_insn_ppc;
-#elif defined(TARGET_M68K)
- s.info.print_insn = print_insn_m68k;
#elif defined(TARGET_MIPS)
#ifdef TARGET_WORDS_BIGENDIAN
s.info.print_insn = print_insn_big_mips;
diff --git a/target-m68k/cpu.c b/target-m68k/cpu.c
index 97527ef..e8a4eed 100644
--- a/target-m68k/cpu.c
+++ b/target-m68k/cpu.c
@@ -61,6 +61,11 @@ static void m68k_cpu_reset(CPUState *s)
tlb_flush(s, 1);
}
+static void m68k_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->print_insn = print_insn_m68k;
+}
+
/* CPU models */
static ObjectClass *m68k_cpu_class_by_name(const char *cpu_model)
@@ -208,11 +213,13 @@ static void m68k_cpu_class_init(ObjectClass *c, void *data)
#endif
cc->cpu_exec_enter = m68k_cpu_exec_enter;
cc->cpu_exec_exit = m68k_cpu_exec_exit;
+ cc->disas_set_info = m68k_cpu_disas_set_info;
- dc->vmsd = &vmstate_m68k_cpu;
cc->gdb_num_core_regs = 18;
cc->gdb_core_xml_file = "cf-core.xml";
+ dc->vmsd = &vmstate_m68k_cpu;
+
/*
* Reason: m68k_cpu_initfn() calls cpu_exec_init(), which saves
* the object in cpus -> dangling pointer after final
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 4/8] disas: QOMify sparc specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (2 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 3/8] disas: QOMify m68k " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 5/8] disas: QOMify lm32 " Andreas Färber
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Blue Swirl, Peter Crosthwaite, Mark Cave-Ayland,
Andreas Färber, Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() sparc specifics to the QOM disas_set_info hook
and delete the #ifdef specific code in disas.c.
Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 10 ----------
target-sparc/cpu.c | 9 +++++++++
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/disas.c b/disas.c
index 1ef2596..5b3acf0 100644
--- a/disas.c
+++ b/disas.c
@@ -214,11 +214,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
s.info.mach = bfd_mach_i386_i386;
}
s.info.print_insn = print_insn_i386;
-#elif defined(TARGET_SPARC)
- s.info.print_insn = print_insn_sparc;
-#ifdef TARGET_SPARC64
- s.info.mach = bfd_mach_sparc_v9b;
-#endif
#elif defined(TARGET_PPC)
if ((flags >> 16) & 1) {
s.info.endian = BFD_ENDIAN_LITTLE;
@@ -423,11 +418,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
s.info.print_insn = print_insn_i386;
#elif defined(TARGET_ALPHA)
s.info.print_insn = print_insn_alpha;
-#elif defined(TARGET_SPARC)
- s.info.print_insn = print_insn_sparc;
-#ifdef TARGET_SPARC64
- s.info.mach = bfd_mach_sparc_v9b;
-#endif
#elif defined(TARGET_PPC)
if (flags & 0xFFFF) {
/* If we have a precise definition of the instruction set, use it. */
diff --git a/target-sparc/cpu.c b/target-sparc/cpu.c
index 82bb72a..d98682b 100644
--- a/target-sparc/cpu.c
+++ b/target-sparc/cpu.c
@@ -90,6 +90,14 @@ static bool sparc_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
return false;
}
+static void cpu_sparc_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->print_insn = print_insn_sparc;
+#ifdef TARGET_SPARC64
+ info->mach = bfd_mach_sparc_v9b;
+#endif
+}
+
static int cpu_sparc_register(SPARCCPU *cpu, const char *cpu_model)
{
CPUClass *cc = CPU_GET_CLASS(cpu);
@@ -848,6 +856,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void *data)
cc->do_unaligned_access = sparc_cpu_do_unaligned_access;
cc->get_phys_page_debug = sparc_cpu_get_phys_page_debug;
#endif
+ cc->disas_set_info = cpu_sparc_disas_set_info;
#if defined(TARGET_SPARC64) && !defined(TARGET_ABI32)
cc->gdb_num_core_regs = 86;
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 5/8] disas: QOMify lm32 specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (3 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 4/8] disas: QOMify sparc " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 6/8] disas: QOMify sh4 " Andreas Färber
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Michael Walle, Andreas Färber,
Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() lm32 specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Acked-by: Michael Walle <michael@walle.cc>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 6 ------
target-lm32/cpu.c | 7 +++++++
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/disas.c b/disas.c
index 5b3acf0..b687c98 100644
--- a/disas.c
+++ b/disas.c
@@ -242,9 +242,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
#elif defined(TARGET_ALPHA)
s.info.mach = bfd_mach_alpha_ev6;
s.info.print_insn = print_insn_alpha;
-#elif defined(TARGET_LM32)
- s.info.mach = bfd_mach_lm32;
- s.info.print_insn = print_insn_lm32;
#endif
if (s.info.print_insn == NULL) {
s.info.print_insn = print_insn_od_target;
@@ -442,9 +439,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
#elif defined(TARGET_SH4)
s.info.mach = bfd_mach_sh4;
s.info.print_insn = print_insn_sh;
-#elif defined(TARGET_LM32)
- s.info.mach = bfd_mach_lm32;
- s.info.print_insn = print_insn_lm32;
#endif
if (!s.info.print_insn) {
monitor_printf(mon, "0x" TARGET_FMT_lx
diff --git a/target-lm32/cpu.c b/target-lm32/cpu.c
index d0ab278..0bc544c 100644
--- a/target-lm32/cpu.c
+++ b/target-lm32/cpu.c
@@ -131,6 +131,12 @@ static void lm32_cpu_reset(CPUState *s)
tlb_flush(s, 1);
}
+static void lm32_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->mach = bfd_mach_lm32;
+ info->print_insn = print_insn_lm32;
+}
+
static void lm32_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -275,6 +281,7 @@ static void lm32_cpu_class_init(ObjectClass *oc, void *data)
cc->gdb_num_core_regs = 32 + 7;
cc->gdb_stop_before_watchpoint = true;
cc->debug_excp_handler = lm32_debug_excp_handler;
+ cc->disas_set_info = lm32_cpu_disas_set_info;
/*
* Reason: lm32_cpu_initfn() calls cpu_exec_init(), which saves
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 6/8] disas: QOMify sh4 specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (4 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 5/8] disas: QOMify lm32 " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 7/8] disas: QOMify mips " Andreas Färber
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Andreas Färber, Aurelien Jarno,
Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() sh4 specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Acked-by: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 6 ------
target-sh4/cpu.c | 11 ++++++++++-
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/disas.c b/disas.c
index b687c98..2676e2f 100644
--- a/disas.c
+++ b/disas.c
@@ -236,9 +236,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
#else
s.info.print_insn = print_insn_little_mips;
#endif
-#elif defined(TARGET_SH4)
- s.info.mach = bfd_mach_sh4;
- s.info.print_insn = print_insn_sh;
#elif defined(TARGET_ALPHA)
s.info.mach = bfd_mach_alpha_ev6;
s.info.print_insn = print_insn_alpha;
@@ -436,9 +433,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
#else
s.info.print_insn = print_insn_little_mips;
#endif
-#elif defined(TARGET_SH4)
- s.info.mach = bfd_mach_sh4;
- s.info.print_insn = print_insn_sh;
#endif
if (!s.info.print_insn) {
monitor_printf(mon, "0x" TARGET_FMT_lx
diff --git a/target-sh4/cpu.c b/target-sh4/cpu.c
index 64e4467..d7e2fbd 100644
--- a/target-sh4/cpu.c
+++ b/target-sh4/cpu.c
@@ -70,6 +70,12 @@ static void superh_cpu_reset(CPUState *s)
set_default_nan_mode(1, &env->fp_status);
}
+static void superh_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->mach = bfd_mach_sh4;
+ info->print_insn = print_insn_sh;
+}
+
typedef struct SuperHCPUListState {
fprintf_function cpu_fprintf;
FILE *file;
@@ -288,9 +294,12 @@ static void superh_cpu_class_init(ObjectClass *oc, void *data)
#else
cc->get_phys_page_debug = superh_cpu_get_phys_page_debug;
#endif
- dc->vmsd = &vmstate_sh_cpu;
+ cc->disas_set_info = superh_cpu_disas_set_info;
+
cc->gdb_num_core_regs = 59;
+ dc->vmsd = &vmstate_sh_cpu;
+
/*
* Reason: superh_cpu_initfn() calls cpu_exec_init(), which saves
* the object in cpus -> dangling pointer after final
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 7/8] disas: QOMify mips specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (5 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 6/8] disas: QOMify sh4 " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 8/8] disas: QOMify alpha " Andreas Färber
2015-10-22 17:01 ` [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Leon Alrae, Andreas Färber,
Aurelien Jarno, Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() mips specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
Cc: Aurelien Jarno <aurelien@aurel32.net>
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Acked-by: Leon Alrae <leon.alrae@imgtec.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 12 ------------
target-mips/cpu.c | 9 +++++++++
2 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/disas.c b/disas.c
index 2676e2f..bf16c42 100644
--- a/disas.c
+++ b/disas.c
@@ -230,12 +230,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
}
s.info.disassembler_options = (char *)"any";
s.info.print_insn = print_insn_ppc;
-#elif defined(TARGET_MIPS)
-#ifdef TARGET_WORDS_BIGENDIAN
- s.info.print_insn = print_insn_big_mips;
-#else
- s.info.print_insn = print_insn_little_mips;
-#endif
#elif defined(TARGET_ALPHA)
s.info.mach = bfd_mach_alpha_ev6;
s.info.print_insn = print_insn_alpha;
@@ -427,12 +421,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
s.info.endian = BFD_ENDIAN_LITTLE;
}
s.info.print_insn = print_insn_ppc;
-#elif defined(TARGET_MIPS)
-#ifdef TARGET_WORDS_BIGENDIAN
- s.info.print_insn = print_insn_big_mips;
-#else
- s.info.print_insn = print_insn_little_mips;
-#endif
#endif
if (!s.info.print_insn) {
monitor_printf(mon, "0x" TARGET_FMT_lx
diff --git a/target-mips/cpu.c b/target-mips/cpu.c
index 7fe1f04..37880d2 100644
--- a/target-mips/cpu.c
+++ b/target-mips/cpu.c
@@ -97,6 +97,14 @@ static void mips_cpu_reset(CPUState *s)
#endif
}
+static void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info) {
+#ifdef TARGET_WORDS_BIGENDIAN
+ info->print_insn = print_insn_big_mips;
+#else
+ info->print_insn = print_insn_little_mips;
+#endif
+}
+
static void mips_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -150,6 +158,7 @@ static void mips_cpu_class_init(ObjectClass *c, void *data)
cc->get_phys_page_debug = mips_cpu_get_phys_page_debug;
cc->vmsd = &vmstate_mips_cpu;
#endif
+ cc->disas_set_info = mips_cpu_disas_set_info;
cc->gdb_num_core_regs = 73;
cc->gdb_stop_before_watchpoint = true;
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Qemu-devel] [PULL 8/8] disas: QOMify alpha specific disas setup
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (6 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 7/8] disas: QOMify mips " Andreas Färber
@ 2015-10-22 16:22 ` Andreas Färber
2015-10-22 17:01 ` [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Crosthwaite, Richard Henderson, Andreas Färber,
Peter Crosthwaite
From: Peter Crosthwaite <crosthwaitepeter@gmail.com>
Move the target_disas() alpha specifics to the CPUClass::disas_set_info()
hook and delete the #ifdef specific code in disas.c.
This also makes monitor_disas() consistent with target_disas(), as
monitor_disas() was missing a set of the BFD (This was an omission from
commit b9bec751c8c8b08d8055da32306eb105db03031b).
Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
Acked-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
disas.c | 5 -----
target-alpha/cpu.c | 8 ++++++++
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/disas.c b/disas.c
index bf16c42..4e11944 100644
--- a/disas.c
+++ b/disas.c
@@ -230,9 +230,6 @@ void target_disas(FILE *out, CPUState *cpu, target_ulong code,
}
s.info.disassembler_options = (char *)"any";
s.info.print_insn = print_insn_ppc;
-#elif defined(TARGET_ALPHA)
- s.info.mach = bfd_mach_alpha_ev6;
- s.info.print_insn = print_insn_alpha;
#endif
if (s.info.print_insn == NULL) {
s.info.print_insn = print_insn_od_target;
@@ -404,8 +401,6 @@ void monitor_disas(Monitor *mon, CPUState *cpu,
s.info.mach = bfd_mach_i386_i386;
}
s.info.print_insn = print_insn_i386;
-#elif defined(TARGET_ALPHA)
- s.info.print_insn = print_insn_alpha;
#elif defined(TARGET_PPC)
if (flags & 0xFFFF) {
/* If we have a precise definition of the instruction set, use it. */
diff --git a/target-alpha/cpu.c b/target-alpha/cpu.c
index ff1926a..e5bdfa8 100644
--- a/target-alpha/cpu.c
+++ b/target-alpha/cpu.c
@@ -46,6 +46,12 @@ static bool alpha_cpu_has_work(CPUState *cs)
| CPU_INTERRUPT_MCHK);
}
+static void alpha_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
+{
+ info->mach = bfd_mach_alpha_ev6;
+ info->print_insn = print_insn_alpha;
+}
+
static void alpha_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -297,6 +303,8 @@ static void alpha_cpu_class_init(ObjectClass *oc, void *data)
cc->get_phys_page_debug = alpha_cpu_get_phys_page_debug;
dc->vmsd = &vmstate_alpha_cpu;
#endif
+ cc->disas_set_info = alpha_cpu_disas_set_info;
+
cc->gdb_num_core_regs = 67;
/*
--
2.1.4
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22
2015-10-22 16:22 [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22 Andreas Färber
` (7 preceding siblings ...)
2015-10-22 16:22 ` [Qemu-devel] [PULL 8/8] disas: QOMify alpha " Andreas Färber
@ 2015-10-22 17:01 ` Peter Maydell
8 siblings, 0 replies; 10+ messages in thread
From: Peter Maydell @ 2015-10-22 17:01 UTC (permalink / raw)
To: Andreas Färber; +Cc: QEMU Developers, Peter Crosthwaite
On 22 October 2015 at 17:22, Andreas Färber <afaerber@suse.de> wrote:
> Hello Peter,
>
> This is my QOM CPU patch queue. Please pull.
>
> Remaining maintainers should've had more than enough time to object or ack now.
>
> Regards,
> Andreas
>
> Cc: Peter Maydell <peter.maydell@linaro.org>
>
> Cc: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>
> The following changes since commit ca3e40e233e87f7b29442311736a82da01c0df7b:
>
> Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2015-10-22 12:41:44 +0100)
>
> are available in the git repository at:
>
> git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter
>
> for you to fetch changes up to 0960be7cffa7b30189f2f0f76b1ac3c8115660f3:
>
> disas: QOMify alpha specific disas setup (2015-10-22 15:49:40 +0200)
>
> ----------------------------------------------------------------
> QOM CPUState and X86CPU
>
> * Adoption of CPUClass::disas_set_info() hook
>
Applied, thanks.
-- PMM
^ permalink raw reply [flat|nested] 10+ messages in thread