summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2010-01-24 15:04:21 +0000
committerRafaël Carré <rafael.carre@gmail.com>2010-01-24 15:04:21 +0000
commitb2323be33b5a89cc244d4488b21263a359aced96 (patch)
tree112b2df776d9e4ca404237c176f56433a4136471
parentfd13e09c4f79f9a26c76c160b007513cacc8b818 (diff)
downloadrockbox-b2323be33b5a89cc244d4488b21263a359aced96.tar.gz
rockbox-b2323be33b5a89cc244d4488b21263a359aced96.tar.bz2
rockbox-b2323be33b5a89cc244d4488b21263a359aced96.zip
ARM: lr addresses the next instruction after the failing one in undefined instruction vector
Substract 4 before passing the argument to UIE so the correct address is displayed git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24321 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/crt0-pp.S2
-rw-r--r--firmware/target/arm/crt0.S2
-rw-r--r--firmware/target/arm/imx31/crt0.S2
-rw-r--r--firmware/target/arm/pnx0101/crt0-pnx0101.S2
-rw-r--r--firmware/target/arm/s3c2440/crt0.S2
-rw-r--r--firmware/target/arm/s5l8700/crt0.S2
-rw-r--r--firmware/target/arm/tcc77x/crt0.S2
-rw-r--r--firmware/target/arm/tcc780x/crt0.S2
-rw-r--r--firmware/target/arm/tms320dm320/crt0.S2
9 files changed, 9 insertions, 9 deletions
diff --git a/firmware/target/arm/crt0-pp.S b/firmware/target/arm/crt0-pp.S
index bd1fc035c9..9c996960cc 100644
--- a/firmware/target/arm/crt0-pp.S
+++ b/firmware/target/arm/crt0-pp.S
@@ -348,7 +348,7 @@ vectors:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/crt0.S b/firmware/target/arm/crt0.S
index 4bd01e4952..79cfdb3e1b 100644
--- a/firmware/target/arm/crt0.S
+++ b/firmware/target/arm/crt0.S
@@ -124,7 +124,7 @@ newstart:
* we're in. Second parameter is exception number, used for a string lookup
* in UIE. */
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/imx31/crt0.S b/firmware/target/arm/imx31/crt0.S
index 4afec85568..0841cb9276 100644
--- a/firmware/target/arm/imx31/crt0.S
+++ b/firmware/target/arm/imx31/crt0.S
@@ -341,7 +341,7 @@ remap_end:
* we're in. Second parameter is exception number, used for a string lookup
* in UIE. */
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/pnx0101/crt0-pnx0101.S b/firmware/target/arm/pnx0101/crt0-pnx0101.S
index d785d09a3b..c8c4232a3a 100644
--- a/firmware/target/arm/pnx0101/crt0-pnx0101.S
+++ b/firmware/target/arm/pnx0101/crt0-pnx0101.S
@@ -174,7 +174,7 @@ vectors:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/s3c2440/crt0.S b/firmware/target/arm/s3c2440/crt0.S
index 2188bc07da..086cc4a8bd 100644
--- a/firmware/target/arm/s3c2440/crt0.S
+++ b/firmware/target/arm/s3c2440/crt0.S
@@ -569,7 +569,7 @@ stackmunge:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/s5l8700/crt0.S b/firmware/target/arm/s5l8700/crt0.S
index 67bcc5a796..bb6d910e22 100644
--- a/firmware/target/arm/s5l8700/crt0.S
+++ b/firmware/target/arm/s5l8700/crt0.S
@@ -508,7 +508,7 @@ start_loc:
* we're in. Second parameter is exception number, used for a string lookup
* in UIE. */
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/tcc77x/crt0.S b/firmware/target/arm/tcc77x/crt0.S
index 2c5af3f21b..16b80920f4 100644
--- a/firmware/target/arm/tcc77x/crt0.S
+++ b/firmware/target/arm/tcc77x/crt0.S
@@ -218,7 +218,7 @@ vectors_end:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/tcc780x/crt0.S b/firmware/target/arm/tcc780x/crt0.S
index f02a204d7e..b1608915f1 100644
--- a/firmware/target/arm/tcc780x/crt0.S
+++ b/firmware/target/arm/tcc780x/crt0.S
@@ -285,7 +285,7 @@ vectors_end:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE
diff --git a/firmware/target/arm/tms320dm320/crt0.S b/firmware/target/arm/tms320dm320/crt0.S
index fe4a3fb970..e774152336 100644
--- a/firmware/target/arm/tms320dm320/crt0.S
+++ b/firmware/target/arm/tms320dm320/crt0.S
@@ -137,7 +137,7 @@ start_loc:
in UIE.
*/
undef_instr_handler:
- mov r0, lr
+ sub r0, lr, #4
mov r1, #0
b UIE