From a73dc5d0edf63dbd8d535b5c4b21ebcc38bcc528 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 23 Nov 2010 16:06:49 +0000 Subject: 2010-11-23 Gedare Bloom PR 1719/cpukit * arm_exc_abort.S: Avoid "bx" instruction to support ARMv4 and below. --- cpukit/score/cpu/arm/ChangeLog | 5 +++++ cpukit/score/cpu/arm/arm_exc_abort.S | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'cpukit/score') diff --git a/cpukit/score/cpu/arm/ChangeLog b/cpukit/score/cpu/arm/ChangeLog index e7c347f590..0b85cb4fc9 100644 --- a/cpukit/score/cpu/arm/ChangeLog +++ b/cpukit/score/cpu/arm/ChangeLog @@ -1,3 +1,8 @@ +2010-11-23 Gedare Bloom + + PR 1719/cpukit + * arm_exc_abort.S: Avoid "bx" instruction to support ARMv4 and below. + 2010-05-10 Joel Sherrill * rtems/score/arm.h: Make it a warning not error that the FPU multilib diff --git a/cpukit/score/cpu/arm/arm_exc_abort.S b/cpukit/score/cpu/arm/arm_exc_abort.S index 704d713f2c..cd2491fb14 100644 --- a/cpukit/score/cpu/arm/arm_exc_abort.S +++ b/cpukit/score/cpu/arm/arm_exc_abort.S @@ -51,7 +51,11 @@ prefetch_abort_handler: arm_exc_data_abort_set_handler: ldr r1, =data_abort_handler str r0, [r1] +#ifdef __thumb__ bx lr +#else + mov pc, lr +#endif #ifdef __thumb__ .thumb_func @@ -60,7 +64,11 @@ arm_exc_data_abort_set_handler: arm_exc_prefetch_abort_set_handler: ldr r1, =prefetch_abort_handler str r0, [r1] +#ifdef __thumb__ bx lr +#else + mov pc, lr +#endif .arm @@ -103,7 +111,7 @@ save_more_context: moveq r0, #0xaa #ifndef __thumb__ mov lr, pc - bx r2 + mov pc, r2 #else /* __thumb__ */ SWITCH_FROM_ARM_TO_THUMB r1 bl call_handler -- cgit v1.2.3