27,7 → 27,7 |
# |
|
#include <arch/asm/regname.h> |
#include <arch/mm/page.h> |
#include <arch/asm/spr.h> |
|
.section K_UNMAPPED_TEXT_START, "ax" |
|
84,76 → 84,8 |
.org 0x900 |
.global exc_decrementer |
exc_decrementer: |
mtspr sprg1, sp |
|
subis sp, sp, 0x8000 |
|
subi sp, sp, 144 |
stw r0, 0(sp) |
stw r2, 4(sp) |
stw r3, 8(sp) |
stw r4, 12(sp) |
stw r5, 16(sp) |
stw r6, 20(sp) |
stw r7, 24(sp) |
stw r8, 28(sp) |
stw r9, 32(sp) |
stw r10, 36(sp) |
stw r11, 40(sp) |
stw r12, 44(sp) |
stw r13, 48(sp) |
stw r14, 52(sp) |
stw r15, 56(sp) |
stw r16, 60(sp) |
stw r17, 64(sp) |
stw r18, 68(sp) |
stw r19, 72(sp) |
stw r20, 76(sp) |
stw r21, 80(sp) |
stw r22, 84(sp) |
stw r23, 88(sp) |
stw r24, 92(sp) |
stw r25, 96(sp) |
stw r26, 100(sp) |
stw r27, 104(sp) |
stw r28, 108(sp) |
stw r29, 112(sp) |
stw r30, 116(sp) |
stw r31, 120(sp) |
|
mfspr r3, srr0 |
stw r3, 124(sp) |
|
mfspr r3, srr1 |
stw r3, 128(sp) |
|
mflr r3 |
stw r3, 132(sp) |
|
mfcr r3 |
stw r3, 136(sp) |
|
mfctr r3 |
stw r3, 140(sp) |
|
mfxer r3 |
stw r3, 144(sp) |
|
lis r3, exc_dispatch@ha |
addi r3, r3, exc_dispatch@l |
mtspr srr0, r3 |
|
mfmsr r3 |
ori r3, r3, (msr_ir | msr_dr)@l |
mtspr srr1, r3 |
|
lis r3, iret@ha |
addi r3, r3, iret@l |
mtlr r3 |
|
addis sp, sp, 0x8000 |
li r3, 10 |
rfi |
b exc_decrementer |
|
.org 0xa00 |
.global exc_reserved0 |