summaryrefslogtreecommitdiffstats
path: root/c
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
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')
-rw-r--r--c/src/lib/libbsp/powerpc/psim/ChangeLog10
-rw-r--r--c/src/lib/libbsp/powerpc/psim/Makefile.am3
-rw-r--r--c/src/lib/libbsp/powerpc/psim/start/start.S17
3 files changed, 28 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/psim/ChangeLog b/c/src/lib/libbsp/powerpc/psim/ChangeLog
index 13815036c7..6a9de2923d 100644
--- a/c/src/lib/libbsp/powerpc/psim/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/psim/ChangeLog
@@ -1,3 +1,13 @@
+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.
+
2009-11-15 Till Straumann <strauman@slac.stanford.edu>
* startup/bspstart.c: use normal get_ppc_cpu_type()
diff --git a/c/src/lib/libbsp/powerpc/psim/Makefile.am b/c/src/lib/libbsp/powerpc/psim/Makefile.am
index bfc9a64d34..13af27d89d 100644
--- a/c/src/lib/libbsp/powerpc/psim/Makefile.am
+++ b/c/src/lib/libbsp/powerpc/psim/Makefile.am
@@ -78,7 +78,8 @@ libbsp_a_LIBADD = ../../../libcpu/@RTEMS_CPU@/shared/cpuIdent.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/exc_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/@exceptions@/irq_bspsupport.rel \
../../../libcpu/@RTEMS_CPU@/mpc6xx/mmu.rel \
- ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/timer.rel \
+ ../../../libcpu/@RTEMS_CPU@/mpc6xx/altivec.rel
include $(srcdir)/preinstall.am
include $(top_srcdir)/../../../../automake/local.am
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 */