summaryrefslogtreecommitdiffstats
path: root/packages/linux/unslung-kernel/gcc3-userfuncs.patch
blob: 54726bf74000a342c4a222d36967a753a1a184f2 (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#

--- linux-2.4.22/arch/arm/lib/getuser.S~gcc3-userfuncs	2004-09-08 19:14:05.000000000 -0500
+++ linux-2.4.22/arch/arm/lib/getuser.S	2004-09-08 19:49:27.000000000 -0500
@@ -42,17 +42,17 @@
 
 	.global	__get_user_2
 __get_user_2:
-	bic	r2, sp, #0x1f00
-	bic	r2, r2, #0x00ff
-	ldr	r2, [r2, #TSK_ADDR_LIMIT]
-	sub	r2, r2, #2
-	cmp	r0, r2
+	bic	ip, sp, #0x1f00
+	bic	ip, ip, #0x00ff
+	ldr	ip, [ip, #TSK_ADDR_LIMIT]
+	sub	ip, ip, #2
+	cmp	r0, ip
 2:	ldrlsbt	r1, [r0], #1
-3:	ldrlsbt	r2, [r0]
+3:	ldrlsbt	ip, [r0]
 #ifndef __ARMEB__
-	orrls	r1, r1, r2, lsl #8
+	orrls	r1, r1, ip, lsl #8
 #else
-	orrls	r1, r2, r1, lsl #8
+	orrls	r1, ip, r1, lsl #8
 #endif
 	movls	r0, #0
 	movls	pc, lr
--- linux-2.4.22/arch/arm/lib/putuser.S~gcc3-userfuncs	2004-09-08 19:14:05.000000000 -0500
+++ linux-2.4.22/arch/arm/lib/putuser.S	2004-09-08 19:45:00.000000000 -0500
@@ -18,7 +18,7 @@
  * Inputs:	r0 contains the address
  *		r1, r2 contains the value
  * Outputs:	r0 is the error code
- *		lr corrupted
+ *		ip, lr corrupted
  *
  * No other registers must be altered.  (see include/asm-arm/uaccess.h
  * for specific ASM register usage).
@@ -30,11 +30,11 @@
 
 	.global	__put_user_1
 __put_user_1:
-	bic	r2, sp, #0x1f00
-	bic	r2, r2, #0x00ff
-	ldr	r2, [r2, #TSK_ADDR_LIMIT]
-	sub	r2, r2, #1
-	cmp	r0, r2
+	bic	ip, sp, #0x1f00
+	bic	ip, ip, #0x00ff
+	ldr	ip, [ip, #TSK_ADDR_LIMIT]
+	sub	ip, ip, #1
+	cmp	r0, ip
 1:	strlsbt	r1, [r0]
 	movls	r0, #0
 	movls	pc, lr
@@ -42,20 +42,20 @@
 
 	.global	__put_user_2
 __put_user_2:
-	bic	r2, sp, #0x1f00
-	bic	r2, r2, #0x00ff
-	ldr	r2, [r2, #TSK_ADDR_LIMIT]
-	sub	r2, r2, #2
-	cmp	r0, r2
+	bic	ip, sp, #0x1f00
+	bic	ip, ip, #0x00ff
+	ldr	ip, [ip, #TSK_ADDR_LIMIT]
+	sub	ip, ip, #2
+	cmp	r0, ip
 #ifndef __ARMEB__
 2:	strlsbt	r1, [r0], #1
 	movls	r1, r1, lsr #8
 3:	strlsbt	r1, [r0]
 #else
-2:	movls	r2, r1
+2:	movls	ip, r1
 	movls	r1, r1, lsr #8
 	strlsbt r1, [r0], #1
-	movls	r1, r2
+	movls	r1, ip
 3:	strlsbt	r1, [r0]
 #endif
 	movls	r0, #0
@@ -64,11 +64,11 @@
 
 	.global	__put_user_4
 __put_user_4:
-	bic	r2, sp, #0x1f00
-	bic	r2, r2, #0x00ff
-	ldr	r2, [r2, #TSK_ADDR_LIMIT]
-	sub	r2, r2, #4
-	cmp	r0, r2
+	bic	ip, sp, #0x1f00
+	bic	ip, ip, #0x00ff
+	ldr	ip, [ip, #TSK_ADDR_LIMIT]
+	sub	ip, ip, #4
+	cmp	r0, ip
 4:	strlst	r1, [r0]
 	movls	r0, #0
 	movls	pc, lr
--- linux-2.4.22/include/asm-arm/uaccess.h~gcc3-userfuncs	2004-09-08 19:36:03.000000000 -0500
+++ linux-2.4.22/include/asm-arm/uaccess.h	2004-09-08 20:03:34.000000000 -0500
@@ -86,7 +86,7 @@
 			__get_user_x(__r1, __p, __e, 1, "lr");		\
 	       		break;						\
 		case 2:							\
-			__get_user_x(__r1, __p, __e, 2, "r2", "lr");	\
+			__get_user_x(__r1, __p, __e, 2, "ip", "lr");	\
 			break;						\
 		case 4:							\
 	       		__get_user_x(__r1, __p, __e, 4, "lr");		\
@@ -122,13 +122,13 @@
 		register int __e asm("r0");				\
 		switch (sizeof(*(p))) {					\
 		case 1:							\
-			__put_user_x(__r1, __p, __e, 1, "r2", "lr");	\
+			__put_user_x(__r1, __p, __e, 1, "ip", "lr");	\
 			break;						\
 		case 2:							\
-			__put_user_x(__r1, __p, __e, 2, "r2", "lr");	\
+			__put_user_x(__r1, __p, __e, 2, "ip", "lr");	\
 			break;						\
 		case 4:							\
-			__put_user_x(__r1, __p, __e, 4, "r2", "lr");	\
+			__put_user_x(__r1, __p, __e, 4, "ip", "lr");	\
 			break;						\
 		case 8:							\
 			__put_user_x(__r1, __p, __e, 8, "ip", "lr");	\