Rev 921 | Rev 979 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 921 | Rev 962 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | #include <arch/stack.h> |
30 | #include <arch/stack.h> |
31 | #include <arch/register.h> |
31 | #include <arch/register.h> |
32 | #include <arch/mm/page.h> |
32 | #include <arch/mm/page.h> |
33 | #include <align.h> |
33 | #include <align.h> |
34 | 34 | ||
35 | #define STACK_ITEMS 18 |
35 | #define STACK_ITEMS 19 |
36 | #define STACK_FRAME_SIZE ALIGN_UP((STACK_ITEMS*STACK_ITEM_SIZE) + STACK_SCRATCH_AREA_SIZE, STACK_ALIGNMENT) |
36 | #define STACK_FRAME_SIZE ALIGN_UP((STACK_ITEMS*STACK_ITEM_SIZE) + STACK_SCRATCH_AREA_SIZE, STACK_ALIGNMENT) |
37 | 37 | ||
38 | #if (STACK_ITEMS % 2 == 0) |
38 | #if (STACK_ITEMS % 2 == 0) |
39 | # define STACK_FRAME_BIAS 8 |
39 | # define STACK_FRAME_BIAS 8 |
40 | #else |
40 | #else |
Line 128... | Line 128... | ||
128 | /* |
128 | /* |
129 | * From now on, if this is break_instruction handler, p6 is true and p5 is false. |
129 | * From now on, if this is break_instruction handler, p6 is true and p5 is false. |
130 | * Otherwise p6 is false and p5 is true. |
130 | * Otherwise p6 is false and p5 is true. |
131 | * Note that p5 is a preserved predicate register and we make use of it. |
131 | * Note that p5 is a preserved predicate register and we make use of it. |
132 | */ |
132 | */ |
133 | 133 | ||
- | 134 | (p6) st8 [r31] = r36, -8 ;; /* save in4 */ |
|
134 | (p6) st8 [r31] = r35, -8 ;; /* save in3 */ |
135 | (p6) st8 [r31] = r35, -8 ;; /* save in3 */ |
135 | (p6) st8 [r31] = r34, -8 ;; /* save in2 */ |
136 | (p6) st8 [r31] = r34, -8 ;; /* save in2 */ |
136 | (p6) st8 [r31] = r33, -8 ;; /* save in1 */ |
137 | (p6) st8 [r31] = r33, -8 ;; /* save in1 */ |
137 | (p6) st8 [r31] = r32, -8 ;; /* save in0 */ |
138 | (p6) st8 [r31] = r32, -8 ;; /* save in0 */ |
138 | (p5) add r31 = -32, r31 ;; |
139 | (p5) add r31 = -40, r31 ;; |
139 | 140 | ||
140 | st8 [r31] = r30, -8 ;; /* save old stack pointer */ |
141 | st8 [r31] = r30, -8 ;; /* save old stack pointer */ |
141 | 142 | ||
142 | st8 [r31] = r29, -8 ;; /* save predicate registers */ |
143 | st8 [r31] = r29, -8 ;; /* save predicate registers */ |
143 | 144 |