RTEMS CPU Kit with SuperCore
4.11.3
|
Generally there are 2 types of context to save. More...
![]() |
Data Structures | |
struct | CPU_Per_CPU_control |
The CPU specific per-CPU control. More... | |
struct | Context_Control |
This defines the minimal set of integer and processor state registers that must be saved during a voluntary context switch from one thread to another. More... | |
struct | Context_Control_fp |
This defines the complete set of floating point registers that must be saved during any context switch from one thread to another. More... | |
Macros | |
#define | _CPU_Context_Get_SP(_context) (_context)->o6_sp |
This macro provides a CPU independent way for RTEMS to access the stack pointer in a context structure. More... | |
#define | G5_OFFSET 0x00 |
This macro defines an offset into the context for use in assembly. More... | |
#define | G7_OFFSET 0x04 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L0_OFFSET 0x08 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L1_OFFSET 0x0C |
This macro defines an offset into the context for use in assembly. More... | |
#define | L2_OFFSET 0x10 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L3_OFFSET 0x14 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L4_OFFSET 0x18 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L5_OFFSET 0x1C |
This macro defines an offset into the context for use in assembly. More... | |
#define | L6_OFFSET 0x20 |
This macro defines an offset into the context for use in assembly. More... | |
#define | L7_OFFSET 0x24 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I0_OFFSET 0x28 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I1_OFFSET 0x2C |
This macro defines an offset into the context for use in assembly. More... | |
#define | I2_OFFSET 0x30 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I3_OFFSET 0x34 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I4_OFFSET 0x38 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I5_OFFSET 0x3C |
This macro defines an offset into the context for use in assembly. More... | |
#define | I6_FP_OFFSET 0x40 |
This macro defines an offset into the context for use in assembly. More... | |
#define | I7_OFFSET 0x44 |
This macro defines an offset into the context for use in assembly. More... | |
#define | O6_SP_OFFSET 0x48 |
This macro defines an offset into the context for use in assembly. More... | |
#define | O7_OFFSET 0x4C |
This macro defines an offset into the context for use in assembly. More... | |
#define | PSR_OFFSET 0x50 |
This macro defines an offset into the context for use in assembly. More... | |
#define | ISR_DISPATCH_DISABLE_STACK_OFFSET 0x54 |
This macro defines an offset into the context for use in assembly. More... | |
#define | FO_F1_OFFSET 0x00 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F2_F3_OFFSET 0x08 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F4_F5_OFFSET 0x10 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F6_F7_OFFSET 0x18 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F8_F9_OFFSET 0x20 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F1O_F11_OFFSET 0x28 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F12_F13_OFFSET 0x30 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F14_F15_OFFSET 0x38 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F16_F17_OFFSET 0x40 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F18_F19_OFFSET 0x48 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F2O_F21_OFFSET 0x50 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F22_F23_OFFSET 0x58 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F24_F25_OFFSET 0x60 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F26_F27_OFFSET 0x68 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F28_F29_OFFSET 0x70 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | F3O_F31_OFFSET 0x78 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | FSR_OFFSET 0x80 |
This macro defines an offset into the FPU context for use in assembly. More... | |
#define | CONTEXT_CONTROL_FP_SIZE 0x84 |
This defines the size of the FPU context area for use in assembly. More... | |
Generally there are 2 types of context to save.
This means we have the following 3 context items:
On the SPARC, we are relatively conservative in that we save most of the CPU state in the context area. The ET (enable trap) bit and the CWP (current window pointer) fields of the PSR are considered system wide resources and are not maintained on a per-thread basis.
#define _CPU_Context_Get_SP | ( | _context | ) | (_context)->o6_sp |
This macro provides a CPU independent way for RTEMS to access the stack pointer in a context structure.
The actual name and offset is CPU architecture dependent.
#define CONTEXT_CONTROL_FP_SIZE 0x84 |
This defines the size of the FPU context area for use in assembly.
#define F12_F13_OFFSET 0x30 |
This macro defines an offset into the FPU context for use in assembly.
#define F14_F15_OFFSET 0x38 |
This macro defines an offset into the FPU context for use in assembly.
#define F16_F17_OFFSET 0x40 |
This macro defines an offset into the FPU context for use in assembly.
#define F18_F19_OFFSET 0x48 |
This macro defines an offset into the FPU context for use in assembly.
#define F1O_F11_OFFSET 0x28 |
This macro defines an offset into the FPU context for use in assembly.
#define F22_F23_OFFSET 0x58 |
This macro defines an offset into the FPU context for use in assembly.
#define F24_F25_OFFSET 0x60 |
This macro defines an offset into the FPU context for use in assembly.
#define F26_F27_OFFSET 0x68 |
This macro defines an offset into the FPU context for use in assembly.
#define F28_F29_OFFSET 0x70 |
This macro defines an offset into the FPU context for use in assembly.
#define F2_F3_OFFSET 0x08 |
This macro defines an offset into the FPU context for use in assembly.
#define F2O_F21_OFFSET 0x50 |
This macro defines an offset into the FPU context for use in assembly.
#define F3O_F31_OFFSET 0x78 |
This macro defines an offset into the FPU context for use in assembly.
#define F4_F5_OFFSET 0x10 |
This macro defines an offset into the FPU context for use in assembly.
#define F6_F7_OFFSET 0x18 |
This macro defines an offset into the FPU context for use in assembly.
#define F8_F9_OFFSET 0x20 |
This macro defines an offset into the FPU context for use in assembly.
#define FO_F1_OFFSET 0x00 |
This macro defines an offset into the FPU context for use in assembly.
#define FSR_OFFSET 0x80 |
This macro defines an offset into the FPU context for use in assembly.
#define G5_OFFSET 0x00 |
This macro defines an offset into the context for use in assembly.
#define G7_OFFSET 0x04 |
This macro defines an offset into the context for use in assembly.
#define I0_OFFSET 0x28 |
This macro defines an offset into the context for use in assembly.
#define I1_OFFSET 0x2C |
This macro defines an offset into the context for use in assembly.
#define I2_OFFSET 0x30 |
This macro defines an offset into the context for use in assembly.
#define I3_OFFSET 0x34 |
This macro defines an offset into the context for use in assembly.
#define I4_OFFSET 0x38 |
This macro defines an offset into the context for use in assembly.
#define I5_OFFSET 0x3C |
This macro defines an offset into the context for use in assembly.
#define I6_FP_OFFSET 0x40 |
This macro defines an offset into the context for use in assembly.
#define I7_OFFSET 0x44 |
This macro defines an offset into the context for use in assembly.
#define ISR_DISPATCH_DISABLE_STACK_OFFSET 0x54 |
This macro defines an offset into the context for use in assembly.
#define L0_OFFSET 0x08 |
This macro defines an offset into the context for use in assembly.
#define L1_OFFSET 0x0C |
This macro defines an offset into the context for use in assembly.
#define L2_OFFSET 0x10 |
This macro defines an offset into the context for use in assembly.
#define L3_OFFSET 0x14 |
This macro defines an offset into the context for use in assembly.
#define L4_OFFSET 0x18 |
This macro defines an offset into the context for use in assembly.
#define L5_OFFSET 0x1C |
This macro defines an offset into the context for use in assembly.
#define L6_OFFSET 0x20 |
This macro defines an offset into the context for use in assembly.
#define L7_OFFSET 0x24 |
This macro defines an offset into the context for use in assembly.
#define O6_SP_OFFSET 0x48 |
This macro defines an offset into the context for use in assembly.
#define O7_OFFSET 0x4C |
This macro defines an offset into the context for use in assembly.
#define PSR_OFFSET 0x50 |
This macro defines an offset into the context for use in assembly.