diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2006-06-19 20:14:05 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2006-06-19 20:14:05 +0000 |
commit | 599e719abe5a29783432cac0a3de1d57d09670f4 (patch) | |
tree | 811be9bd8f34114552586a1feb6f00f5262a91cc /c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | |
parent | fixed compiler warnings (bspIo.h inclusion, cast of number (diff) | |
download | rtems-599e719abe5a29783432cac0a3de1d57d09670f4.tar.bz2 |
filter exception vector for altivec and remap 0xf20 to
assigned vector number alias.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 12 |
1 files changed, 10 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 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 |