From 7eb776a29a5c3ab45b910f77041ed48fd60853f9 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Thu, 5 Jan 2006 23:18:55 +0000 Subject: * 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). --- c/src/lib/libbsp/powerpc/ChangeLog | 5 +++++ c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'c/src/lib/libbsp') 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 + * 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 * 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 -- cgit v1.2.3