trap_subr64.S (256281) | trap_subr64.S (260670) |
---|---|
1/* $FreeBSD: stable/10/sys/powerpc/aim/trap_subr64.S 248457 2013-03-18 05:30:18Z jhibbits $ */ | 1/* $FreeBSD: stable/10/sys/powerpc/aim/trap_subr64.S 260670 2014-01-15 05:19:37Z 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 --- 773 unchanged lines hidden (view full) --- 783 */ 784 .globl CNAME(dblow),CNAME(dbsize) 785CNAME(dblow): 786 mtsprg1 %r1 /* save SP */ 787 mtsprg2 %r29 /* save r29 */ 788 mfcr %r29 /* save CR in r29 */ 789 mfsrr1 %r1 790 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 --- 773 unchanged lines hidden (view full) --- 783 */ 784 .globl CNAME(dblow),CNAME(dbsize) 785CNAME(dblow): 786 mtsprg1 %r1 /* save SP */ 787 mtsprg2 %r29 /* save r29 */ 788 mfcr %r29 /* save CR in r29 */ 789 mfsrr1 %r1 790 mtcr %r1 |
791 bf 17,1f /* branch if privileged */ | 791 bf 17,2f /* branch if privileged */ |
792 | 792 |
7931: |
|
793 /* Unprivileged case */ 794 mtcr %r29 /* put the condition register back */ 795 mfsprg2 %r29 /* ... and r29 */ 796 mflr %r1 /* save LR */ 797 mtsprg2 %r1 /* And then in SPRG2 */ 798 li %r1, 0 /* How to get the vector from LR */ 799 800 bla generictrap /* and we look like a generic trap */ | 794 /* Unprivileged case */ 795 mtcr %r29 /* put the condition register back */ 796 mfsprg2 %r29 /* ... and r29 */ 797 mflr %r1 /* save LR */ 798 mtsprg2 %r1 /* And then in SPRG2 */ 799 li %r1, 0 /* How to get the vector from LR */ 800 801 bla generictrap /* and we look like a generic trap */ |
8011: | 8022: 803#ifdef KDTRACE_HOOKS |
802 /* Privileged, so drop to KDB */ | 804 /* Privileged, so drop to KDB */ |
805 mfsrr0 %r1 806 mtsprg3 %r3 807 lwz %r1,0(%r1) 808 /* Check if it's a DTrace trap. */ 809 li %r3,0x0808 810 addis %r3,%r3,0x7c81 811 cmplw %cr0,%r3,%r1 812 mfsprg3 %r3 813 beq %cr0,1b 814#endif |
|
803 GET_CPUINFO(%r1) 804 std %r27,(PC_DBSAVE+CPUSAVE_R27)(%r1) /* free r27 */ 805 std %r28,(PC_DBSAVE+CPUSAVE_R28)(%r1) /* free r28 */ 806 mfsprg2 %r28 /* r29 holds cr... */ 807 std %r28,(PC_DBSAVE+CPUSAVE_R29)(%r1) /* free r29 */ 808 std %r30,(PC_DBSAVE+CPUSAVE_R30)(%r1) /* free r30 */ 809 std %r31,(PC_DBSAVE+CPUSAVE_R31)(%r1) /* free r31 */ 810 mflr %r28 /* save LR */ 811 bla dbtrap 812CNAME(dbsize) = .-CNAME(dblow) 813#endif /* KDB */ | 815 GET_CPUINFO(%r1) 816 std %r27,(PC_DBSAVE+CPUSAVE_R27)(%r1) /* free r27 */ 817 std %r28,(PC_DBSAVE+CPUSAVE_R28)(%r1) /* free r28 */ 818 mfsprg2 %r28 /* r29 holds cr... */ 819 std %r28,(PC_DBSAVE+CPUSAVE_R29)(%r1) /* free r29 */ 820 std %r30,(PC_DBSAVE+CPUSAVE_R30)(%r1) /* free r30 */ 821 std %r31,(PC_DBSAVE+CPUSAVE_R31)(%r1) /* free r31 */ 822 mflr %r28 /* save LR */ 823 bla dbtrap 824CNAME(dbsize) = .-CNAME(dblow) 825#endif /* KDB */ |