Deleted Added
full compact
trap_subr64.S (274743) trap_subr64.S (275268)
1/* $FreeBSD: head/sys/powerpc/aim/trap_subr64.S 274743 2014-11-20 06:32:47Z jhibbits $ */
1/* $FreeBSD: head/sys/powerpc/aim/trap_subr64.S 275268 2014-11-29 20:54:33Z jhibbits $ */
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

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

794 */
795 .globl CNAME(dblow),CNAME(dbsize)
796CNAME(dblow):
797 mtsprg1 %r1 /* save SP */
798 mtsprg2 %r29 /* save r29 */
799 mfcr %r29 /* save CR in r29 */
800 mfsrr1 %r1
801 mtcr %r1
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

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

794 */
795 .globl CNAME(dblow),CNAME(dbsize)
796CNAME(dblow):
797 mtsprg1 %r1 /* save SP */
798 mtsprg2 %r29 /* save r29 */
799 mfcr %r29 /* save CR in r29 */
800 mfsrr1 %r1
801 mtcr %r1
802 bf 17,2f /* branch if privileged */
802 bf 17,1f /* branch if privileged */
803
803
8041:
805 /* Unprivileged case */
806 mtcr %r29 /* put the condition register back */
807 mfsprg2 %r29 /* ... and r29 */
808 mflr %r1 /* save LR */
809 mtsprg2 %r1 /* And then in SPRG2 */
810 li %r1, 0 /* How to get the vector from LR */
811
812 bla generictrap /* and we look like a generic trap */
804 /* Unprivileged case */
805 mtcr %r29 /* put the condition register back */
806 mfsprg2 %r29 /* ... and r29 */
807 mflr %r1 /* save LR */
808 mtsprg2 %r1 /* And then in SPRG2 */
809 li %r1, 0 /* How to get the vector from LR */
810
811 bla generictrap /* and we look like a generic trap */
8132:
814#ifdef KDTRACE_HOOKS
815 /* Privileged, so drop to KDB */
816 mfsrr0 %r1
817 mtsprg3 %r3
818 lwz %r1,0(%r1)
819 /* Check if it's a DTrace trap. */
820 li %r3,0x0808
821 addis %r3,%r3,0x7c81
822 cmplw %cr0,%r3,%r1
823 mfsprg3 %r3
824 beq %cr0,1b
825#endif
8121:
826 GET_CPUINFO(%r1)
827 std %r27,(PC_DBSAVE+CPUSAVE_R27)(%r1) /* free r27 */
828 std %r28,(PC_DBSAVE+CPUSAVE_R28)(%r1) /* free r28 */
829 mfsprg2 %r28 /* r29 holds cr... */
830 std %r28,(PC_DBSAVE+CPUSAVE_R29)(%r1) /* free r29 */
831 std %r30,(PC_DBSAVE+CPUSAVE_R30)(%r1) /* free r30 */
832 std %r31,(PC_DBSAVE+CPUSAVE_R31)(%r1) /* free r31 */
833 mflr %r28 /* save LR */
834 bla dbtrap
835CNAME(dbsize) = .-CNAME(dblow)
836#endif /* KDB */
813 GET_CPUINFO(%r1)
814 std %r27,(PC_DBSAVE+CPUSAVE_R27)(%r1) /* free r27 */
815 std %r28,(PC_DBSAVE+CPUSAVE_R28)(%r1) /* free r28 */
816 mfsprg2 %r28 /* r29 holds cr... */
817 std %r28,(PC_DBSAVE+CPUSAVE_R29)(%r1) /* free r29 */
818 std %r30,(PC_DBSAVE+CPUSAVE_R30)(%r1) /* free r30 */
819 std %r31,(PC_DBSAVE+CPUSAVE_R31)(%r1) /* free r31 */
820 mflr %r28 /* save LR */
821 bla dbtrap
822CNAME(dbsize) = .-CNAME(dblow)
823#endif /* KDB */