summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/arm
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-23 15:59:18 +0000
committerSebastian Huber <sebastian.huber@embedded-brains.de>2010-11-23 15:59:18 +0000
commitdb265136088a05a0d525f6bd365083a2931bf4cc (patch)
treeae90bc9f54c843e0c5f31d97493d271f8620b37c /cpukit/score/cpu/arm
parent2010-11-23 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff)
downloadrtems-db265136088a05a0d525f6bd365083a2931bf4cc.tar.bz2
2010-11-23 Gedare Bloom <giddyup44@yahoo.com>
PR 1719/cpukit * arm_exc_abort.S: Avoid "bx" instruction to support ARMv4 and below.
Diffstat (limited to 'cpukit/score/cpu/arm')
-rw-r--r--cpukit/score/cpu/arm/ChangeLog5
-rw-r--r--cpukit/score/cpu/arm/arm_exc_abort.S10
2 files changed, 14 insertions, 1 deletions
diff --git a/cpukit/score/cpu/arm/ChangeLog b/cpukit/score/cpu/arm/ChangeLog
index db0cd7f559..c787dcd2f7 100644
--- a/cpukit/score/cpu/arm/ChangeLog
+++ b/cpukit/score/cpu/arm/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-23 Gedare Bloom <giddyup44@yahoo.com>
+
+ PR 1719/cpukit
+ * arm_exc_abort.S: Avoid "bx" instruction to support ARMv4 and below.
+
2010-11-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
* rtems/score/cpu.h: Set alignment requirements according to AAPCS.
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