diff options
author | David Howells <dhowells@redhat.com> | 2008-11-12 15:35:40 +0000 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-11-12 10:41:17 -0800 |
commit | 852c15b7362cf34e0d7949abefbfeeb0845d93b4 (patch) | |
tree | 98dade6ff2f502d65c29f6e7df8bd4032c1578bf /arch | |
parent | 6d615c78fb92fbd80e52ba7acb2d4c4d503006c3 (diff) | |
download | linux-stable-852c15b7362cf34e0d7949abefbfeeb0845d93b4.tar.gz linux-stable-852c15b7362cf34e0d7949abefbfeeb0845d93b4.tar.bz2 linux-stable-852c15b7362cf34e0d7949abefbfeeb0845d93b4.zip |
MN10300: Fix misaligned index-register addressing handling
Fix misalignment handling for an address calculated from the sum of two
registers.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mn10300/mm/misalignment.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/mn10300/mm/misalignment.c b/arch/mn10300/mm/misalignment.c index 61e65ec47db8..a59836804bc6 100644 --- a/arch/mn10300/mm/misalignment.c +++ b/arch/mn10300/mm/misalignment.c @@ -570,11 +570,11 @@ static int misalignment_addr(unsigned long *registers, unsigned params, address += *postinc; break; case DM1: - postinc = ®isters[Dreg_index[opcode >> 2 & 0x0c]]; + postinc = ®isters[Dreg_index[opcode >> 2 & 0x03]]; address += *postinc; break; case DM2: - postinc = ®isters[Dreg_index[opcode >> 4 & 0x30]]; + postinc = ®isters[Dreg_index[opcode >> 4 & 0x03]]; address += *postinc; break; case AM0: @@ -582,11 +582,11 @@ static int misalignment_addr(unsigned long *registers, unsigned params, address += *postinc; break; case AM1: - postinc = ®isters[Areg_index[opcode >> 2 & 0x0c]]; + postinc = ®isters[Areg_index[opcode >> 2 & 0x03]]; address += *postinc; break; case AM2: - postinc = ®isters[Areg_index[opcode >> 4 & 0x30]]; + postinc = ®isters[Areg_index[opcode >> 4 & 0x03]]; address += *postinc; break; case RM0: |