Lines 107-112
Link Here
|
107 |
powerpc_sync(); |
107 |
powerpc_sync(); |
108 |
} |
108 |
} |
109 |
|
109 |
|
|
|
110 |
#ifdef __powerpc64__ |
111 |
extern void hack_into_slb_if_needed(void* vap); // HACK!!! |
112 |
#endif |
113 |
|
110 |
uintptr_t |
114 |
uintptr_t |
111 |
cpudep_ap_bootstrap(void) |
115 |
cpudep_ap_bootstrap(void) |
112 |
{ |
116 |
{ |
Lines 116-127
Link Here
|
116 |
mtmsr(msr); |
120 |
mtmsr(msr); |
117 |
|
121 |
|
118 |
pcpup->pc_curthread = pcpup->pc_idlethread; |
122 |
pcpup->pc_curthread = pcpup->pc_idlethread; |
|
|
123 |
|
119 |
#ifdef __powerpc64__ |
124 |
#ifdef __powerpc64__ |
120 |
__asm __volatile("mr 13,%0" :: "r"(pcpup->pc_curthread)); |
125 |
__asm __volatile("mr 13,%0" :: "r"(pcpup->pc_curthread)); |
121 |
#else |
126 |
#else |
122 |
__asm __volatile("mr 2,%0" :: "r"(pcpup->pc_curthread)); |
127 |
__asm __volatile("mr 2,%0" :: "r"(pcpup->pc_curthread)); |
123 |
#endif |
128 |
#endif |
|
|
129 |
|
124 |
pcpup->pc_curpcb = pcpup->pc_curthread->td_pcb; |
130 |
pcpup->pc_curpcb = pcpup->pc_curthread->td_pcb; |
|
|
131 |
|
132 |
#ifdef __powerpc64__ |
133 |
hack_into_slb_if_needed(pcpup->pc_curpcb); // HACK!!! |
134 |
#endif |
135 |
|
125 |
sp = pcpup->pc_curpcb->pcb_sp; |
136 |
sp = pcpup->pc_curpcb->pcb_sp; |
126 |
|
137 |
|
127 |
return (sp); |
138 |
return (sp); |