Title: [8142] trunk/arch/blackfin: task [#4437], use long call for kernel XIP
- Revision
- 8142
- Author
- bhsong
- Date
- 2010-01-11 22:20:37 -0500 (Mon, 11 Jan 2010)
Log Message
task [#4437], use long call for kernel XIP
Modified Paths
Diff
Modified: trunk/arch/blackfin/kernel/entry.S (8141 => 8142)
--- trunk/arch/blackfin/kernel/entry.S 2010-01-11 12:35:31 UTC (rev 8141)
+++ trunk/arch/blackfin/kernel/entry.S 2010-01-12 03:20:37 UTC (rev 8142)
@@ -44,7 +44,13 @@
sti r4;
#endif /* CONFIG_IPIPE */
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _schedule_tail;
+ p5.h = _schedule_tail;
+ call ( p5 );
+#else
call _schedule_tail;
+#endif
SP += 12;
r0 = [sp + PT_IPEND];
cc = bittst(r0,1);
@@ -79,7 +85,13 @@
r0 += 24;
[--sp] = rets;
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _bfin_vfork;
+ p5.h = _bfin_vfork;
+ call ( p5 );
+#else
call _bfin_vfork;
+#endif
SP += 12;
rets = [sp++];
rts;
@@ -90,7 +102,13 @@
r0 += 24;
[--sp] = rets;
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _bfin_clone;
+ p5.h = _bfin_clone;
+ call ( p5 );
+#else
call _bfin_clone;
+#endif
SP += 12;
rets = [sp++];
rts;
@@ -101,7 +119,13 @@
r0 += 24;
[--sp] = rets;
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _do_rt_sigreturn;
+ p5.h = _do_rt_sigreturn;
+ call ( p5 );
+#else
call _do_rt_sigreturn;
+#endif
SP += 12;
rets = [sp++];
rts;
Modified: trunk/arch/blackfin/mach-common/entry.S (8141 => 8142)
--- trunk/arch/blackfin/mach-common/entry.S 2010-01-11 12:35:31 UTC (rev 8141)
+++ trunk/arch/blackfin/mach-common/entry.S 2010-01-12 03:20:37 UTC (rev 8142)
@@ -405,7 +405,13 @@
r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _double_fault_c;
+ p5.h = _double_fault_c;
+ call ( p5 );
+#else
call _double_fault_c;
+#endif
SP += 12;
.L_double_fault_panic:
JUMP .L_double_fault_panic
@@ -447,7 +453,13 @@
r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p4.l = _trap_c;
+ p4.h = _trap_c;
+ call ( p4 );
+#else
call _trap_c;
+#endif
SP += 12;
/* If interrupts were off during the exception (IPEND[4] = 1), turn them off
@@ -551,7 +563,13 @@
p0 = sp;
sp += -16;
[sp + 12] = p0;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _do_execve;
+ p5.h = _do_execve;
+ call ( p5 );
+#else
call _do_execve;
+#endif
SP += 16;
cc = r0 == 0;
if ! cc jump .Lexecve_failed;
@@ -704,7 +722,13 @@
sp += 4;
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p4.l = _schedule;
+ p4.h = _schedule;
+ call ( p4 );
+#else
call _schedule;
+#endif
SP += 12;
jump .Lresume_userspace_1;
@@ -723,7 +747,13 @@
r0 = sp;
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _do_notify_resume;
+ p5.h = _do_notify_resume;
+ call ( p5 );
+#else
call _do_notify_resume;
+#endif
SP += 12;
.Lsyscall_really_exit:
@@ -736,7 +766,13 @@
* this symbol need not be global anyways, so ...
*/
_sys_trace:
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _syscall_trace;
+ p5.h = _syscall_trace;
+ call ( p5 );
+#else
call _syscall_trace;
+#endif
/* Execute the appropriate system call */
@@ -760,7 +796,13 @@
SP += 24;
[sp + PT_R0] = r0;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _syscall_trace;
+ p5.h = _syscall_trace;
+ call ( p5 );
+#else
call _syscall_trace;
+#endif
jump .Lresume_userspace;
ENDPROC(_sys_trace)
@@ -1007,7 +1049,14 @@
r0 = sp;
sp += -12;
+
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _finish_atomic_sections;
+ p5.h = _finish_atomic_sections;
+ call ( p5 );
+#else
call _finish_atomic_sections;
+#endif
sp += 12;
jump.s .Lresume_userspace;
ENDPROC(_schedule_and_signal_from_int)
Modified: trunk/arch/blackfin/mach-common/interrupt.S (8141 => 8142)
--- trunk/arch/blackfin/mach-common/interrupt.S 2010-01-11 12:35:31 UTC (rev 8141)
+++ trunk/arch/blackfin/mach-common/interrupt.S 2010-01-12 03:20:37 UTC (rev 8142)
@@ -168,7 +168,13 @@
r0 = sp; /* stack frame pt_regs pointer argument ==> r0 */
SP += -12;
+#if defined(CONFIG_ROMKERNEL)
+ p5.l = _trap_c;
+ p5.h = _trap_c;
+ call ( p5 );
+#else
call _trap_c;
+#endif
SP += 12;
#ifdef EBIU_ERRMST
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits