summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/psim/start/start.S
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2009-12-02 01:46:45 +0000
committerTill Straumann <strauman@slac.stanford.edu>2009-12-02 01:46:45 +0000
commit6ce625ef5dabbdeca782a9f4bcf02b702bc31739 (patch)
tree56e98640b80e63e92684239df2e2f3996ab8157e /c/src/lib/libbsp/powerpc/psim/start/start.S
parent2009-12-01 Till Straumann <strauman@slac.stanford.edu> (diff)
downloadrtems-6ce625ef5dabbdeca782a9f4bcf02b702bc31739.tar.bz2
2009-12-01 Till Straumann <strauman@slac.stanford.edu>
* Makefile.am, start/start.S: Added AltiVec support (only effective if user modifies psim.cfg: CPU_CFLAGS choosing a CPU architecture with AltiVec or directly adding -maltivec, -mabi=altivec). * start/start.S: removed '.file' statement which confused gdb.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/psim/start/start.S')
-rw-r--r--c/src/lib/libbsp/powerpc/psim/start/start.S17
1 files changed, 16 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/powerpc/psim/start/start.S b/c/src/lib/libbsp/powerpc/psim/start/start.S
index f28afd5cff..e8d42ccad0 100644
--- a/c/src/lib/libbsp/powerpc/psim/start/start.S
+++ b/c/src/lib/libbsp/powerpc/psim/start/start.S
@@ -22,7 +22,6 @@
#include <libcpu/io.h>
#include "ppc-asm.h"
- .file "startsim.s"
.section ".got2","aw"
.align 2
@@ -98,6 +97,22 @@ _start:
mr sp,r0 /* use user defined stack */
.Lnostack:
+#ifdef __ALTIVEC__
+ /* enable altivec; this requires the ALTIVEC user
+ * extension to be installed in the user extension
+ * slot 0!
+ */
+ mfmsr r0
+ oris r0, r0, (1<<(31-16-6))
+ mtmsr r0
+ /*
+ * set vscr and vrsave to known values
+ */
+ li r0, 0
+ mtvrsave r0
+ vxor 0,0,0
+ mtvscr 0
+#endif
/* set up initial stack frame */
addi sp,sp,-4 /* make sure we don't overwrite debug mem */
/* align */