summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authormarius <marius@FreeBSD.org>2010-12-30 15:58:23 +0000
committermarius <marius@FreeBSD.org>2010-12-30 15:58:23 +0000
commitaa5a8ce5f29eaca61906a4f8503ed3c76ccb5544 (patch)
tree280da172c58c7c97f7f803e2be6a3dce0e641d64 /share
parentfb3385d473efacdd624c80f1c69ffec96ee2cad9 (diff)
downloadFreeBSD-src-aa5a8ce5f29eaca61906a4f8503ed3c76ccb5544.zip
FreeBSD-src-aa5a8ce5f29eaca61906a4f8503ed3c76ccb5544.tar.gz
- Add CPUTYPE support for sparc64. The net result is that it's now possible
to let the compiler optimize for the famility of UltraSPARC-III CPUs as the default already was to optimize for UltraSPARC-I/II and generating generic 64-bit V9 is mainly for reference purposes. At least for SPARC64-V CPUs code optimized for UltraSPARC-I/II still is the most performant one. Thanks go to Michael Moll for testing SPARC64-V. - Move a booke MACHINE_CPU bit into the right section.
Diffstat (limited to 'share')
-rw-r--r--share/examples/etc/make.conf2
-rw-r--r--share/mk/bsd.cpu.mk30
2 files changed, 30 insertions, 2 deletions
diff --git a/share/examples/etc/make.conf b/share/examples/etc/make.conf
index 93fcabf..b21bc1d 100644
--- a/share/examples/etc/make.conf
+++ b/share/examples/etc/make.conf
@@ -38,6 +38,8 @@
# (Via CPUs) c3 c3-2
# AMD64 architecture: opteron, athlon64, nocona, prescott, core2
# Intel ia64 architecture: itanium2, itanium
+# SPARC-V9 architecture: v9 (generic 64-bit V9), ultrasparc (default
+# if omitted), ultrasparc3
#
# (?= allows to buildworld for a different CPUTYPE.)
#
diff --git a/share/mk/bsd.cpu.mk b/share/mk/bsd.cpu.mk
index b7bf4d8..3dbe1b7 100644
--- a/share/mk/bsd.cpu.mk
+++ b/share/mk/bsd.cpu.mk
@@ -15,6 +15,7 @@ MACHINE_CPU = itanium
. elif ${MACHINE_CPUARCH} == "powerpc"
MACHINE_CPU = aim
. elif ${MACHINE_CPUARCH} == "sparc64"
+MACHINE_CPU = ultrasparc
. elif ${MACHINE_CPUARCH} == "arm"
MACHINE_CPU = arm
. elif ${MACHINE_CPUARCH} == "mips"
@@ -58,6 +59,12 @@ CPUTYPE = athlon
. if ${CPUTYPE} == "prescott" || ${CPUTYPE} == "core2"
CPUTYPE = nocona
. endif
+. elif ${MACHINE_ARCH} == "sparc64"
+. if ${CPUTYPE} == "us"
+CPUTYPE = ultrasparc
+. elif ${CPUTYPE} == "us3"
+CPUTYPE = ultrasparc3
+. endif
. endif
###############################################################################
@@ -116,7 +123,6 @@ _CPUCFLAGS = -mcpu=${CPUTYPE}
. endif
. elif ${MACHINE_ARCH} == "powerpc"
. if ${CPUTYPE} == "e500"
-MACHINE_CPU = booke
_CPUCFLAGS = -Wa,-me500 -msoft-float
. else
_CPUCFLAGS = -mcpu=${CPUTYPE} -mno-powerpc64
@@ -137,6 +143,14 @@ _CPUCFLAGS = -march=4kc
. elif ${CPUTYPE} == "mips24kc"
_CPUCFLAGS = -march=24kc
. endif
+. elif ${MACHINE_ARCH} == "sparc64"
+. if ${CPUTYPE} == "v9"
+_CPUCFLAGS = -mcpu=v9
+. elif ${CPUTYPE} == "ultrasparc"
+_CPUCFLAGS = -mcpu=ultrasparc
+. elif ${CPUTYPE} == "ultrasparc3"
+_CPUCFLAGS = -mcpu=ultrasparc3
+. endif
. endif
# Set up the list of CPU features based on the CPU type. This is an
@@ -193,10 +207,22 @@ MACHINE_CPU += amd64 sse2 sse mmx
. if ${CPUTYPE} == "itanium"
MACHINE_CPU = itanium
. endif
+. elif ${MACHINE_ARCH} == "powerpc"
+. if ${CPUTYPE} == "e500"
+MACHINE_CPU = booke
+. endif
+. elif ${MACHINE_ARCH} == "sparc64"
+. if ${CPUTYPE} == "v9"
+MACHINE_CPU = v9
+. elif ${CPUTYPE} == "ultrasparc"
+MACHINE_CPU = v9 ultrasparc
+. elif ${CPUTYPE} == "ultrasparc3"
+MACHINE_CPU = v9 ultrasparc ultrasparc3
+. endif
. endif
.endif
-.if ${MACHINE_CPUARCH} == "mips"
+.if ${MACHINE_CPUARCH} == "mips"
CFLAGS += -G0
.endif
OpenPOWER on IntegriCloud