diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-02-25 19:32:16 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2012-02-25 19:32:16 +0000 |
commit | 8adf9f884d6add4e42e733e5a966855da0ff8f7c (patch) | |
tree | 1e8d368264b8934379ede246b662f8d0c0aa488a /nuttx/arch/arm/src/armv7-m/up_svcall.c | |
parent | 43695c398502fed0d12eb96b96f6fa5fb5c38ecc (diff) | |
download | px4-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.c | 3 |
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; |