summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-12-02 01:41:57 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-12-02 01:41:57 +0000
commitc7f8408d31287d45ee722bd941a8057c67e7f274 (patch)
treebb52c0e1184a42a570e0bab6f109763b0d25bbab /c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c
parent2009-12-01 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-c7f8408d31287d45ee722bd941a8057c67e7f274.tar.bz2
2009-12-01 Till Straumann <strauman@slac.stanford.edu>
* new-exceptions/cpu.c, new-exceptions/cpu_asm.S, new-exceptions/bspsupport/ppc_exc_asm_macros.h, new-exceptions/bspsupport/ppc_exc_initialize.c, new-exceptions/bspsupport/vectors.h: Added AltiVec support (save/restore volatile vregs across exceptions).
Diffstat (limited to '')
-rw-r--r--c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c
index 1d635c58e9..c9751ff586 100644
--- a/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c
+++ b/c/src/lib/libcpu/powerpc/new-exceptions/bspsupport/ppc_exc_initialize.c
@@ -135,6 +135,11 @@ rtems_status_code ppc_exc_initialize(
/* Use current MMU / RI settings when running C exception handlers */
ppc_exc_msr_bits = ppc_machine_state_register() & (MSR_DR | MSR_IR | MSR_RI);
+#ifdef __ALTIVEC__
+ /* Need vector unit enabled to save/restore altivec context */
+ ppc_exc_msr_bits |= MSR_VE;
+#endif
+
if (ppc_cpu_is(PPC_e200z6)) {
ppc_exc_initialize_e200();
} else if (ppc_cpu_is_bookE() == PPC_BOOKE_STD || ppc_cpu_is_bookE() == PPC_BOOKE_E500) {