diff options
author | jhibbits <jhibbits@FreeBSD.org> | 2017-05-20 05:12:32 +0000 |
---|---|---|
committer | jhibbits <jhibbits@FreeBSD.org> | 2017-05-20 05:12:32 +0000 |
commit | 78abf039aa297d9b0021f82c669f194c4bfc611e (patch) | |
tree | 79811f5b0629101641348734377be5eee7881ea6 /sys/powerpc | |
parent | f4f7900bc18788394c1004abc37d2fb303297e06 (diff) | |
download | FreeBSD-src-78abf039aa297d9b0021f82c669f194c4bfc611e.zip FreeBSD-src-78abf039aa297d9b0021f82c669f194c4bfc611e.tar.gz |
MFC r314370,r318130,r318167:
DTrace related fixes for PowerPC.
r314370:
Unbreak kernel breakpoints, broken for ~4 years now
r318130:
Fix the encoded instruction for FBT traps on powerpc
r318167:
Fix stack tracing in dtrace for powerpc
Diffstat (limited to 'sys/powerpc')
-rw-r--r-- | sys/powerpc/booke/trap_subr.S | 12 | ||||
-rw-r--r-- | sys/powerpc/include/trap.h | 2 |
2 files changed, 3 insertions, 11 deletions
diff --git a/sys/powerpc/booke/trap_subr.S b/sys/powerpc/booke/trap_subr.S index 8737dba..ebaa656 100644 --- a/sys/powerpc/booke/trap_subr.S +++ b/sys/powerpc/booke/trap_subr.S @@ -803,12 +803,12 @@ INTERRUPT(int_debug) lwz %r4,0(%r5) /* interrupt_vector_base in r4 */ add %r4,%r4,%r5 cmplw cr0, %r3, %r4 - blt 1f + blt trap_common lwz %r4,4(%r5) /* interrupt_vector_top in r4 */ add %r4,%r4,%r5 addi %r4,%r4,4 cmplw cr0, %r3, %r4 - bge 1f + bge trap_common /* Disable single-stepping for the interrupt handlers. */ lwz %r3, FRAME_SRR1+8(%r1); rlwinm %r3, %r3, 0, 23, 21 @@ -820,14 +820,6 @@ INTERRUPT(int_debug) lwz %r4, (PC_BOOKE_CRITSAVE+CPUSAVE_SRR1+8)(%r4); mtspr SPR_SRR1, %r4 b 9f -1: - addi %r3, %r1, 8 - bl CNAME(trap) - /* - * Handle ASTs, needed for proper support of single-stepping. - * We actually need to return to the process with an rfi. - */ - b trapexit 9: FRAME_LEAVE(SPR_CSRR0, SPR_CSRR1) rfci diff --git a/sys/powerpc/include/trap.h b/sys/powerpc/include/trap.h index 81c40c9..07c70fa 100644 --- a/sys/powerpc/include/trap.h +++ b/sys/powerpc/include/trap.h @@ -125,7 +125,7 @@ #define EXC_PGM_TRAP (1UL << 17) /* DTrace trap opcode. */ -#define EXC_DTRACE 0x7c810808 +#define EXC_DTRACE 0x7ffff808 /* Magic pointer to store TOC base and other info for trap handlers on ppc64 */ #define TRAP_GENTRAP 0x1f0 |