All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/8] QOM CPUState patch queue 2015-10-22
@ 2015-10-22 16:22 Andreas Färber
  2015-10-22 16:22 ` [Qemu-devel] [PULL 1/8] disas: QOMify s390x specific disas setup Andreas Färber
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Andreas Färber @ 2015-10-22 16:22 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Andreas Färber, Peter Crosthwaite

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

----------------------------------------------------------------
Peter Crosthwaite (8):
      disas: QOMify s390x specific disas setup
      disas: QOMify moxie specific disas setup
      disas: QOMify m68k specific disas setup
      disas: QOMify sparc specific disas setup
      disas: QOMify lm32 specific disas setup
      disas: QOMify sh4 specific disas setup
      disas: QOMify mips specific disas setup
      disas: QOMify alpha specific disas setup

 disas.c            | 55 ------------------------------------------------------
 target-alpha/cpu.c |  8 ++++++++
 target-lm32/cpu.c  |  7 +++++++
 target-m68k/cpu.c  |  9 ++++++++-
 target-mips/cpu.c  |  9 +++++++++
 target-moxie/cpu.c |  7 +++++++
 target-s390x/cpu.c |  8 ++++++++
 target-sh4/cpu.c   | 11 ++++++++++-
 target-sparc/cpu.c |  9 +++++++++
 9 files changed, 66 insertions(+), 57 deletions(-)

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [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

end of thread, other threads:[~2015-10-22 17:01 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [Qemu-devel] [PULL 3/8] disas: QOMify m68k " Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 4/8] disas: QOMify sparc " Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 5/8] disas: QOMify lm32 " Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 6/8] disas: QOMify sh4 " Andreas Färber
2015-10-22 16:22 ` [Qemu-devel] [PULL 7/8] disas: QOMify mips " 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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.