summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm/cpu_asm.S
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-08 09:30:31 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-05-10 12:10:14 +0200
commitcfd8d7a3d73a10ae7cdbbfe5eb39839c46a5c77e (patch)
tree5b694eb680b61129908a274b218d5f67fa0d34d6 /cpukit/score/cpu/arm/cpu_asm.S
parentarm: Simplify architecture selection (diff)
downloadrtems-cfd8d7a3d73a10ae7cdbbfe5eb39839c46a5c77e.tar.bz2
arm: Support VFP-D32 and Neon
Diffstat (limited to 'cpukit/score/cpu/arm/cpu_asm.S')
-rw-r--r--cpukit/score/cpu/arm/cpu_asm.S12
1 files changed, 11 insertions, 1 deletions
diff --git a/cpukit/score/cpu/arm/cpu_asm.S b/cpukit/score/cpu/arm/cpu_asm.S
index 79e6df882e..22dd7a34b5 100644
--- a/cpukit/score/cpu/arm/cpu_asm.S
+++ b/cpukit/score/cpu/arm/cpu_asm.S
@@ -30,7 +30,7 @@
#endif
#include <rtems/asm.h>
-#include <rtems/score/cpu_asm.h>
+#include <rtems/score/cpu.h>
#ifdef ARM_MULTILIB_ARCH_V4
@@ -57,9 +57,19 @@ DEFINE_FUNCTION_ARM(_CPU_Context_switch)
mrs r2, cpsr
stmia r0, {r2, r4, r5, r6, r7, r8, r9, r10, r11, r13, r14}
+#ifdef ARM_MULTILIB_VFP_D32
+ add r3, r0, #ARM_CONTEXT_CONTROL_D8_OFFSET
+ vstm r3, {d8-d15}
+#endif
/* Start restoring context */
_restore:
+
+#ifdef ARM_MULTILIB_VFP_D32
+ add r3, r1, #ARM_CONTEXT_CONTROL_D8_OFFSET
+ vldm r3, {d8-d15}
+#endif
+
ldmia r1, {r2, r4, r5, r6, r7, r8, r9, r10, r11, r13, r14}
msr cpsr, r2
#ifdef __thumb__