Jerry James dd17361
--- ./callback/trampoline_r/cache-armel.c.orig	2009-04-27 10:44:13.000000000 -0600
Jerry James cbbc846
+++ ./callback/trampoline_r/cache-armel.c	2013-09-06 11:00:00.000000000 -0600
Jerry James cbbc846
@@ -12,8 +12,9 @@
Jerry James cbbc846
 
Jerry James cbbc846
 void __TR_clear_cache (char *first_addr, char *last_addr)
Jerry James cbbc846
 {
Jerry James cbbc846
-    register unsigned long _beg __asm ("a1") = first_addr;
Jerry James cbbc846
-    register unsigned long _end __asm ("a2") = last_addr;
Jerry James cbbc846
+    register unsigned long _beg __asm ("a1") = (unsigned long) first_addr;
Jerry James cbbc846
+    register unsigned long _end __asm ("a2") = (unsigned long) last_addr;
Jerry James dd17361
     register unsigned long _flg __asm ("a3") = 0; 
Jerry James dd17361
-    __asm __volatile__ ("swi 0x9f0002" : : "r" (_beg), "r" (_end), "r" (_flg));
Jerry James cbbc846
+    register unsigned long _sys __asm ("r7") = __ARM_NR_cacheflush;
Jerry James cbbc846
+    __asm __volatile__ ("swi 0x0" : "=r" (_beg) : "0" (_beg), "r" (_end), "r" (_flg), "r" (_sys));
Jerry James dd17361
 }
Jerry James dd17361
--- ./callback/trampoline_r/cache-armel.s.orig	2009-04-27 10:44:13.000000000 -0600
cc4a057
+++ ./callback/trampoline_r/cache-armel.s	2013-09-06 13:00:00.000000000 -0600
34a84f1
@@ -1,5 +1,5 @@
34a84f1
-	.cpu arm10tdmi
34a84f1
-	.fpu softvfp
34a84f1
+	.arch armv7-a
34a84f1
+	.fpu vfpv3-d16
34a84f1
 	.file	"cache-armel.c"
34a84f1
 	.text
34a84f1
 	.align	2
Jerry James cbbc846
@@ -9,10 +9,13 @@ __TR_clear_cache:
Jerry James cbbc846
 	@ args = 0, pretend = 0, frame = 0
Jerry James cbbc846
 	@ frame_needed = 0, uses_anonymous_args = 0
Jerry James cbbc846
 	@ link register save eliminated.
Jerry James cbbc846
-	@ lr needed for prologue
Jerry James cbbc846
+	str	r7, [sp, #-4]!
Jerry James dd17361
 	mov	r2, #0
Jerry James cbbc846
+	mov	r7, #2
Jerry James cbbc846
+	movt	r7, 15
Jerry James dd17361
 #APP
Jerry James dd17361
-	swi 0x9f0002
Jerry James cbbc846
+	swi 0x0
Jerry James cbbc846
+	ldr	r7, [sp], #4
Jerry James dd17361
 	bx	lr
Jerry James dd17361
 	.size	__TR_clear_cache, .-__TR_clear_cache
Jerry James cbbc846
-	.ident	"GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
Jerry James cbbc846
+	.ident	"GCC: (GNU) 4.8.1 20130829 (Red Hat 4.8.1-7)"
Jerry James dd17361
--- ./trampoline/cache-armel.c.orig	2009-04-27 10:44:14.000000000 -0600
Jerry James cbbc846
+++ ./trampoline/cache-armel.c	2013-09-06 11:00:00.000000000 -0600
Jerry James cbbc846
@@ -12,8 +12,9 @@
Jerry James cbbc846
 
Jerry James cbbc846
 void __TR_clear_cache (char *first_addr, char *last_addr)
Jerry James cbbc846
 {
Jerry James cbbc846
-    register unsigned long _beg __asm ("a1") = first_addr;
Jerry James cbbc846
-    register unsigned long _end __asm ("a2") = last_addr;
Jerry James cbbc846
+    register unsigned long _beg __asm ("a1") = (unsigned long) first_addr;
Jerry James cbbc846
+    register unsigned long _end __asm ("a2") = (unsigned long) last_addr;
Jerry James dd17361
     register unsigned long _flg __asm ("a3") = 0; 
Jerry James dd17361
-    __asm __volatile__ ("swi 0x9f0002" : : "r" (_beg), "r" (_end), "r" (_flg));
Jerry James cbbc846
+    register unsigned long _sys __asm ("r7") = __ARM_NR_cacheflush;
Jerry James cbbc846
+    __asm __volatile__ ("swi 0x0" : "=r" (_beg) : "0" (_beg), "r" (_end), "r" (_flg), "r" (_sys));
Jerry James dd17361
 }
Jerry James dd17361
--- ./trampoline/cache-armel.s.orig	2009-04-27 10:44:14.000000000 -0600
cc4a057
+++ ./trampoline/cache-armel.s	2013-09-06 13:00:00.000000000 -0600
34a84f1
@@ -1,24 +1,21 @@
34a84f1
-	.cpu arm10tdmi
34a84f1
-	.fpu softvfp
34a84f1
+	.arch armv7-a
34a84f1
+	.fpu vfpv3-d16
34a84f1
 	.file	"cache-armel.c"
34a84f1
 	.text
34a84f1
 	.align	2
Jerry James cbbc846
 	.global	__TR_clear_cache
Jerry James cbbc846
 	.type	__TR_clear_cache, %function
Jerry James cbbc846
 __TR_clear_cache:
Jerry James cbbc846
-	@ args = 0, pretend = 0, frame = 8
Jerry James cbbc846
+	@ args = 0, pretend = 0, frame = 0
Jerry James cbbc846
 	@ frame_needed = 0, uses_anonymous_args = 0
Jerry James cbbc846
 	@ link register save eliminated.
Jerry James cbbc846
-	sub	sp, sp, #8
Jerry James cbbc846
-	@ lr needed for prologue
Jerry James cbbc846
-	str	r0, [sp, #4]
Jerry James cbbc846
-	str	r1, [sp, #0]
Jerry James cbbc846
-	ldr	r0, [sp, #4]
Jerry James cbbc846
-	ldr	r1, [sp, #0]
Jerry James cbbc846
+	str	r7, [sp, #-4]!
Jerry James dd17361
 	mov	r2, #0
Jerry James cbbc846
+	mov	r7, #2
Jerry James cbbc846
+	movt	r7, 15
Jerry James dd17361
 #APP
Jerry James dd17361
-	swi 0x9f0002
Jerry James cbbc846
-	add	sp, sp, #8
Jerry James cbbc846
+	swi 0x0
Jerry James cbbc846
+	ldr	r7, [sp], #4
Jerry James dd17361
 	bx	lr
Jerry James dd17361
 	.size	__TR_clear_cache, .-__TR_clear_cache
Jerry James cbbc846
-	.ident	"GCC: (GNU) 3.4.4 (release) (CodeSourcery ARM 2005q3-2)"
Jerry James cbbc846
+	.ident	"GCC: (GNU) 4.8.1 20130829 (Red Hat 4.8.1-7)"