MIPS64 configurations.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2564 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
678dde1323
commit
fbe4f65b28
@ -29,6 +29,10 @@ mips-softmmu
|
|||||||
mipsel-softmmu
|
mipsel-softmmu
|
||||||
mips-linux-user
|
mips-linux-user
|
||||||
mipsel-linux-user
|
mipsel-linux-user
|
||||||
|
mips64-softmmu
|
||||||
|
mips64el-softmmu
|
||||||
|
mips64-linux-user
|
||||||
|
mips64el-linux-user
|
||||||
m68k-linux-user
|
m68k-linux-user
|
||||||
.gdbinit
|
.gdbinit
|
||||||
sh4-linux-user
|
sh4-linux-user
|
||||||
|
2
Makefile
2
Makefile
@ -141,6 +141,8 @@ tarbin:
|
|||||||
$(bindir)/qemu-system-x86_64 \
|
$(bindir)/qemu-system-x86_64 \
|
||||||
$(bindir)/qemu-system-mips \
|
$(bindir)/qemu-system-mips \
|
||||||
$(bindir)/qemu-system-mipsel \
|
$(bindir)/qemu-system-mipsel \
|
||||||
|
$(bindir)/qemu-system-mips64 \
|
||||||
|
$(bindir)/qemu-system-mips64el \
|
||||||
$(bindir)/qemu-system-arm \
|
$(bindir)/qemu-system-arm \
|
||||||
$(bindir)/qemu-i386 \
|
$(bindir)/qemu-i386 \
|
||||||
$(bindir)/qemu-arm \
|
$(bindir)/qemu-arm \
|
||||||
|
@ -4,6 +4,9 @@ TARGET_BASE_ARCH:=$(TARGET_ARCH)
|
|||||||
ifeq ($(TARGET_ARCH), x86_64)
|
ifeq ($(TARGET_ARCH), x86_64)
|
||||||
TARGET_BASE_ARCH:=i386
|
TARGET_BASE_ARCH:=i386
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(TARGET_ARCH), mips64)
|
||||||
|
TARGET_BASE_ARCH:=mips
|
||||||
|
endif
|
||||||
ifeq ($(TARGET_ARCH), ppc64)
|
ifeq ($(TARGET_ARCH), ppc64)
|
||||||
TARGET_BASE_ARCH:=ppc
|
TARGET_BASE_ARCH:=ppc
|
||||||
endif
|
endif
|
||||||
@ -44,6 +47,11 @@ ifeq ($(TARGET_ARCH),mips)
|
|||||||
TARGET_ARCH2=mipsel
|
TARGET_ARCH2=mipsel
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(TARGET_ARCH),mips64)
|
||||||
|
ifneq ($(TARGET_WORDS_BIGENDIAN),yes)
|
||||||
|
TARGET_ARCH2=mips64el
|
||||||
|
endif
|
||||||
|
endif
|
||||||
QEMU_USER=qemu-$(TARGET_ARCH2)
|
QEMU_USER=qemu-$(TARGET_ARCH2)
|
||||||
# system emulator name
|
# system emulator name
|
||||||
ifdef CONFIG_SOFTMMU
|
ifdef CONFIG_SOFTMMU
|
||||||
@ -170,7 +178,19 @@ BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(ARCH),mips)
|
ifeq ($(ARCH),mips)
|
||||||
|
ifeq ($(WORDS_BIGENDIAN),yes)
|
||||||
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||||
|
else
|
||||||
|
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(ARCH),mips64)
|
||||||
|
ifeq ($(WORDS_BIGENDIAN),yes)
|
||||||
|
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH).ld
|
||||||
|
else
|
||||||
|
BASE_LDFLAGS+=-Wl,-T,$(SRC_PATH)/$(ARCH)el.ld
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_DARWIN),yes)
|
ifeq ($(CONFIG_DARWIN),yes)
|
||||||
@ -258,7 +278,7 @@ ifeq ($(TARGET_BASE_ARCH), ppc)
|
|||||||
LIBOBJS+= op_helper.o helper.o
|
LIBOBJS+= op_helper.o helper.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH), mips)
|
ifeq ($(TARGET_BASE_ARCH), mips)
|
||||||
LIBOBJS+= op_helper.o helper.o
|
LIBOBJS+= op_helper.o helper.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -295,7 +315,7 @@ endif
|
|||||||
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
|
ifeq ($(findstring ppc, $(TARGET_BASE_ARCH) $(ARCH)),ppc)
|
||||||
LIBOBJS+=ppc-dis.o
|
LIBOBJS+=ppc-dis.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(findstring mips, $(TARGET_ARCH) $(ARCH)),mips)
|
ifeq ($(findstring mips, $(TARGET_BASE_ARCH) $(ARCH)),mips)
|
||||||
LIBOBJS+=mips-dis.o
|
LIBOBJS+=mips-dis.o
|
||||||
endif
|
endif
|
||||||
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
|
ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc)
|
||||||
@ -387,7 +407,7 @@ VL_OBJS+= ppc_prep.o ppc_chrp.o cuda.o adb.o openpic.o heathrow_pic.o mixeng.o
|
|||||||
VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o
|
VL_OBJS+= grackle_pci.o prep_pci.o unin_pci.o
|
||||||
CPPFLAGS += -DHAS_AUDIO
|
CPPFLAGS += -DHAS_AUDIO
|
||||||
endif
|
endif
|
||||||
ifeq ($(TARGET_ARCH), mips)
|
ifeq ($(TARGET_BASE_ARCH), mips)
|
||||||
VL_OBJS+= mips_r4k.o mips_malta.o mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o
|
VL_OBJS+= mips_r4k.o mips_malta.o mips_timer.o mips_int.o dma.o vga.o serial.o i8254.o i8259.o
|
||||||
VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o
|
VL_OBJS+= ide.o gt64xxx.o pckbd.o ps2.o fdc.o mc146818rtc.o usb-uhci.o acpi.o ds1225y.o
|
||||||
VL_OBJS+= piix_pci.o parallel.o mixeng.o cirrus_vga.o $(SOUND_HW) $(AUDIODRV)
|
VL_OBJS+= piix_pci.o parallel.o mixeng.o cirrus_vga.o $(SOUND_HW) $(AUDIODRV)
|
||||||
@ -554,10 +574,11 @@ op_helper.o: op_helper_mem.h
|
|||||||
translate.o: translate.c translate_init.c
|
translate.o: translate.c translate_init.c
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH), mips)
|
ifeq ($(TARGET_BASE_ARCH), mips)
|
||||||
op.o: op.c op_template.c fop_template.c op_mem.c
|
helper.o: cpu.h exec-all.h
|
||||||
op_helper.o: op_helper_mem.c
|
op.o: op_template.c fop_template.c op_mem.c exec.h
|
||||||
translate.o: translate.c translate_init.c
|
op_helper.o: op_helper_mem.c exec.h softmmu_template.h
|
||||||
|
translate.o: translate_init.c exec-all.h disas.h
|
||||||
endif
|
endif
|
||||||
|
|
||||||
loader.o: loader.c elf_ops.h
|
loader.o: loader.c elf_ops.h
|
||||||
|
18
configure
vendored
18
configure
vendored
@ -50,6 +50,9 @@ case "$cpu" in
|
|||||||
mips)
|
mips)
|
||||||
cpu="mips"
|
cpu="mips"
|
||||||
;;
|
;;
|
||||||
|
mips64)
|
||||||
|
cpu="mips64"
|
||||||
|
;;
|
||||||
s390)
|
s390)
|
||||||
cpu="s390"
|
cpu="s390"
|
||||||
;;
|
;;
|
||||||
@ -418,7 +421,7 @@ fi
|
|||||||
if test -z "$target_list" ; then
|
if test -z "$target_list" ; then
|
||||||
# these targets are portable
|
# these targets are portable
|
||||||
if [ "$softmmu" = "yes" ] ; then
|
if [ "$softmmu" = "yes" ] ; then
|
||||||
target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu ppc64-softmmu"
|
target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu"
|
||||||
fi
|
fi
|
||||||
# the following are Linux specific
|
# the following are Linux specific
|
||||||
if [ "$linux_user" = "yes" ] ; then
|
if [ "$linux_user" = "yes" ] ; then
|
||||||
@ -457,7 +460,7 @@ fi
|
|||||||
else
|
else
|
||||||
|
|
||||||
# if cross compiling, cannot launch a program, so make a static guess
|
# if cross compiling, cannot launch a program, so make a static guess
|
||||||
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
|
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
|
||||||
bigendian="yes"
|
bigendian="yes"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -675,6 +678,9 @@ elif test "$cpu" = "powerpc" ; then
|
|||||||
elif test "$cpu" = "mips" ; then
|
elif test "$cpu" = "mips" ; then
|
||||||
echo "ARCH=mips" >> $config_mak
|
echo "ARCH=mips" >> $config_mak
|
||||||
echo "#define HOST_MIPS 1" >> $config_h
|
echo "#define HOST_MIPS 1" >> $config_h
|
||||||
|
elif test "$cpu" = "mips64" ; then
|
||||||
|
echo "ARCH=mips64" >> $config_mak
|
||||||
|
echo "#define HOST_MIPS64 1" >> $config_h
|
||||||
elif test "$cpu" = "s390" ; then
|
elif test "$cpu" = "s390" ; then
|
||||||
echo "ARCH=s390" >> $config_mak
|
echo "ARCH=s390" >> $config_mak
|
||||||
echo "#define HOST_S390 1" >> $config_h
|
echo "#define HOST_S390 1" >> $config_h
|
||||||
@ -801,6 +807,7 @@ target_bigendian="no"
|
|||||||
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
|
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
|
||||||
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
|
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
|
||||||
[ "$target_cpu" = "mips" ] && target_bigendian=yes
|
[ "$target_cpu" = "mips" ] && target_bigendian=yes
|
||||||
|
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
|
||||||
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
|
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
|
||||||
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
|
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
|
||||||
target_softmmu="no"
|
target_softmmu="no"
|
||||||
@ -903,6 +910,13 @@ elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
|
|||||||
echo "#define TARGET_MIPS 1" >> $config_h
|
echo "#define TARGET_MIPS 1" >> $config_h
|
||||||
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
|
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
|
||||||
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
|
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
|
||||||
|
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
|
||||||
|
echo "TARGET_ARCH=mips64" >> $config_mak
|
||||||
|
echo "#define TARGET_ARCH \"mips64\"" >> $config_h
|
||||||
|
echo "#define TARGET_MIPS 1" >> $config_h
|
||||||
|
echo "#define TARGET_MIPS64 1" >> $config_h
|
||||||
|
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
|
||||||
|
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
|
||||||
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
|
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
|
||||||
echo "TARGET_ARCH=sh4" >> $config_mak
|
echo "TARGET_ARCH=sh4" >> $config_mak
|
||||||
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
|
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
|
||||||
|
@ -336,8 +336,6 @@ void do_mtc0_status_irqraise_debug(void)
|
|||||||
fprintf(logfile, "Raise pending IRQs\n");
|
fprintf(logfile, "Raise pending IRQs\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "softfloat.h"
|
|
||||||
|
|
||||||
void fpu_handle_exception(void)
|
void fpu_handle_exception(void)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_SOFTFLOAT
|
#ifdef CONFIG_SOFTFLOAT
|
||||||
|
Loading…
Reference in New Issue
Block a user