From 6ce625ef5dabbdeca782a9f4bcf02b702bc31739 Mon Sep 17 00:00:00 2001 From: Till Straumann Date: Wed, 2 Dec 2009 01:46:45 +0000 Subject: 2009-12-01 Till Straumann * 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. --- c/src/lib/libbsp/powerpc/psim/ChangeLog | 10 ++++++++++ c/src/lib/libbsp/powerpc/psim/Makefile.am | 3 ++- c/src/lib/libbsp/powerpc/psim/start/start.S | 17 ++++++++++++++++- 3 files changed, 28 insertions(+), 2 deletions(-) (limited to 'c') 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 + + * 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 * 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 #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 */ -- cgit v1.2.3