[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 4/8] disas: sparc: QOMify target specific disas setu
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [PATCH 4/8] disas: sparc: QOMify target specific disas setup |
Date: |
Sat, 11 Jul 2015 19:00:01 -0700 |
From: Peter Crosthwaite <address@hidden>
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 <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
---
Testing:
$ ./sparc64-softmmu/qemu-system-sparc64 -nographic 2> er -d in_asm -S
QEMU 2.3.90 monitor - type 'help' for more information
(qemu) info registers
pc: 000001fff0000020 npc: 000001fff0000024
...
(qemu) x/i 0x1fff0000020
0x000001fff0000020: b 0x1fff000c020
(qemu) x/i 0x1fff0000024
0x000001fff0000024: nop
(qemu) c
(qemu) OpenBIOS for Sparc64
QEMU: Terminated
$ more err
--------------
IN:
0x000001fff0000020: b 0x1fff000c020
0x000001fff0000024: nop
$ ./sparc-softmmu/qemu-system-sparc -nographic 2> err -d in_asm -S
QEMU 2.3.90 monitor - type 'help' for more information
(qemu) info registers
pc: 00000000 npc: 00000004
...
(qemu) x/i 0
0x00000000: b 0x5d48
(qemu) x/i 4
0x00000004: nop
(qemu) c
(qemu) q
$ more err
--------------
IN:
0x00000000: b 0x5d48
0x00000004: nop
---
disas.c | 10 ----------
target-sparc/cpu.c | 9 +++++++++
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/disas.c b/disas.c
index 91cbb1a..9459505 100644
--- a/disas.c
+++ b/disas.c
@@ -222,11 +222,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;
@@ -441,11 +436,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 9528e3a..06c59a4 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);
@@ -854,6 +862,7 @@ static void sparc_cpu_class_init(ObjectClass *oc, void
*data)
#else
cc->gdb_num_core_regs = 72;
#endif
+ cc->disas_set_info = cpu_sparc_disas_set_info;
}
static const TypeInfo sparc_cpu_type_info = {
--
1.9.1
- [Qemu-devel] [PATCH 0/8] Disas QOMification, round 2, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 1/8] disas: s390x: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 3/8] disas: m68k: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 2/8] disas: moxie: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 4/8] disas: sparc: QOMify target specific disas setup,
Peter Crosthwaite <=
- [Qemu-devel] [PATCH 5/8] disas: lm32: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 6/8] disas: sh4: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 7/8] disas: mips: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- [Qemu-devel] [PATCH 8/8] disas: alpha: QOMify target specific disas setup, Peter Crosthwaite, 2015/07/11
- Re: [Qemu-devel] [PATCH 0/8] Disas QOMification, round 2, Andreas Färber, 2015/07/12