aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-01-30 22:43:42 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-01-30 22:43:42 +0000
commit64b3ab24391c47869a09d082ee073e9832718fc2 (patch)
tree8a4a7fde834ff6b8c612e4720061ab34702fe64f
parentc1135f6152bcb7ea64c36c6330cab20cc8f587e2 (diff)
sparc64 support (Blue Swirl)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1254 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--Makefile.target18
-rwxr-xr-xconfigure10
-rw-r--r--thunk.c2
3 files changed, 23 insertions, 7 deletions
diff --git a/Makefile.target b/Makefile.target
index 6c49acfb24..0efc9d1c91 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 fa64f6d48b..5149eb0a39 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 2dbc378cd9..bc9bd28819 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:
{