forked from Imagelibrary/rtems
powerpc: Add r2 to CPU context
The r2 may be used for thread-local storage.
This commit is contained in:
@@ -68,6 +68,7 @@ void _CPU_Context_Initialize(
|
||||
ppc_context *the_ppc_context;
|
||||
uint32_t msr_value;
|
||||
uint32_t sp;
|
||||
register uint32_t gpr2 __asm__("2");
|
||||
|
||||
sp = (uint32_t)stack_base + size - PPC_MINIMUM_STACK_FRAME_SIZE;
|
||||
|
||||
@@ -127,6 +128,7 @@ void _CPU_Context_Initialize(
|
||||
the_ppc_context->gpr1 = sp;
|
||||
the_ppc_context->msr = msr_value;
|
||||
the_ppc_context->lr = (uint32_t) entry_point;
|
||||
the_ppc_context->gpr2 = gpr2;
|
||||
|
||||
#ifdef __ALTIVEC__
|
||||
_CPU_Context_initialize_altivec( the_ppc_context );
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
* COPYRIGHT (c) 1989-1997.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* Copyright (c) 2011-2012 embedded brains GmbH.
|
||||
* Copyright (c) 2011-2013 embedded brains GmbH.
|
||||
*
|
||||
* The license and distribution terms for this file may in
|
||||
* the file LICENSE in this distribution or at
|
||||
@@ -323,6 +323,8 @@ PROC (_CPU_Context_switch):
|
||||
PPC_GPR_STORE r30, PPC_CONTEXT_OFFSET_GPR30(r3)
|
||||
PPC_GPR_STORE r31, PPC_CONTEXT_OFFSET_GPR31(r3)
|
||||
|
||||
stw r2, PPC_CONTEXT_OFFSET_GPR2(r3)
|
||||
|
||||
/* Restore context from r4 */
|
||||
restore_context:
|
||||
|
||||
@@ -363,6 +365,8 @@ restore_context:
|
||||
PPC_GPR_LOAD r30, PPC_CONTEXT_OFFSET_GPR30(r4)
|
||||
PPC_GPR_LOAD r31, PPC_CONTEXT_OFFSET_GPR31(r4)
|
||||
|
||||
lwz r2, PPC_CONTEXT_OFFSET_GPR2(r4)
|
||||
|
||||
mtcr r7
|
||||
mtlr r6
|
||||
mtmsr r5
|
||||
|
||||
Reference in New Issue
Block a user