49 lines
1.5 KiB
Diff
49 lines
1.5 KiB
Diff
--- qemu-0.9.1/Makefile.target
|
|
+++ qemu-0.9.1/Makefile.target
|
|
@@ -390,6 +390,9 @@
|
|
ifeq ($(findstring z80, $(TARGET_ARCH) $(ARCH)),z80)
|
|
LIBOBJS+=z80-dis.o
|
|
endif
|
|
+ifeq ($(findstring s390, $(TARGET_ARCH) $(ARCH)),s390)
|
|
+LIBOBJS+=s390-dis.o
|
|
+endif
|
|
|
|
ifdef CONFIG_GDBSTUB
|
|
OBJS+=gdbstub.o
|
|
--- qemu-0.9.1/dis-asm.h
|
|
+++ qemu-0.9.1/dis-asm.h
|
|
@@ -396,6 +396,7 @@
|
|
extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
|
|
extern int print_insn_crisv32 PARAMS ((bfd_vma, disassemble_info*));
|
|
extern int print_insn_z80 PARAMS ((bfd_vma, disassemble_info*));
|
|
+extern int print_insn_s390 PARAMS ((bfd_vma, disassemble_info*));
|
|
|
|
#if 0
|
|
/* Fetch the disassembler for a given BFD, if that support is available. */
|
|
--- qemu-0.9.1/target-i386/translate.c
|
|
+++ qemu-0.9.1/target-i386/translate.c
|
|
@@ -1795,7 +1795,11 @@
|
|
case CC_OP_SUBW:
|
|
case CC_OP_SUBL:
|
|
case CC_OP_SUBQ:
|
|
+#ifdef __s390__
|
|
+ func = NULL; /* does not work on S/390 for unknown reasons */
|
|
+#else
|
|
func = gen_jcc_sub[s->cc_op - CC_OP_SUBB][jcc_op];
|
|
+#endif
|
|
break;
|
|
|
|
/* some jumps are easy to compute */
|
|
@@ -1843,7 +1847,11 @@
|
|
func = gen_jcc_sub[(s->cc_op - CC_OP_ADDB) % 4][jcc_op];
|
|
break;
|
|
case JCC_S:
|
|
+#ifdef __s390__
|
|
+ func = NULL;
|
|
+#else
|
|
func = gen_jcc_sub[(s->cc_op - CC_OP_ADDB) % 4][jcc_op];
|
|
+#endif
|
|
break;
|
|
default:
|
|
func = NULL;
|