summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S
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/powerpc/shared/vectors/vectors.S
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 '')
-rw-r--r--c/src/lib/libbsp/powerpc/shared/vectors/vectors.S5
1 files changed, 3 insertions, 2 deletions
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