From 64b3ab24391c47869a09d082ee073e9832718fc2 Mon Sep 17 00:00:00 2001 From: bellard Date: Sun, 30 Jan 2005 22:43:42 +0000 Subject: [PATCH] sparc64 support (Blue Swirl) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1254 c046a42c-6fe2-441c-8c8c-71466251a162 --- Makefile.target | 18 ++++++++++++++---- configure | 10 ++++++++-- thunk.c | 2 +- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Makefile.target b/Makefile.target index 6c49acfb24c..0efc9d1c916 100644 --- a/Makefile.target +++ b/Makefile.target @@ -4,6 +4,9 @@ TARGET_BASE_ARCH:=$(TARGET_ARCH) ifeq ($(TARGET_ARCH), x86_64) TARGET_BASE_ARCH:=i386 endif +ifeq ($(TARGET_ARCH), sparc64) +TARGET_BASE_ARCH:=sparc +endif TARGET_PATH=$(SRC_PATH)/target-$(TARGET_BASE_ARCH) VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio DEFINES=-I. -I$(TARGET_PATH) -I$(SRC_PATH) @@ -102,6 +105,13 @@ endif endif # ARCH = x86_64 endif # TARGET_ARCH = sparc + +ifeq ($(TARGET_ARCH), sparc64) +ifdef CONFIG_SOFTMMU +PROGS+=$(QEMU_SYSTEM) +endif +endif # TARGET_ARCH = sparc64 + endif # !CONFIG_USER_ONLY ifdef CONFIG_STATIC @@ -245,7 +255,7 @@ ifeq ($(TARGET_ARCH), ppc) LIBOBJS+= op_helper.o helper.o endif -ifeq ($(TARGET_ARCH), sparc) +ifeq ($(TARGET_BASE_ARCH), sparc) LIBOBJS+= op_helper.o helper.o endif @@ -266,7 +276,7 @@ endif ifeq ($(findstring ppc, $(TARGET_ARCH) $(ARCH)),ppc) LIBOBJS+=ppc-dis.o endif -ifeq ($(findstring sparc, $(TARGET_ARCH) $(ARCH)),sparc) +ifeq ($(findstring sparc, $(TARGET_BASE_ARCH) $(ARCH)),sparc) LIBOBJS+=sparc-dis.o endif ifeq ($(findstring arm, $(TARGET_ARCH) $(ARCH)),arm) @@ -323,7 +333,7 @@ VL_OBJS+= ppc.o ide.o ne2000.o pckbd.o vga.o $(SOUND_HW) dma.o $(AUDIODRV) VL_OBJS+= mc146818rtc.o serial.o i8259.o i8254.o fdc.o m48t59.o VL_OBJS+= ppc_prep.o ppc_chrp.o cuda.o adb.o openpic.o mixeng.o endif -ifeq ($(TARGET_ARCH), sparc) +ifeq ($(TARGET_BASE_ARCH), sparc) VL_OBJS+= sun4m.o tcx.o lance.o iommu.o m48t08.o magic-load.o slavio_intctl.o slavio_timer.o slavio_serial.o fdc.o endif ifdef CONFIG_GDBSTUB @@ -399,7 +409,7 @@ ifeq ($(TARGET_ARCH), arm) op.o: op.c op_template.h endif -ifeq ($(TARGET_ARCH), sparc) +ifeq ($(TARGET_BASE_ARCH), sparc) op.o: op.c op_template.h op_mem.h endif diff --git a/configure b/configure index fa64f6d48bc..5149eb0a39e 100755 --- a/configure +++ b/configure @@ -190,10 +190,10 @@ fi if test -z "$target_list" ; then # these targets are portable - target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu" + target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu sparc64-softmmu" # the following are Linux specific if [ "$linux" = "yes" ] ; then - target_list="i386-user i386 arm-user armeb-user sparc-user ppc-user $target_list" + target_list="i386-user i386 arm-user armeb-user sparc-user ppc-user sparc64-user $target_list" fi fi @@ -500,6 +500,7 @@ target_cpu=`echo $target | cut -d '-' -f 1` target_bigendian="no" [ "$target_cpu" = "armeb" ] && target_bigendian=yes [ "$target_cpu" = "sparc" ] && target_bigendian=yes +[ "$target_cpu" = "sparc64" ] && target_bigendian=yes [ "$target_cpu" = "ppc" ] && target_bigendian=yes target_softmmu="no" if expr $target : '.*-softmmu' > /dev/null ; then @@ -544,6 +545,11 @@ elif test "$target_cpu" = "sparc" ; then echo "TARGET_ARCH=sparc" >> $config_mak echo "#define TARGET_ARCH \"sparc\"" >> $config_h echo "#define TARGET_SPARC 1" >> $config_h +elif test "$target_cpu" = "sparc64" ; then + echo "TARGET_ARCH=sparc64" >> $config_mak + echo "#define TARGET_ARCH \"sparc64\"" >> $config_h + echo "#define TARGET_SPARC 1" >> $config_h + echo "#define TARGET_SPARC64 1" >> $config_h elif test "$target_cpu" = "ppc" ; then echo "TARGET_ARCH=ppc" >> $config_mak echo "#define TARGET_ARCH \"ppc\"" >> $config_h diff --git a/thunk.c b/thunk.c index 2dbc378cd9d..bc9bd288195 100644 --- a/thunk.c +++ b/thunk.c @@ -153,7 +153,7 @@ const argtype *thunk_convert(void *dst, const void *src, } break; #else -#error unsupported conversion +#warning unsupported conversion #endif case TYPE_ARRAY: { -- 2.39.2