<div dir="ltr">Hello, <div>The 'Context_Control' structure in score/.../arm/cpu.h has registers and attributes that need to be saved during context-switching.</div><div>Some of these registers/attributes are conditionally compiled depending upon the mode in which the processor is running. The registers are saved by 'ldr' instruction by providing proper offset form the context-control base address. These offsets are dependent on the mode for which the compilation is done.</div><div>For example, the 'is_executing' attribute has the following offset, depending on various modes.</div><div>''</div><div>#ifdef RTEMS_SMP<br>  #if defined(ARM_MULTILIB_VFP)<br>    #define ARM_CONTEXT_CONTROL_IS_EXECUTING_OFFSET 112<br>  #elif defined(ARM_MULTILIB_HAS_THREAD_ID_REGISTER)<br>    #define ARM_CONTEXT_CONTROL_IS_EXECUTING_OFFSET 48<br>  #else<br>    #define ARM_CONTEXT_CONTROL_IS_EXECUTING_OFFSET 44<br>  #endif<br>#endif ''<br></div><div><br></div><div>My question is, what are the modes for which different registers in the context control structure are compiled?</div><div>This is important to me as I have added a protected stack attribute to the structure and I need to define a similar offset for this depending upon the cpu mode.</div></div>