summaryrefslogtreecommitdiffstats
path: root/tools/toolchain-patches/gcc-4.0.3-rockbox-1.diff
blob: abd0f44be37ab8083bdec03f3066aa0b993b6f36 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
diff -ru gcc-4.0.3-orig/gcc/config/sh/sh.h gcc-4.0.3/gcc/config/sh/sh.h
--- gcc-4.0.3-orig/gcc/config/sh/sh.h	2006-03-06 23:40:49.000000000 +0100
+++ gcc-4.0.3/gcc/config/sh/sh.h	2006-04-28 03:03:18.000000000 +0200
@@ -2809,12 +2809,15 @@
 #define CASE_VECTOR_MODE ((! optimize || TARGET_BIGTABLE) ? SImode : HImode)
 
 #define CASE_VECTOR_SHORTEN_MODE(MIN_OFFSET, MAX_OFFSET, BODY) \
-((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 127 \
+((MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 126 \
  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 0, QImode) \
- : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 255 \
+ : (MIN_OFFSET) >= 0 && (MAX_OFFSET) <= 254 \
  ? (ADDR_DIFF_VEC_FLAGS (BODY).offset_unsigned = 1, QImode) \
  : (MIN_OFFSET) >= -32768 && (MAX_OFFSET) <= 32767 ? HImode \
  : SImode)
+/* Note: The maximum range for byte-sized offsets was reduced by 1 to work
+   around a bug in final.c I don't know how to fix properly (jump table
+   length calculation should take alignment into account). -- Jens Arnold */
 
 /* Define as C expression which evaluates to nonzero if the tablejump
    instruction expects the table to contain offsets from the address of the
diff -ru gcc-4.0.3-orig/gcc/version.c gcc-4.0.3/gcc/version.c
--- gcc-4.0.3-orig/gcc/version.c	2006-03-09 21:46:18.000000000 +0100
+++ gcc-4.0.3/gcc/version.c	2006-04-29 23:52:22.000000000 +0200
@@ -5,7 +5,7 @@
    please modify this string to indicate that, e.g. by putting your
    organization's name in parentheses at the end of the string.  */
 
-const char version_string[] = "4.0.3";
+const char version_string[] = "4.0.3 (rockbox patch #1)";
 
 /* This is the location of the online document giving instructions for
    reporting bugs.  If you distribute a modified version of GCC,
diff -ru gcc-4.0.3-orig/gcc/config.gcc gcc-4.0.3/gcc/config.gcc
--- gcc-4.0.3-orig/gcc/config.gcc	So Mrz  7 23:08:24 2010
+++ gcc-4.0.3/gcc/config.gcc	Mo Mrz  8 01:36:54 2010
@@ -1867,7 +1867,7 @@
 	sh2*)			sh_cpu_target=sh2 ;;
 	*)			sh_cpu_target=sh1 ;;
 	esac
-	sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
+	sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr [A-Z]_ [a-z]-`"
 	case $sh_cpu_default in
 	sh5-64media-nofpu | sh5-64media | \
 	  sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
@@ -1889,9 +1889,9 @@
 		*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
 		esac
 	fi
-	target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr a-z- A-Z_`
+	target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr [a-z]- [A-Z]_`
 	tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
-	sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ 	,/][ 	,]*/ /g' -e 's/ $//' -e s/^m/sh/ -e 's/ m/ sh/g' | tr A-Z_ a-z-`
+	sh_multilibs=`echo $sh_multilibs,$sh_cpu_default | sed -e 's/[ 	,/][ 	,]*/ /g' -e 's/ $//' -e s/^m/sh/ -e 's/ m/ sh/g' | tr [A-Z]_ [a-z]-`
 	for sh_multilib in ${sh_multilibs}; do
 		case ${sh_multilib} in
 		sh1 | sh2 | sh2e | sh3 | sh3e | \
@@ -1902,7 +1902,7 @@
 		sh5-32media | sh5-32media-nofpu | \
 		sh5-compact | sh5-compact-nofpu)
 			tmake_file="${tmake_file} sh/t-mlib-${sh_multilib}"
-			tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr a-z- A-Z_`"
+			tm_defines="$tm_defines SUPPORT_`echo $sh_multilib|tr [a-z]- [A-Z]_`"
 			;;
 		*)
 			echo "with_multilib_list=${sh_multilib} not supported."
@@ -2631,7 +2631,7 @@
 
 	sh[123456ble]-*-* | sh-*-*)
 		supported_defaults="cpu"
-		case "`echo $with_cpu | tr A-Z_ a-z- | sed s/sh/m/`" in
+		case "`echo $with_cpu | tr [A-Z]_ [a-z]- | sed s/sh/m/`" in
 		"" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
 			# OK
 			;;