summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-06 22:50:51 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-06 22:50:51 +0000
commitf28bbe5c6b4cb2f2a543df27079ef47ea1ea2f53 (patch)
treedf7f622f994c09ffecb12c16fc14ba4cc02cd005 /c/src/lib/libbsp/arm/shared/abort/simple_abort.c
parent2007-11-03 Ray Xu <rayx.cn@gmail.com> (diff)
downloadrtems-f28bbe5c6b4cb2f2a543df27079ef47ea1ea2f53.tar.bz2
2007-11-03 Ray Xu <rayx.cn@gmail.com>
* shared/abort/simple_abort.c: Add veneer for ARM<->Thumb shared/irq/irq_asm.S: Add veneer for ARM<->Thumb
Diffstat (limited to 'c/src/lib/libbsp/arm/shared/abort/simple_abort.c')
-rw-r--r--c/src/lib/libbsp/arm/shared/abort/simple_abort.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
index 8fb6a3eec2..c292b1d3fb 100644
--- a/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
+++ b/c/src/lib/libbsp/arm/shared/abort/simple_abort.c
@@ -2,7 +2,7 @@
* ARM CPU Dependent Source
*
* COPYRIGHT (c) 2007 Ray Xu.
- * mailto: Rayx at gmail dot com
+ * mailto: Rayx.cn at gmail dot com
*
* COPYRIGHT (c) 2000 Canon Research Centre France SA.
* Emmanuel Raguet, mailto:raguet@crf.canon.fr
@@ -64,6 +64,15 @@ void _print_full_context(uint32_t spsr)
mode=_print_full_context_mode2txt[(spsr&0x1f)-0x10];
if(!mode) mode="unknown";
+#if defined(__thumb__)
+ asm volatile (" .code 16 \n" \
+ "adr %[tmp], arm_code \n" \
+ "bx %[tmp] \n" \
+ "nop \n" \
+ ".code 32 \n" \
+ "arm_code: \n" \
+ : [tmp]"=&r" (tmp) );
+#endif
asm volatile (" MRS %[cpsr], cpsr \n"
" ORR %[tmp], %[spsr], #0xc0 \n"
" MSR cpsr_c, %[tmp] \n"