changeset 414:79eaf7aa963c

ARM stub tweak
author msalter
date Tue, 12 Nov 2002 21:45:47 +0000
parents fa01fd7f52e2
children 4cbd7d39399a
files packages/hal/arm/arch/current/ChangeLog packages/hal/arm/arch/current/src/arm_stub.c
diffstat 2 files changed, 6 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/ChangeLog
+++ b/packages/hal/arm/arch/current/ChangeLog
@@ -1,3 +1,8 @@
+2002-11-12  Mark Salter  <msalter@redhat.com>
+
+	* src/arm_stub.c (target_ins): Account for PC prefetch when PC is
+	source register in data processing insns.
+
 2002-08-29  Mark Salter  <msalter@redhat.com>
 
 	* src/vectors.S: Avoid entering thumb mode in exception handlers.
--- a/packages/hal/arm/arch/current/src/arm_stub.c
+++ b/packages/hal/arm/arch/current/src/arm_stub.c
@@ -380,6 +380,7 @@ target_ins(unsigned long *pc, unsigned l
             // Destination register is PC
             if ((ins & 0x0FBF0000) != 0x010F0000) {
                 Rn = (unsigned long)get_register((ins & 0x000F0000) >> 16);
++		if ((ins & 0x000F0000) == 0x000F0000) Rn += 8;  // PC prefetch!
                 if ((ins & 0x02000000) == 0) {
                     op2 = RmShifted(ins & 0x00000FFF);
                 } else {