diff options
Diffstat (limited to 'arch/powerpc/kernel/misc_32.S')
-rw-r--r-- | arch/powerpc/kernel/misc_32.S | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 9d2c56621f1e..89aaaa6f3561 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -32,6 +32,31 @@ | |||
32 | 32 | ||
33 | .text | 33 | .text |
34 | 34 | ||
35 | #ifdef CONFIG_IRQSTACKS | ||
36 | _GLOBAL(call_do_softirq) | ||
37 | mflr r0 | ||
38 | stw r0,4(r1) | ||
39 | stwu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r3) | ||
40 | mr r1,r3 | ||
41 | bl __do_softirq | ||
42 | lwz r1,0(r1) | ||
43 | lwz r0,4(r1) | ||
44 | mtlr r0 | ||
45 | blr | ||
46 | |||
47 | _GLOBAL(call_handle_irq) | ||
48 | mflr r0 | ||
49 | stw r0,4(r1) | ||
50 | mtctr r6 | ||
51 | stwu r1,THREAD_SIZE-STACK_FRAME_OVERHEAD(r5) | ||
52 | mr r1,r5 | ||
53 | bctrl | ||
54 | lwz r1,0(r1) | ||
55 | lwz r0,4(r1) | ||
56 | mtlr r0 | ||
57 | blr | ||
58 | #endif /* CONFIG_IRQSTACKS */ | ||
59 | |||
35 | /* | 60 | /* |
36 | * This returns the high 64 bits of the product of two 64-bit numbers. | 61 | * This returns the high 64 bits of the product of two 64-bit numbers. |
37 | */ | 62 | */ |
@@ -152,7 +177,7 @@ _GLOBAL(low_choose_750fx_pll) | |||
152 | mtspr SPRN_HID1,r4 | 177 | mtspr SPRN_HID1,r4 |
153 | 178 | ||
154 | /* Store new HID1 image */ | 179 | /* Store new HID1 image */ |
155 | rlwinm r6,r1,0,0,18 | 180 | rlwinm r6,r1,0,0,(31-THREAD_SHIFT) |
156 | lwz r6,TI_CPU(r6) | 181 | lwz r6,TI_CPU(r6) |
157 | slwi r6,r6,2 | 182 | slwi r6,r6,2 |
158 | addis r6,r6,nap_save_hid1@ha | 183 | addis r6,r6,nap_save_hid1@ha |
@@ -281,7 +306,7 @@ _GLOBAL(_tlbia) | |||
281 | #endif /* CONFIG_SMP */ | 306 | #endif /* CONFIG_SMP */ |
282 | #else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */ | 307 | #else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */ |
283 | #if defined(CONFIG_SMP) | 308 | #if defined(CONFIG_SMP) |
284 | rlwinm r8,r1,0,0,18 | 309 | rlwinm r8,r1,0,0,(31-THREAD_SHIFT) |
285 | lwz r8,TI_CPU(r8) | 310 | lwz r8,TI_CPU(r8) |
286 | oris r8,r8,10 | 311 | oris r8,r8,10 |
287 | mfmsr r10 | 312 | mfmsr r10 |
@@ -377,7 +402,7 @@ _GLOBAL(_tlbie) | |||
377 | #endif /* CONFIG_SMP */ | 402 | #endif /* CONFIG_SMP */ |
378 | #else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */ | 403 | #else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */ |
379 | #if defined(CONFIG_SMP) | 404 | #if defined(CONFIG_SMP) |
380 | rlwinm r8,r1,0,0,18 | 405 | rlwinm r8,r1,0,0,(31-THREAD_SHIFT) |
381 | lwz r8,TI_CPU(r8) | 406 | lwz r8,TI_CPU(r8) |
382 | oris r8,r8,11 | 407 | oris r8,r8,11 |
383 | mfmsr r10 | 408 | mfmsr r10 |