summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2009-04-19 06:30:00 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2009-04-19 06:30:00 +0000
commit5db25627cf7785d7c87f82547521401e37b96f11 (patch)
tree9718a4ac1bfd580cde4f164c54b18aec5617f051 /sys/powerpc/aim
parent7ee6b427aee5be9ef1e3f844d49ded50e6309bf2 (diff)
downloadFreeBSD-src-5db25627cf7785d7c87f82547521401e37b96f11.zip
FreeBSD-src-5db25627cf7785d7c87f82547521401e37b96f11.tar.gz
Fix a typo in the SRR1 comparison for program exceptions. While here,
replace magic numbers with constants to keep this from happening again. Without this fix, some programs would occasionally get SIGTRAP instead of SIGILL on an illegal instruction. This affected Altivec detection in pixman, and possibly other software. Reported by: Andreas Tobler MFC after: 1 week
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/trap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/powerpc/aim/trap.c b/sys/powerpc/aim/trap.c
index 4b54093..0ab58f3 100644
--- a/sys/powerpc/aim/trap.c
+++ b/sys/powerpc/aim/trap.c
@@ -208,9 +208,8 @@ trap(struct trapframe *frame)
break;
case EXC_PGM:
- /* XXX temporarily */
- /* XXX: Magic Number? */
- if (frame->srr1 & 0x0002000)
+ /* Identify the trap reason */
+ if (frame->srr1 & EXC_PGM_TRAP)
sig = SIGTRAP;
else
sig = SIGILL;
OpenPOWER on IntegriCloud