ARM: entry: abort-macro: simplify do_ldrd_abort
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 26 Jun 2011 12:51:44 +0000 (13:51 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 29 Jun 2011 09:06:37 +0000 (10:06 +0100)
We can test bits 27:25 and 20 of the instruction at the same time;
there's no need to separate out the check of bit 20.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/abort-macro.S

index 8d3b9f999d1e6b71e875619bf42daa1358a7f121..af97a10bc5edd061722f3bd4708e8b357f578d79 100644 (file)
@@ -30,12 +30,10 @@ not_thumb:
  *    [20] == 0
  */
        .macro  do_ldrd_abort, tmp, insn
  *    [20] == 0
  */
        .macro  do_ldrd_abort, tmp, insn
-       tst     \insn, #0x0e000000              @ [27:25] == 0
+       tst     \insn, #0x0e100000              @ [27:25,20] == 0
        bne     not_ldrd
        and     \tmp, \insn, #0x000000f0        @ [7:4] == 1101
        cmp     \tmp, #0x000000d0
        bne     not_ldrd
        and     \tmp, \insn, #0x000000f0        @ [7:4] == 1101
        cmp     \tmp, #0x000000d0
-       bne     not_ldrd
-       tst     \insn, #1 << 20                 @ [20] == 0
        moveq   pc, lr
 not_ldrd:
        .endm
        moveq   pc, lr
 not_ldrd:
        .endm