aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/gcc/gcc-3.3.3/arm-14558.dpatch
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/gcc/gcc-3.3.3/arm-14558.dpatch
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/gcc/gcc-3.3.3/arm-14558.dpatch')
-rw-r--r--recipes/gcc/gcc-3.3.3/arm-14558.dpatch51
1 files changed, 51 insertions, 0 deletions
diff --git a/recipes/gcc/gcc-3.3.3/arm-14558.dpatch b/recipes/gcc/gcc-3.3.3/arm-14558.dpatch
new file mode 100644
index 0000000000..9d15eaecd8
--- /dev/null
+++ b/recipes/gcc/gcc-3.3.3/arm-14558.dpatch
@@ -0,0 +1,51 @@
+#! /bin/sh -e
+
+# DP: Patch for invalid QImode insn resulting from HImode reload on ARMv3
+
+dir=
+if [ $# -eq 3 -a "$2" = '-d' ]; then
+ pdir="-d $3"
+ dir="$3/"
+elif [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+case "$1" in
+ -patch)
+ patch $pdir -f --no-backup-if-mismatch -p0 < $0
+ #cd ${dir}gcc && autoconf
+ ;;
+ -unpatch)
+ patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
+ #rm ${dir}gcc/configure
+ ;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+esac
+exit 0
+
+--- gcc/config/arm/arm.h.old Thu Feb 19 13:48:41 2004
++++ gcc/config/arm/arm.h Thu Feb 19 13:56:31 2004
+@@ -2003,10 +2003,17 @@
+ && INTVAL (op) <= 31) \
+ goto LABEL; \
+ } \
+- /* NASTY: Since this limits the addressing of unsigned \
+- byte loads. */ \
+- range = ((MODE) == HImode || (MODE) == QImode) \
+- ? (arm_arch4 ? 256 : 4095) : 4096; \
++ /* XXX For ARM v4 we may be doing a sign-extend operation \
++ during the load, but that has a restricted addressing \
++ range and we are unable to tell here whether that is the \
++ case. To be safe we restrict all loads to that \
++ range. */ \
++ if (arm_arch4) \
++ range = (mode == HImode || mode == QImode) ? 256 : 4096; \
++ else if (mode == HImode) \
++ range = 4095; \
++ else \
++ range = 4096; \
+ if (code == CONST_INT && INTVAL (INDEX) < range \
+ && INTVAL (INDEX) > -range) \
+ goto LABEL; \