diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-06 22:50:51 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-06 22:50:51 +0000 |
commit | f28bbe5c6b4cb2f2a543df27079ef47ea1ea2f53 (patch) | |
tree | df7f622f994c09ffecb12c16fc14ba4cc02cd005 /c/src/lib/libbsp/arm/shared/abort | |
parent | 2007-11-03 Ray Xu <rayx.cn@gmail.com> (diff) | |
download | rtems-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')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/abort/simple_abort.c | 11 |
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" |