summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/armv7-m/up_svcall.c
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-25 19:32:16 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-25 19:32:16 +0000
commit8adf9f884d6add4e42e733e5a966855da0ff8f7c (patch)
tree1e8d368264b8934379ede246b662f8d0c0aa488a /nuttx/arch/arm/src/armv7-m/up_svcall.c
parent43695c398502fed0d12eb96b96f6fa5fb5c38ecc (diff)
downloadpx4-nuttx-8adf9f884d6add4e42e733e5a966855da0ff8f7c.tar.gz
px4-nuttx-8adf9f884d6add4e42e733e5a966855da0ff8f7c.tar.bz2
px4-nuttx-8adf9f884d6add4e42e733e5a966855da0ff8f7c.zip
Fix bugs in lazy FPU register saving
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4427 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/arm/src/armv7-m/up_svcall.c')
-rw-r--r--nuttx/arch/arm/src/armv7-m/up_svcall.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/armv7-m/up_svcall.c b/nuttx/arch/arm/src/armv7-m/up_svcall.c
index 949efb1af..5a4d64fe2 100644
--- a/nuttx/arch/arm/src/armv7-m/up_svcall.c
+++ b/nuttx/arch/arm/src/armv7-m/up_svcall.c
@@ -320,6 +320,9 @@ int up_svcall(int irq, FAR void *context)
{
DEBUGASSERT(regs[REG_R1] != 0 && regs[REG_R2] != 0);
memcpy((uint32_t*)regs[REG_R1], regs, XCPTCONTEXT_SIZE);
+#if defined(CONFIG_ARCH_FPU) && !defined(CONFIG_ARMV7M_CMNVECTOR)
+ up_savefpu((uint32_t*)regs[REG_R1]);
+#endif
current_regs = (uint32_t*)regs[REG_R2];
}
break;