aboutsummaryrefslogtreecommitdiffstats
path: root/os/rt/ports/ARM/compilers
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-16 19:24:04 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2014-10-16 19:24:04 +0000
commit904ecb82fa145200731ee4f6a244c05da07f7ade (patch)
tree19d086f2e2ed57877ef1071a6e178cf5877283f0 /os/rt/ports/ARM/compilers
parent73a96c620a805c16d22a0e4a16def5498a3337f5 (diff)
downloadChibiOS-904ecb82fa145200731ee4f6a244c05da07f7ade.tar.gz
ChibiOS-904ecb82fa145200731ee4f6a244c05da07f7ade.tar.bz2
ChibiOS-904ecb82fa145200731ee4f6a244c05da07f7ade.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7407 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/rt/ports/ARM/compilers')
-rw-r--r--os/rt/ports/ARM/compilers/GCC/chcoreasm.s10
1 files changed, 8 insertions, 2 deletions
diff --git a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
index 751598084..f39b2dfed 100644
--- a/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
+++ b/os/rt/ports/ARM/compilers/GCC/chcoreasm.s
@@ -181,7 +181,7 @@ _irq_ret_arm:
bx r1
.code 16
ldr r1, =(_irq_ret_thumb+1) // ISR return point.
- mov lr,r1
+ mov lr, r1
bx r0 // Calling the ISR.
.balign 4
_irq_ret_thumb:
@@ -255,17 +255,23 @@ _port_thread_start:
bl _dbg_check_unlock
#endif
bl _port_unlock_thumb
+ mov r0, r5
+ bl _bxr4
+ bl chThdExit
+_zombies: b _zombies
+_bxr4: bx r4
+
#else /* !defined(THUMB_NO_INTERWORKING) */
#if CH_DBG_SYSTEM_STATE_CHECK
bl _dbg_check_unlock
#endif
msr CPSR_c, #MODE_SYS
-#endif /* !defined(THUMB_NO_INTERWORKING) */
mov r0, r5
mov lr, pc
bx r4
bl chThdExit
_zombies: b _zombies
+#endif /* !defined(THUMB_NO_INTERWORKING) */
#endif /* !defined(__DOXYGEN__) */