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 */ |