diff options
author | Doug Rabson <dfr@FreeBSD.org> | 1998-07-05 12:22:56 +0000 |
---|---|---|
committer | Doug Rabson <dfr@FreeBSD.org> | 1998-07-05 12:22:56 +0000 |
commit | 638ccebd002a99206683ace986522ae0e0156f4c (patch) | |
tree | 37f029513d83a746e0a9a31211f073c310ac8dae /sys | |
parent | 36ed9b0405cdcc16c37046ff7410d8f022eb3c0e (diff) | |
download | src-638ccebd002a99206683ace986522ae0e0156f4c.tar.gz src-638ccebd002a99206683ace986522ae0e0156f4c.zip |
Use byte/word access in badaddr if relevant.
Notes
Notes:
svn path=/head/; revision=37404
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/alpha/interrupt.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/alpha/alpha/interrupt.c b/sys/alpha/alpha/interrupt.c index e8870edafc11..42cf925e0127 100644 --- a/sys/alpha/alpha/interrupt.c +++ b/sys/alpha/alpha/interrupt.c @@ -1,4 +1,4 @@ -/* $Id$ */ +/* $Id: interrupt.c,v 1.2 1998/06/10 20:13:32 dfr Exp $ */ /* $NetBSD: interrupt.c,v 1.23 1998/02/24 07:38:01 thorpej Exp $ */ /* @@ -45,6 +45,7 @@ #include <machine/reg.h> #include <machine/frame.h> #include <machine/cpuconf.h> +#include <machine/bwx.h> #if 0 #ifdef EVCNT_COUNTERS @@ -214,11 +215,19 @@ badaddr_read(addr, size, rptr) alpha_mb(); switch (size) { case sizeof (u_int8_t): - rcpt = *(volatile u_int8_t *)addr; + if (alpha_implver() == ALPHA_IMPLVER_EV5 + && alpha_amask(ALPHA_AMASK_BWX) == 0) + rcpt = ldbu((vm_offset_t)addr); + else + rcpt = *(volatile u_int8_t *)addr; break; case sizeof (u_int16_t): - rcpt = *(volatile u_int16_t *)addr; + if (alpha_implver() == ALPHA_IMPLVER_EV5 + && alpha_amask(ALPHA_AMASK_BWX) == 0) + rcpt = ldwu((vm_offset_t)addr); + else + rcpt = *(volatile u_int16_t *)addr; break; case sizeof (u_int32_t): |