From 599e719abe5a29783432cac0a3de1d57d09670f4 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Mon, 19 Jun 2006 20:14:05 +0000 Subject: filter exception vector for altivec and remap 0xf20 to assigned vector number alias. --- c/src/lib/libbsp/powerpc/ChangeLog | 5 +++++ c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) (limited to 'c') diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index d5966db056..bdda51e002 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,3 +1,8 @@ +2006-06-19 Till Straumann + + * shared/vectors/vectors.S: filter exception vector for + altivec and remap 0xf20 to assigned vector number alias. + 2006-06-19 Till Straumann * shared/startup/bspstart.c: fixed compiler warnings diff --git a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S index 751657a715..97d7c6eea6 100644 --- a/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S +++ b/c/src/lib/libbsp/powerpc/shared/vectors/vectors.S @@ -73,11 +73,19 @@ SYM (push_normalized_frame): * (256 * vector number) + few instructions */ mflr r3 + /* mask upper bits in case vectors are in the high area (psim) */ + rlwinm r3, r3, 32-5, 20, 31 + /* + * Remap altivec unavaliable (0xf20) to its vector number... + */ + cmplwi r3,(ASM_VEC_VECTOR_OFFSET>>5) + bne 1f + li r3,ASM_VEC_VECTOR<<3 +1: /* * r3 = r3 >> 8 = vector # - * mask upper bits in case vectors are in the high area (psim) */ - rlwinm r3,r3,32-8,20,31 + srwi r3,r3,3 stw r3, EXCEPTION_NUMBER_OFFSET(r1) stw r0, GPR0_OFFSET(r1) /* R2 should never change (EABI: pointer to .sdata2) - we -- cgit v1.2.3