Deleted Added
full compact
trap_subr64.S (275268) trap_subr64.S (277334)
1/* $FreeBSD: head/sys/powerpc/aim/trap_subr64.S 275268 2014-11-29 20:54:33Z jhibbits $ */
1/* $FreeBSD: head/sys/powerpc/aim/trap_subr64.S 277334 2015-01-18 18:32:43Z nwhitehorn $ */
2/* $NetBSD: trap_subr.S,v 1.20 2002/04/22 23:20:08 kleink Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996 Wolfgang Solfrank.
6 * Copyright (C) 1995, 1996 TooLs GmbH.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without

--- 295 unchanged lines hidden (view full) ---

305
306 ba cpu_reset
307CNAME(rstsize) = . - CNAME(rstcode)
308
309cpu_reset:
310 lis %r1,(tmpstk+TMPSTKSZ-48)@ha /* get new SP */
311 addi %r1,%r1,(tmpstk+TMPSTKSZ-48)@l
312
2/* $NetBSD: trap_subr.S,v 1.20 2002/04/22 23:20:08 kleink Exp $ */
3
4/*-
5 * Copyright (C) 1995, 1996 Wolfgang Solfrank.
6 * Copyright (C) 1995, 1996 TooLs GmbH.
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without

--- 295 unchanged lines hidden (view full) ---

305
306 ba cpu_reset
307CNAME(rstsize) = . - CNAME(rstcode)
308
309cpu_reset:
310 lis %r1,(tmpstk+TMPSTKSZ-48)@ha /* get new SP */
311 addi %r1,%r1,(tmpstk+TMPSTKSZ-48)@l
312
313 lis %r3,tocbase@ha
314 ld %r2,tocbase@l(%r3)
313 GET_TOCBASE(%r2)
315 bl CNAME(cpudep_ap_early_bootstrap) /* Set PCPU */
316 nop
317 lis %r3,1@l
318 bl CNAME(pmap_cpu_bootstrap) /* Turn on virtual memory */
319 nop
320 bl CNAME(cpudep_ap_bootstrap) /* Set up PCPU and stack */
321 nop
322 mr %r1,%r3 /* Use new stack */

--- 117 unchanged lines hidden (view full) ---

440 std %r2,(PC_SLBSAVE+120)(%r1)
441 mfctr %r2 /* save CTR */
442 std %r2,(PC_SLBSAVE+128)(%r1)
443
444 /* Call handler */
445 addi %r1,%r1,PC_SLBSTACK-48+1024
446 li %r2,~15
447 and %r1,%r1,%r2
314 bl CNAME(cpudep_ap_early_bootstrap) /* Set PCPU */
315 nop
316 lis %r3,1@l
317 bl CNAME(pmap_cpu_bootstrap) /* Turn on virtual memory */
318 nop
319 bl CNAME(cpudep_ap_bootstrap) /* Set up PCPU and stack */
320 nop
321 mr %r1,%r3 /* Use new stack */

--- 117 unchanged lines hidden (view full) ---

439 std %r2,(PC_SLBSAVE+120)(%r1)
440 mfctr %r2 /* save CTR */
441 std %r2,(PC_SLBSAVE+128)(%r1)
442
443 /* Call handler */
444 addi %r1,%r1,PC_SLBSTACK-48+1024
445 li %r2,~15
446 and %r1,%r1,%r2
448 lis %r3,tocbase@ha
449 ld %r2,tocbase@l(%r3)
447 GET_TOCBASE(%r2)
450 mflr %r3
451 andi. %r3,%r3,0xff80
452 mfdar %r4
453 mfsrr0 %r5
454 bl handle_kernel_slb_spill
455 nop
456
457 /* Save r28-31, restore r4-r12 */

--- 220 unchanged lines hidden (view full) ---

678
679/*
680 * Now the common trap catching code.
681 */
682k_trap:
683 FRAME_SETUP(PC_TEMPSAVE)
684/* Call C interrupt dispatcher: */
685trapagain:
448 mflr %r3
449 andi. %r3,%r3,0xff80
450 mfdar %r4
451 mfsrr0 %r5
452 bl handle_kernel_slb_spill
453 nop
454
455 /* Save r28-31, restore r4-r12 */

--- 220 unchanged lines hidden (view full) ---

676
677/*
678 * Now the common trap catching code.
679 */
680k_trap:
681 FRAME_SETUP(PC_TEMPSAVE)
682/* Call C interrupt dispatcher: */
683trapagain:
686 lis %r3,tocbase@ha
687 ld %r2,tocbase@l(%r3)
684 GET_TOCBASE(%r2)
688 addi %r3,%r1,48
689 bl CNAME(powerpc_interrupt)
690 nop
691
692 .globl CNAME(trapexit) /* backtrace code sentinel */
693CNAME(trapexit):
694/* Disable interrupts: */
695 mfmsr %r3

--- 10 unchanged lines hidden (view full) ---

706 lis %r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@h
707 ori %r5,%r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@l
708 and. %r4,%r4,%r5
709 beq 1f
710 mfmsr %r3 /* re-enable interrupts */
711 ori %r3,%r3,PSL_EE@l
712 mtmsr %r3
713 isync
685 addi %r3,%r1,48
686 bl CNAME(powerpc_interrupt)
687 nop
688
689 .globl CNAME(trapexit) /* backtrace code sentinel */
690CNAME(trapexit):
691/* Disable interrupts: */
692 mfmsr %r3

--- 10 unchanged lines hidden (view full) ---

703 lis %r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@h
704 ori %r5,%r5, (TDF_ASTPENDING|TDF_NEEDRESCHED)@l
705 and. %r4,%r4,%r5
706 beq 1f
707 mfmsr %r3 /* re-enable interrupts */
708 ori %r3,%r3,PSL_EE@l
709 mtmsr %r3
710 isync
714 lis %r3,tocbase@ha
715 ld %r2,tocbase@l(%r3)
711 GET_TOCBASE(%r2)
716 addi %r3,%r1,48
717 bl CNAME(ast)
718 nop
719 .globl CNAME(asttrapexit) /* backtrace code sentinel #2 */
720CNAME(asttrapexit):
721 b trapexit /* test ast ret value ? */
7221:
723 FRAME_LEAVE(PC_TEMPSAVE)

--- 31 unchanged lines hidden (view full) ---

755 andi. %r1,%r1,0xff00
756 mtsprg3 %r1
757
758 lis %r1,(tmpstk+TMPSTKSZ-48)@ha /* get new SP */
759 addi %r1,%r1,(tmpstk+TMPSTKSZ-48)@l
760
761 FRAME_SETUP(PC_DBSAVE)
762/* Call C trap code: */
712 addi %r3,%r1,48
713 bl CNAME(ast)
714 nop
715 .globl CNAME(asttrapexit) /* backtrace code sentinel #2 */
716CNAME(asttrapexit):
717 b trapexit /* test ast ret value ? */
7181:
719 FRAME_LEAVE(PC_TEMPSAVE)

--- 31 unchanged lines hidden (view full) ---

751 andi. %r1,%r1,0xff00
752 mtsprg3 %r1
753
754 lis %r1,(tmpstk+TMPSTKSZ-48)@ha /* get new SP */
755 addi %r1,%r1,(tmpstk+TMPSTKSZ-48)@l
756
757 FRAME_SETUP(PC_DBSAVE)
758/* Call C trap code: */
763 lis %r3,tocbase@ha
764 ld %r2,tocbase@l(%r3)
759 GET_TOCBASE(%r2)
765 addi %r3,%r1,48
766 bl CNAME(db_trap_glue)
767 nop
768 or. %r3,%r3,%r3
769 bne dbleave
770/* This wasn't for KDB, so switch to real trap: */
771 ld %r3,FRAME_EXC+48(%r1) /* save exception */
772 GET_CPUINFO(%r4)

--- 51 unchanged lines hidden ---
760 addi %r3,%r1,48
761 bl CNAME(db_trap_glue)
762 nop
763 or. %r3,%r3,%r3
764 bne dbleave
765/* This wasn't for KDB, so switch to real trap: */
766 ld %r3,FRAME_EXC+48(%r1) /* save exception */
767 GET_CPUINFO(%r4)

--- 51 unchanged lines hidden ---