summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2006-01-05 23:18:55 +0000
committerTill Straumann <strauman@slac.stanford.edu>2006-01-05 23:18:55 +0000
commit7eb776a29a5c3ab45b910f77041ed48fd60853f9 (patch)
tree4404a351b0392e603cf9c29a0741e18942eaccfc /c/src/lib/libbsp
parent * Makefile.am, vectors/vectors.S: use shared version of vectors.S. (diff)
downloadrtems-7eb776a29a5c3ab45b910f77041ed48fd60853f9.tar.bz2
* shared/vectors/vectors.S: mask high bits when calculating
the exception vector number to yield correct result even if the vectors reside in the upper area (0xfff00000; psim).
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog5
-rw-r--r--c/src/lib/libbsp/powerpc/shared/vectors/vectors.S5
2 files changed, 8 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index 9cfa146a43..9377bc62b5 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-05 Till Straumann <strauman@slac.stanford.edu>
+ * shared/vectors/vectors.S: mask high bits when calculating
+ the exception vector number to yield correct result even if
+ the vectors reside in the upper area (0xfff00000; psim).
+
2005-12-02 Till Straumann <strauman@slac.stanford.edu>
* shared/irq/irq_init.c, shared/openpic/openpic.h
shared/openpic/openpic.c: The 8240's EPIC has a 'serial'
diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S
index 96a4be5386..751657a715 100644
--- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S
+++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S
@@ -74,9 +74,10 @@ SYM (push_normalized_frame):
*/
mflr r3
/*
- * r3 = r3 >> 8 = vector
+ * r3 = r3 >> 8 = vector #
+ * mask upper bits in case vectors are in the high area (psim)
*/
- srwi r3,r3,8
+ rlwinm r3,r3,32-8,20,31
stw r3, EXCEPTION_NUMBER_OFFSET(r1)
stw r0, GPR0_OFFSET(r1)
/* R2 should never change (EABI: pointer to .sdata2) - we