summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm/arm_exc_abort.S
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/arm/arm_exc_abort.S')
-rw-r--r--cpukit/score/cpu/arm/arm_exc_abort.S10
1 files changed, 9 insertions, 1 deletions
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