aboutsummaryrefslogtreecommitdiffstats
path: root/os/ports
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-06-24 14:19:52 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2010-06-24 14:19:52 +0000
commit62f4b7f471a4b1037468d382f927c5061e5fa9ed (patch)
tree8eae286504b7c9433d7e5a552012ff7e6fe12e95 /os/ports
parent28437e3058e78509ac7f692b80cf8ffd04db1a9b (diff)
downloadChibiOS-62f4b7f471a4b1037468d382f927c5061e5fa9ed.tar.gz
ChibiOS-62f4b7f471a4b1037468d382f927c5061e5fa9ed.tar.bz2
ChibiOS-62f4b7f471a4b1037468d382f927c5061e5fa9ed.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@2036 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/ports')
-rw-r--r--os/ports/GCC/ARMCMx/chcore_v7m.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/os/ports/GCC/ARMCMx/chcore_v7m.c b/os/ports/GCC/ARMCMx/chcore_v7m.c
index 74b9ff43b..f546a11fa 100644
--- a/os/ports/GCC/ARMCMx/chcore_v7m.c
+++ b/os/ports/GCC/ARMCMx/chcore_v7m.c
@@ -27,6 +27,7 @@
#include "ch.h"
+#if !defined(CH_CURRP_REGISTER_CACHE) || defined(__DOXXYGEN__)
/**
* @brief Internal context stacking.
*/
@@ -40,6 +41,15 @@
#define POP_CONTEXT() { \
asm volatile ("pop {r4, r5, r6, r7, r8, r9, r10, r11, pc}"); \
}
+#else /* defined(CH_CURRP_REGISTER_CACHE) */
+#define PUSH_CONTEXT() { \
+ asm volatile ("push {r4, r5, r6, r8, r9, r10, r11, lr}"); \
+}
+
+#define POP_CONTEXT() { \
+ asm volatile ("pop {r4, r5, r6, r8, r9, r10, r11, pc}"); \
+}
+#endif /* defined(CH_CURRP_REGISTER_CACHE) */
#if !CH_OPTIMIZE_SPEED
void _port_lock(void) {