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 | |
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.
-rw-r--r-- | c/src/lib/libbsp/powerpc/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/vectors/vectors.S | 12 |
2 files changed, 15 insertions, 2 deletions
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,5 +1,10 @@ 2006-06-19 Till Straumann <strauman@slac.stanford.edu> + * shared/vectors/vectors.S: filter exception vector for + altivec and remap 0xf20 to assigned vector number alias. + +2006-06-19 Till Straumann <strauman@slac.stanford.edu> + * shared/startup/bspstart.c: fixed compiler warnings (bspIo.h inclusion, cast of number constants to pointers). Enable L1 cache on mvme2100. 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 |