|
Lines 89-99
ENTRY(cpu_throw)
Link Here
|
| 89 |
set_step_flag w5, x6 |
89 |
set_step_flag w5, x6 |
| 90 |
|
90 |
|
| 91 |
/* Restore the registers */ |
91 |
/* Restore the registers */ |
| 92 |
ldp x5, x6, [x4, #PCB_SP] |
92 |
ldr x5, [x4, #PCB_SP] |
|
|
93 |
ldp x6, x7, [x4, #PCB_TPIDR] |
| 93 |
mov sp, x5 |
94 |
mov sp, x5 |
| 94 |
msr tpidr_el0, x6 |
95 |
msr tpidr_el0, x6 |
| 95 |
ldr x6, [x4, #PCB_TPIDRRO] |
96 |
msr tpidrro_el0, x7 |
| 96 |
msr tpidrro_el0, x6 |
|
|
| 97 |
ldp x19, x20, [x4, #PCB_REGS + 19 * 8] |
97 |
ldp x19, x20, [x4, #PCB_REGS + 19 * 8] |
| 98 |
ldp x21, x22, [x4, #PCB_REGS + 21 * 8] |
98 |
ldp x21, x22, [x4, #PCB_REGS + 21 * 8] |
| 99 |
ldp x23, x24, [x4, #PCB_REGS + 23 * 8] |
99 |
ldp x23, x24, [x4, #PCB_REGS + 23 * 8] |
|
Lines 127-136
ENTRY(cpu_switch)
Link Here
|
| 127 |
stp x29, lr, [x4, #PCB_REGS + 29 * 8] |
127 |
stp x29, lr, [x4, #PCB_REGS + 29 * 8] |
| 128 |
/* And the old stack pointer */ |
128 |
/* And the old stack pointer */ |
| 129 |
mov x5, sp |
129 |
mov x5, sp |
| 130 |
mrs x6, tpidrro_el0 |
|
|
| 131 |
str x6, [x4, #PCB_TPIDRRO] |
| 132 |
mrs x6, tpidr_el0 |
130 |
mrs x6, tpidr_el0 |
| 133 |
stp x5, x6, [x4, #PCB_SP] |
131 |
mrs x7, tpidrro_el0 |
|
|
132 |
str x5, [x4, #PCB_SP] |
| 133 |
stp x6, x7, [x4, #PCB_TPIDR] |
| 134 |
|
134 |
|
| 135 |
/* If we were single stepping, disable it */ |
135 |
/* If we were single stepping, disable it */ |
| 136 |
ldr w5, [x4, #PCB_FLAGS] |
136 |
ldr w5, [x4, #PCB_FLAGS] |
|
Lines 178-188
ENTRY(cpu_switch)
Link Here
|
| 178 |
set_step_flag w5, x6 |
178 |
set_step_flag w5, x6 |
| 179 |
|
179 |
|
| 180 |
/* Restore the registers */ |
180 |
/* Restore the registers */ |
| 181 |
ldp x5, x6, [x4, #PCB_SP] |
181 |
ldr x5, [x4, #PCB_SP] |
|
|
182 |
ldp x6, x7, [x4, #PCB_TPIDR] |
| 182 |
mov sp, x5 |
183 |
mov sp, x5 |
| 183 |
msr tpidr_el0, x6 |
184 |
msr tpidr_el0, x6 |
| 184 |
ldr x6, [x4, #PCB_TPIDRRO] |
185 |
msr tpidrro_el0, x7 |
| 185 |
msr tpidrro_el0, x6 |
|
|
| 186 |
ldp x19, x20, [x4, #PCB_REGS + 19 * 8] |
186 |
ldp x19, x20, [x4, #PCB_REGS + 19 * 8] |
| 187 |
ldp x21, x22, [x4, #PCB_REGS + 21 * 8] |
187 |
ldp x21, x22, [x4, #PCB_REGS + 21 * 8] |
| 188 |
ldp x23, x24, [x4, #PCB_REGS + 23 * 8] |
188 |
ldp x23, x24, [x4, #PCB_REGS + 23 * 8] |
|
Lines 254-262
ENTRY(savectx)
Link Here
|
| 254 |
/* And the old stack pointer */ |
254 |
/* And the old stack pointer */ |
| 255 |
mov x5, sp |
255 |
mov x5, sp |
| 256 |
mrs x6, tpidrro_el0 |
256 |
mrs x6, tpidrro_el0 |
| 257 |
str x6, [x0, #PCB_TPIDRRO] |
257 |
mrs x7, tpidr_el0 |
| 258 |
mrs x6, tpidr_el0 |
258 |
str x5, [x0, #PCB_SP] |
| 259 |
stp x5, x6, [x0, #PCB_SP] |
259 |
stp x6, x7, [x0, #PCB_TPIDR] |
| 260 |
|
260 |
|
| 261 |
/* Store the VFP registers */ |
261 |
/* Store the VFP registers */ |
| 262 |
#ifdef VFP |
262 |
#ifdef VFP |