summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Hellstrom <daniel@gaisler.com>2013-11-30 09:28:28 -0600
committerJoel Sherrill <joel.sherrill@oarcorp.com>2013-11-30 09:28:28 -0600
commit2d3eb2334928e3e075b5ab6a38a9ab7de03fc73f (patch)
treed1255184920a01cf0a7cbd226221aa780211c00b
parentpsxtmtests: Added in new psxtmbarrier04 test, release, preempt (diff)
downloadrtems-2d3eb2334928e3e075b5ab6a38a9ab7de03fc73f.tar.bz2
sparc/shared/irq_asm.S: Get pointer to self per-CPU control
_CPU_Context_switch_to_first_task_smp() branches to done_flushing which requires o3 to be initalized with "self per-CPU control", this adds initialization of o3. This problem only affects SMP, see commit f8ad6c6f7f8b591e were usage of o3 was intruduced.
-rw-r--r--c/src/lib/libbsp/sparc/shared/irq_asm.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/irq_asm.S b/c/src/lib/libbsp/sparc/shared/irq_asm.S
index ce276cd06a..d67ed6c383 100644
--- a/c/src/lib/libbsp/sparc/shared/irq_asm.S
+++ b/c/src/lib/libbsp/sparc/shared/irq_asm.S
@@ -265,6 +265,7 @@ SYM(_CPU_Context_switch_to_first_task_smp):
and %g1, SPARC_NUMBER_OF_REGISTER_WINDOWS - 1, %g3
nop
mov %o0, %o1 ! in the delay slot
+ GET_SELF_CPU_CONTROL %o3, %o4
ba,a done_flushing
#endif