summaryrefslogtreecommitdiff
path: root/recipes/linux/unslung-kernel/gcc3-userfuncs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/linux/unslung-kernel/gcc3-userfuncs.patch')
-rw-r--r--recipes/linux/unslung-kernel/gcc3-userfuncs.patch134
1 files changed, 134 insertions, 0 deletions
diff --git a/recipes/linux/unslung-kernel/gcc3-userfuncs.patch b/recipes/linux/unslung-kernel/gcc3-userfuncs.patch
new file mode 100644
index 0000000000..54726bf740
--- /dev/null
+++ b/recipes/linux/unslung-kernel/gcc3-userfuncs.patch
@@ -0,0 +1,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"); \