Line 120... |
Line 120... |
l.sw 6 * OR1K_GPRSIZE(sp), r6
|
l.sw 6 * OR1K_GPRSIZE(sp), r6
|
l.sw 7 * OR1K_GPRSIZE(sp), r7
|
l.sw 7 * OR1K_GPRSIZE(sp), r7
|
l.sw 8 * OR1K_GPRSIZE(sp), r8
|
l.sw 8 * OR1K_GPRSIZE(sp), r8
|
l.sw 9 * OR1K_GPRSIZE(sp), r9
|
l.sw 9 * OR1K_GPRSIZE(sp), r9
|
l.sw 11 * OR1K_GPRSIZE(sp), r11
|
l.sw 11 * OR1K_GPRSIZE(sp), r11
|
|
l.sw 12 * OR1K_GPRSIZE(sp), r12
|
l.sw 13 * OR1K_GPRSIZE(sp), r13
|
l.sw 13 * OR1K_GPRSIZE(sp), r13
|
l.sw 15 * OR1K_GPRSIZE(sp), r15
|
l.sw 15 * OR1K_GPRSIZE(sp), r15
|
l.sw 17 * OR1K_GPRSIZE(sp), r17
|
l.sw 17 * OR1K_GPRSIZE(sp), r17
|
l.sw 19 * OR1K_GPRSIZE(sp), r19
|
l.sw 19 * OR1K_GPRSIZE(sp), r19
|
l.sw 21 * OR1K_GPRSIZE(sp), r21
|
l.sw 21 * OR1K_GPRSIZE(sp), r21
|
Line 131... |
Line 132... |
l.sw 25 * OR1K_GPRSIZE(sp), r25
|
l.sw 25 * OR1K_GPRSIZE(sp), r25
|
l.sw 27 * OR1K_GPRSIZE(sp), r27
|
l.sw 27 * OR1K_GPRSIZE(sp), r27
|
l.sw 29 * OR1K_GPRSIZE(sp), r29
|
l.sw 29 * OR1K_GPRSIZE(sp), r29
|
l.sw 31 * OR1K_GPRSIZE(sp), r31
|
l.sw 31 * OR1K_GPRSIZE(sp), r31
|
|
|
#undef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
|
#ifndef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
#ifndef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
|
|
# R0 is not typically stored because it is always zero-valued,
|
# R0 is not typically stored because it is always zero-valued,
|
# but we store it here for consistency when examining registers
|
# but we store it here for consistency when examining registers
|
# in the debugger.
|
# in the debugger.
|
Line 143... |
Line 143... |
|
|
# Callee-saved regs don't need to be preserved across a call into
|
# Callee-saved regs don't need to be preserved across a call into
|
# an ISR, but we can do so to make debugging easier.
|
# an ISR, but we can do so to make debugging easier.
|
l.sw 2 * OR1K_GPRSIZE(sp), r2
|
l.sw 2 * OR1K_GPRSIZE(sp), r2
|
l.sw 10 * OR1K_GPRSIZE(sp), r10
|
l.sw 10 * OR1K_GPRSIZE(sp), r10
|
l.sw 12 * OR1K_GPRSIZE(sp), r12
|
|
l.sw 14 * OR1K_GPRSIZE(sp), r14
|
l.sw 14 * OR1K_GPRSIZE(sp), r14
|
l.sw 16 * OR1K_GPRSIZE(sp), r16
|
l.sw 16 * OR1K_GPRSIZE(sp), r16
|
l.sw 18 * OR1K_GPRSIZE(sp), r18
|
l.sw 18 * OR1K_GPRSIZE(sp), r18
|
l.sw 20 * OR1K_GPRSIZE(sp), r20
|
l.sw 20 * OR1K_GPRSIZE(sp), r20
|
l.sw 22 * OR1K_GPRSIZE(sp), r22
|
l.sw 22 * OR1K_GPRSIZE(sp), r22
|
l.sw 24 * OR1K_GPRSIZE(sp), r24
|
l.sw 24 * OR1K_GPRSIZE(sp), r24
|
l.sw 26 * OR1K_GPRSIZE(sp), r26
|
l.sw 26 * OR1K_GPRSIZE(sp), r26
|
l.sw 28 * OR1K_GPRSIZE(sp), r28
|
l.sw 28 * OR1K_GPRSIZE(sp), r28
|
l.sw 30 * OR1K_GPRSIZE(sp), r30
|
l.sw 30 * OR1K_GPRSIZE(sp), r30
|
|
|
|
#endif
|
# save MAC LO and HI regs
|
# save MAC LO and HI regs
|
l.mfspr r5,r0,SPR_MACLO
|
l.mfspr r5,r0,SPR_MACLO
|
l.sw OR1KREG_MACLO(sp),r5
|
l.sw OR1KREG_MACLO(sp),r5
|
l.mfspr r5,r0,SPR_MACHI
|
l.mfspr r5,r0,SPR_MACHI
|
l.sw OR1KREG_MACHI(sp),r5
|
l.sw OR1KREG_MACHI(sp),r5
|
#endif
|
|
|
|
# Save SP of interruptee in reg dump
|
# Save SP of interruptee in reg dump
|
l.addi r5,sp,SIZEOF_OR1KREGS+132
|
l.addi r5,sp,SIZEOF_OR1KREGS+132
|
l.sw 1 * OR1K_GPRSIZE(sp),r5
|
l.sw 1 * OR1K_GPRSIZE(sp),r5
|
|
|
Line 658... |
Line 657... |
l.lwz r6, 6 * OR1K_GPRSIZE(sp)
|
l.lwz r6, 6 * OR1K_GPRSIZE(sp)
|
l.lwz r7, 7 * OR1K_GPRSIZE(sp)
|
l.lwz r7, 7 * OR1K_GPRSIZE(sp)
|
l.lwz r8, 8 * OR1K_GPRSIZE(sp)
|
l.lwz r8, 8 * OR1K_GPRSIZE(sp)
|
l.lwz r9, 9 * OR1K_GPRSIZE(sp)
|
l.lwz r9, 9 * OR1K_GPRSIZE(sp)
|
l.lwz r11, 11 * OR1K_GPRSIZE(sp)
|
l.lwz r11, 11 * OR1K_GPRSIZE(sp)
|
|
l.lwz r12, 12 * OR1K_GPRSIZE(sp)
|
l.lwz r13, 13 * OR1K_GPRSIZE(sp)
|
l.lwz r13, 13 * OR1K_GPRSIZE(sp)
|
l.lwz r15, 15 * OR1K_GPRSIZE(sp)
|
l.lwz r15, 15 * OR1K_GPRSIZE(sp)
|
l.lwz r17, 17 * OR1K_GPRSIZE(sp)
|
l.lwz r17, 17 * OR1K_GPRSIZE(sp)
|
l.lwz r19, 19 * OR1K_GPRSIZE(sp)
|
l.lwz r19, 19 * OR1K_GPRSIZE(sp)
|
l.lwz r21, 21 * OR1K_GPRSIZE(sp)
|
l.lwz r21, 21 * OR1K_GPRSIZE(sp)
|
Line 669... |
Line 669... |
l.lwz r25, 25 * OR1K_GPRSIZE(sp)
|
l.lwz r25, 25 * OR1K_GPRSIZE(sp)
|
l.lwz r27, 27 * OR1K_GPRSIZE(sp)
|
l.lwz r27, 27 * OR1K_GPRSIZE(sp)
|
l.lwz r29, 29 * OR1K_GPRSIZE(sp)
|
l.lwz r29, 29 * OR1K_GPRSIZE(sp)
|
l.lwz r31, 31 * OR1K_GPRSIZE(sp)
|
l.lwz r31, 31 * OR1K_GPRSIZE(sp)
|
|
|
#undef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
|
#ifndef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
#ifndef CYGDBG_HAL_COMMON_INTERRUPTS_SAVE_MINIMUM_CONTEXT
|
# Callee-saved regs don't need to be preserved across a call into
|
# Callee-saved regs don't need to be preserved across a call into
|
# an ISR, but we can do so to make debugging easier.
|
# an ISR, but we can do so to make debugging easier.
|
|
|
l.lwz r2, 2 * OR1K_GPRSIZE(sp)
|
l.lwz r2, 2 * OR1K_GPRSIZE(sp)
|
l.lwz r10, 10 * OR1K_GPRSIZE(sp)
|
l.lwz r10, 10 * OR1K_GPRSIZE(sp)
|
l.lwz r12, 12 * OR1K_GPRSIZE(sp)
|
|
l.lwz r14, 14 * OR1K_GPRSIZE(sp)
|
l.lwz r14, 14 * OR1K_GPRSIZE(sp)
|
l.lwz r16, 16 * OR1K_GPRSIZE(sp)
|
l.lwz r16, 16 * OR1K_GPRSIZE(sp)
|
l.lwz r18, 18 * OR1K_GPRSIZE(sp)
|
l.lwz r18, 18 * OR1K_GPRSIZE(sp)
|
l.lwz r20, 20 * OR1K_GPRSIZE(sp)
|
l.lwz r20, 20 * OR1K_GPRSIZE(sp)
|
l.lwz r22, 22 * OR1K_GPRSIZE(sp)
|
l.lwz r22, 22 * OR1K_GPRSIZE(sp)
|
l.lwz r24, 24 * OR1K_GPRSIZE(sp)
|
l.lwz r24, 24 * OR1K_GPRSIZE(sp)
|
l.lwz r26, 26 * OR1K_GPRSIZE(sp)
|
l.lwz r26, 26 * OR1K_GPRSIZE(sp)
|
l.lwz r28, 28 * OR1K_GPRSIZE(sp)
|
l.lwz r28, 28 * OR1K_GPRSIZE(sp)
|
l.lwz r30, 30 * OR1K_GPRSIZE(sp)
|
l.lwz r30, 30 * OR1K_GPRSIZE(sp)
|
|
|
|
#endif
|
# Restore MAC LO and HI regs
|
# Restore MAC LO and HI regs
|
l.lwz r4, OR1KREG_MACLO(sp)
|
l.lwz r4, OR1KREG_MACLO(sp)
|
l.mtspr r0,r4,SPR_MACLO
|
l.mtspr r0,r4,SPR_MACLO
|
l.lwz r4, OR1KREG_MACHI(sp)
|
l.lwz r4, OR1KREG_MACHI(sp)
|
l.mtspr r0,r4,SPR_MACHI
|
l.mtspr r0,r4,SPR_MACHI
|
#endif
|
|
|
|
# Must disable interrupts, since they could clobber ESR and EPC regs
|
# Must disable interrupts, since they could clobber ESR and EPC regs
|
l.mfspr r3, r0, SPR_SR
|
l.mfspr r3, r0, SPR_SR
|
load32i r4,~(SPR_SR_TEE|SPR_SR_IEE)
|
load32i r4,~(SPR_SR_TEE|SPR_SR_IEE)
|
l.and r3, r4, r3
|
l.and r3, r4, r3
|