aboutsummaryrefslogtreecommitdiffstats
path: root/demos/LPC214x-GCC/chcore2.s
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-09-22 14:10:02 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2007-09-22 14:10:02 +0000
commitcfdef89c7180aa2846afb0a96371dba87ee6714c (patch)
tree9679e9566769cb1e8a03ba1c705dc07de12c7d25 /demos/LPC214x-GCC/chcore2.s
parentb389116a6f56a76d42ca0c2a7304491d9f4bbfb8 (diff)
downloadChibiOS-cfdef89c7180aa2846afb0a96371dba87ee6714c.tar.gz
ChibiOS-cfdef89c7180aa2846afb0a96371dba87ee6714c.tar.bz2
ChibiOS-cfdef89c7180aa2846afb0a96371dba87ee6714c.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@18 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'demos/LPC214x-GCC/chcore2.s')
-rw-r--r--demos/LPC214x-GCC/chcore2.s26
1 files changed, 23 insertions, 3 deletions
diff --git a/demos/LPC214x-GCC/chcore2.s b/demos/LPC214x-GCC/chcore2.s
index eec962655..f734eebba 100644
--- a/demos/LPC214x-GCC/chcore2.s
+++ b/demos/LPC214x-GCC/chcore2.s
@@ -55,21 +55,41 @@ DefIrqHandler:
FiqHandler:
b FiqHandler
+#ifdef THUMB_INTERWORK
+.globl chSysLock
+chSysLock:
+ msr CPSR_c, #0x9F
+ bx lr
+
+.globl chSysUnlock
+chSysUnlock:
+ msr CPSR_c, #0x1F
+ bx lr
+#endif
+
.globl chSysSwitchI
chSysSwitchI:
-#ifdef MK_CURRP_REGISTER_CACHE
+#ifdef CH_CURRP_REGISTER_CACHE
stmfd sp!, {r4, r5, r6, r8, r9, r10, r11, lr}
str sp, [r0, #0]
ldr sp, [r1, #0]
+#ifdef THUMB_INTERWORK
ldmfd sp!, {r4, r5, r6, r8, r9, r10, r11, lr}
- bx lr
+ bx lr
+#else
+ ldmfd sp!, {r4, r5, r6, r8, r9, r10, r11, pc}
+#endif
#else
stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
str sp, [r0, #0]
ldr sp, [r1, #0]
+#ifdef THUMB_INTERWORK
ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
- bx lr
+ bx lr
+#else
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}
#endif
+#endif /* CH_CURRP_REGISTER_CACHE */
/*
* System stack frame structure after a context switch in the