diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2010-06-24 14:19:52 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2010-06-24 14:19:52 +0000 |
commit | 62f4b7f471a4b1037468d382f927c5061e5fa9ed (patch) | |
tree | 8eae286504b7c9433d7e5a552012ff7e6fe12e95 /os/ports | |
parent | 28437e3058e78509ac7f692b80cf8ffd04db1a9b (diff) | |
download | ChibiOS-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.c | 10 |
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) {
|