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 |