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

Reply via email to