diff options
Diffstat (limited to 'asm/head.S')
-rw-r--r-- | asm/head.S | 125 |
1 files changed, 0 insertions, 125 deletions
@@ -874,128 +874,3 @@ start_kernel_secondary: mtctr %r3 mfspr %r3,SPR_PIR bctr - - .global exc_primary_start -exc_primary_start: - mtspr SPR_HSPRG1,%r1 - mfspr %r1,SPR_CFAR -0: b . - .global exc_primary_end -exc_primary_end: - - .global exc_primary_patch_branch -exc_primary_patch_branch: - .long 0b - exc_primary_start - - .global exc_secondary_start -exc_secondary_start: - mtspr SPR_CFAR,%r1 - mfspr %r1,SPR_PIR -0: GET_STACK(%r1,%r1) - stdu %r1,-STACK_FRAMESIZE(%r1) - std %r3,STACK_GPR3(%r1) - mfspr %r3,SPR_HSPRG1 - std %r3,STACK_GPR1(%r1) - mfspr %r3,SPR_CFAR - std %r3,STACK_CFAR(%r1) -1: mfspr %r3,SPR_SRR0 - std %r3,STACK_SRR0(%r1) -2: mfspr %r3,SPR_SRR1 - std %r3,STACK_SRR1(%r1) - mflr %r3 - std %r3,STACK_LR(%r1) - LOAD_IMM32(%r3,exception_entry_common - __head); - addis %r3,%r3,SKIBOOT_BASE@h - mtlr %r3 -3: li %r3,0 - blrl /* XXX Use a BH=01 variant to avoid link stack problems */ - ld %r3,STACK_LR(%r1) - mtlr %r3 - ld %r3,STACK_SRR0(%r1) -4: mtspr SPR_SRR0,%r3 - ld %r3,STACK_SRR1(%r1) -5: mtspr SPR_SRR1,%r3 - ld %r3,STACK_GPR3(%r1) - ld %r1,STACK_GPR1(%r1) -6: rfid - .global exc_secondary_end -exc_secondary_end: - - .global exc_secondary_patch_stack -exc_secondary_patch_stack: - .long 0b - exc_secondary_start - .global exc_secondary_patch_mfsrr0 -exc_secondary_patch_mfsrr0: - .long 1b - exc_secondary_start - .global exc_secondary_patch_mfsrr1 -exc_secondary_patch_mfsrr1: - .long 2b - exc_secondary_start - .global exc_secondary_patch_type -exc_secondary_patch_type: - .long 3b - exc_secondary_start - .global exc_secondary_patch_mtsrr0 -exc_secondary_patch_mtsrr0: - .long 4b - exc_secondary_start - .global exc_secondary_patch_mtsrr1 -exc_secondary_patch_mtsrr1: - .long 5b - exc_secondary_start - .global exc_secondary_patch_rfid -exc_secondary_patch_rfid: - .long 6b - exc_secondary_start - - /* The rest of the exception entry code */ -exception_entry_common: - std %r3,STACK_TYPE(%r1) - - /* We save the exception return LR in the stack-locals area */ - mflr %r3 - std %r3,STACK_LOCALS(%r1) - - /* Save more stuff */ - std %r0,STACK_GPR0(%r1) - std %r2,STACK_GPR2(%r1) - std %r4,STACK_GPR4(%r1) - std %r5,STACK_GPR5(%r1) - std %r6,STACK_GPR6(%r1) - std %r7,STACK_GPR7(%r1) - std %r8,STACK_GPR8(%r1) - std %r9,STACK_GPR9(%r1) - std %r10,STACK_GPR10(%r1) - std %r11,STACK_GPR11(%r1) - std %r12,STACK_GPR12(%r1) - std %r13,STACK_GPR13(%r1) - mfcr %r3 - stw %r3,STACK_CR(%r1) - mfctr %r3 - std %r3,STACK_CTR(%r1) - - GET_CPU() - - LOAD_IMM64(%r2, SKIBOOT_BASE) - addis %r2,%r2,(__toc_start - __head)@ha - addi %r2,%r2,(__toc_start - __head)@l - - mr %r3,%r1 - bl exception_entry - - ld %r3,STACK_CTR(%r1) - lwz %r4,STACK_CR(%r1) - mtctr %r3 - mtcr %r4 - - ld %r0,STACK_GPR0(%r1) - ld %r2,STACK_GPR2(%r1) - ld %r4,STACK_GPR4(%r1) - ld %r5,STACK_GPR5(%r1) - ld %r6,STACK_GPR6(%r1) - ld %r7,STACK_GPR7(%r1) - ld %r8,STACK_GPR8(%r1) - ld %r9,STACK_GPR9(%r1) - ld %r10,STACK_GPR10(%r1) - ld %r11,STACK_GPR11(%r1) - ld %r12,STACK_GPR12(%r1) - ld %r13,STACK_GPR13(%r1) - - ld %r3,STACK_LOCALS(%r1) - mtlr %r3 - blr |