summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorthorpej <thorpej@NetBSD.org>2002-08-07 03:27:39 +0000
committerthorpej <thorpej@NetBSD.org>2002-08-07 03:27:39 +0000
commit7a6acd854a591886eb8940e49bb3f76ed192a486 (patch)
treebf1bab40c6fd707db16caae6d96e540a2a83c029 /gnu
parent8bb4151f3455bc1bfbe7a4795b21f2feb77b894e (diff)
* Add -march=armv5, -march=armv5t, -march=armv5te, which are internally
treated like -march=armv4t, but which generate __ARM_ARCH_5__, __ARM_ARCH_5T__, and __ARM_ARCH_5TE__ defines, respecitively. * Add -mcpu=xscale, which is internally treated like -mcpu=strongarm, but which generates __ARM_ARCH_5TE__ and __XSCALE__ defines. These command-line options and definitions are consistent with gcc 3.x, and allow NetBSD Makefiles to use them in a forward-compatible way, and also give hand-tuned source code (e.g. assembly) a chance of tuning for XScale.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/dist/toolchain/gcc/config/arm/arm.c30
-rw-r--r--gnu/dist/toolchain/gcc/config/arm/arm.h6
2 files changed, 36 insertions, 0 deletions
diff --git a/gnu/dist/toolchain/gcc/config/arm/arm.c b/gnu/dist/toolchain/gcc/config/arm/arm.c
index 97ab95d91ed..5b441291cf0 100644
--- a/gnu/dist/toolchain/gcc/config/arm/arm.c
+++ b/gnu/dist/toolchain/gcc/config/arm/arm.c
@@ -220,6 +220,22 @@ static struct processors all_cores[] =
{"strongarm", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
{"strongarm110", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
{"strongarm1100", FL_MODE26 | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
+
+ /* Local NetBSD additions. These switches also appear in gcc 3.x. They
+ have been added to the NetBSD in-tree 2.95.3 in order to provide for
+ command-line compatibility with gcc 3.x.
+
+ We treat them like other CPUs that 2.95.3 already supports:
+
+ arm10tdmi -> arm9tdmi
+ arm1020t -> arm9tdmi
+
+ xscame -> strongarm
+
+ --thorpej@netbsd.org */
+ {"arm10tdmi", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED },
+ {"arm1020t", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB | FL_LDSCHED },
+ {"xscale", FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_LDSCHED | FL_STRONG },
{NULL, 0}
};
@@ -236,6 +252,20 @@ static struct processors all_architectures[] =
/* Strictly, FL_MODE26 is a permitted option for v4t, but there are no
implementations that support it, so we will leave it out for now. */
{"armv4t", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
+ /* Local NetBSD additions. These switches also appear in gcc 3.x. They
+ have been added to the NetBSD in-tree 2.95.3 in order to provide for
+ command-line compatibility with gcc 3.x.
+
+ We treat them like other ARCHs that 2.95.3 already supports:
+
+ armv5 -> armv4t
+ armv5t -> armv4t
+ armv5te -> armv4t
+
+ --thorpej@netbsd.org */
+ {"armv5", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
+ {"armv5t", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
+ {"armv5te", FL_CO_PROC | FL_MODE32 | FL_FAST_MULT | FL_ARCH4 | FL_THUMB },
{NULL, 0}
};
diff --git a/gnu/dist/toolchain/gcc/config/arm/arm.h b/gnu/dist/toolchain/gcc/config/arm/arm.h
index 4a98a4af38f..900376e2a11 100644
--- a/gnu/dist/toolchain/gcc/config/arm/arm.h
+++ b/gnu/dist/toolchain/gcc/config/arm/arm.h
@@ -152,6 +152,10 @@ Unrecognized value in TARGET_CPU_DEFAULT.
%{march=armv3m:-D__ARM_ARCH_3M__} \
%{march=armv4:-D__ARM_ARCH_4__} \
%{march=armv4t:-D__ARM_ARCH_4T__} \
+%{march=armv5:-D__ARM_ARCH_5__} \
+%{march=armv5t:-D__ARM_ARCH_5T__} \
+%{march=armv5e:-D__ARM_ARCH_5E__} \
+%{march=armv5te:-D__ARM_ARCH_5TE__} \
%{!march=*: \
%{mcpu=arm2:-D__ARM_ARCH_2__} \
%{mcpu=arm250:-D__ARM_ARCH_2__} \
@@ -176,6 +180,8 @@ Unrecognized value in TARGET_CPU_DEFAULT.
%{mcpu=strongarm:-D__ARM_ARCH_4__} \
%{mcpu=strongarm110:-D__ARM_ARCH_4__} \
%{mcpu=strongarm1100:-D__ARM_ARCH_4__} \
+ %{mcpu=xscale:-D__ARM_ARCH_5TE__} \
+ %{mcpu=xscale:-D__XSCALE__} \
%{!mcpu*:%(cpp_cpu_arch_default)}} \
"