From 1f4e49505385a998c734d2349a201ba03d7aee65 Mon Sep 17 00:00:00 2001 From: Matthew Gretton-Dann Date: Mon, 7 Jun 2010 10:43:52 +0000 Subject: [PATCH] * gas/testsuite/gas/arm/thumb-eabi.d: Add case for divided syntax encoding of movs. * gas/testsuite/gas/arm/thumb.d: Likewise. * gas/testsuite/gas/arm/thumb.s: Likewise. * gas/testsuite/gas/arm/thumb2_it.d: Update for change in lsls/movs disassembly. * gas/testsuite/gas/arm/thumb2_it_auto.d: Liekwise. * gas/testsuite/gas/arm/thumb32.d: Likewise. * ld/testsuite/ld-arm/arm-call.d: Handle change in lsls/movs disassembly. * ld/testsuite/ld-arm/farcall-thumb-arm-short.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb-m.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d: Likewise. * ld/testsuite/ld-arm/farcall-thumb-thumb.d: Likewise. * ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d: Likewise. * ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d: Likewise. * ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d: Likewise. * ld/testsuite/ld-arm/thumb2-bl-bad.d: Likewise. * opcodes/arm-dis.c (thumb-opcodes): Add disassembly for movs. --- gas/testsuite/ChangeLog | 8 ++++++++ gas/testsuite/gas/arm/thumb-eabi.d | 8 ++++---- gas/testsuite/gas/arm/thumb.d | 8 ++++---- gas/testsuite/gas/arm/thumb.s | 3 ++- gas/testsuite/gas/arm/thumb2_it.d | 2 +- gas/testsuite/gas/arm/thumb2_it_auto.d | 2 +- gas/testsuite/gas/arm/thumb32.d | 4 ++-- ld/testsuite/ChangeLog | 15 +++++++++++++++ ld/testsuite/ld-arm/arm-call.d | 2 +- ld/testsuite/ld-arm/farcall-thumb-arm-short.d | 2 +- .../ld-arm/farcall-thumb-thumb-blx-pic-veneer.d | 2 +- ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d | 2 +- .../ld-arm/farcall-thumb-thumb-m-pic-veneer.d | 2 +- ld/testsuite/ld-arm/farcall-thumb-thumb-m.d | 2 +- .../ld-arm/farcall-thumb-thumb-pic-veneer.d | 2 +- ld/testsuite/ld-arm/farcall-thumb-thumb.d | 2 +- .../ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d | 2 +- ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d | 2 +- ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d | 2 +- ld/testsuite/ld-arm/thumb2-bl-bad.d | 2 +- opcodes/ChangeLog | 4 ++++ opcodes/arm-dis.c | 1 + 22 files changed, 54 insertions(+), 25 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b488019a200..7701f2a841d 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2010-06-07 Matthew Gretton-Dann + * gas/arm/thumb-eabi.d: Add case for divided syntax encoding of movs. + * gas/arm/thumb.d: Likewise. + * gas/arm/thumb.s: Likewise. + * gas/arm/thumb2_it.d: Update for change in lsls/movs disassembly. + * gas/arm/thumb2_it_auto.d: Liekwise. + * gas/arm/thumb32.d: Likewise. + 2010-05-28 Matthew Gretton-Dann * gas/arm/thumb2_it_auto.d: Update for change in movs encoding. diff --git a/gas/testsuite/gas/arm/thumb-eabi.d b/gas/testsuite/gas/arm/thumb-eabi.d index 188a2e2e431..9fd77d19674 100644 --- a/gas/testsuite/gas/arm/thumb-eabi.d +++ b/gas/testsuite/gas/arm/thumb-eabi.d @@ -10,9 +10,9 @@ Disassembly of section \.text: 0+000 <[^>]+> 00ca lsls r2, r1, #3 0+002 <[^>]+> 0fe3 lsrs r3, r4, #31 0+004 <[^>]+> 1147 asrs r7, r0, #5 -0+006 <[^>]+> 0011 lsls r1, r2, #0 -0+008 <[^>]+> 0023 lsls r3, r4, #0 -0+00a <[^>]+> 002c lsls r4, r5, #0 +0+006 <[^>]+> 0011 movs r1, r2 +0+008 <[^>]+> 0023 movs r3, r4 +0+00a <[^>]+> 002c movs r4, r5 0+00c <[^>]+> 083e lsrs r6, r7, #32 0+00e <[^>]+> 1008 asrs r0, r1, #32 0+010 <[^>]+> 18d1 adds r1, r2, r3 @@ -161,5 +161,5 @@ Disassembly of section \.text: 0+93e <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+944 <[^>]+>\) 0+940 <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+948 <[^>]+>\) 0+942 <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+948 <[^>]+>\) -0+944 <[^>]+> 46c0 nop ; \(mov r8, r8\) +0+944 <[^>]+> 1c08 adds r0, r1, #0 0+946 <[^>]+> 46c0 nop ; \(mov r8, r8\) diff --git a/gas/testsuite/gas/arm/thumb.d b/gas/testsuite/gas/arm/thumb.d index 7ee5582d600..6d88508a42a 100644 --- a/gas/testsuite/gas/arm/thumb.d +++ b/gas/testsuite/gas/arm/thumb.d @@ -11,9 +11,9 @@ Disassembly of section \.text: 0+000 <[^>]+> 00ca lsls r2, r1, #3 0+002 <[^>]+> 0fe3 lsrs r3, r4, #31 0+004 <[^>]+> 1147 asrs r7, r0, #5 -0+006 <[^>]+> 0011 lsls r1, r2, #0 -0+008 <[^>]+> 0023 lsls r3, r4, #0 -0+00a <[^>]+> 002c lsls r4, r5, #0 +0+006 <[^>]+> 0011 movs r1, r2 +0+008 <[^>]+> 0023 movs r3, r4 +0+00a <[^>]+> 002c movs r4, r5 0+00c <[^>]+> 083e lsrs r6, r7, #32 0+00e <[^>]+> 1008 asrs r0, r1, #32 0+010 <[^>]+> 18d1 adds r1, r2, r3 @@ -161,5 +161,5 @@ Disassembly of section \.text: 0+93e <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+944 <[^>]+>\) 0+940 <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+948 <[^>]+>\) 0+942 <[^>]+> 4801 ldr r0, \[pc, #4\] ; \(0+948 <[^>]+>\) -0+944 <[^>]+> 46c0 nop ; \(mov r8, r8\) +0+944 <[^>]+> 1c08 adds r0, r1, #0 0+946 <[^>]+> 46c0 nop ; \(mov r8, r8\) diff --git a/gas/testsuite/gas/arm/thumb.s b/gas/testsuite/gas/arm/thumb.s index d1e43394efa..a044bdfca58 100644 --- a/gas/testsuite/gas/arm/thumb.s +++ b/gas/testsuite/gas/arm/thumb.s @@ -198,5 +198,6 @@ forwardonly: ldr r0, [pc, #4] ldr r0, [pc, #4] .target: - nop @ pad for a.out +baz: + mov r0, r1 nop diff --git a/gas/testsuite/gas/arm/thumb2_it.d b/gas/testsuite/gas/arm/thumb2_it.d index b55bc6728ad..b02659fc37e 100644 --- a/gas/testsuite/gas/arm/thumb2_it.d +++ b/gas/testsuite/gas/arm/thumb2_it.d @@ -45,7 +45,7 @@ Disassembly of section .text: 0+062 <[^>]+> bf08 it eq 0+064 <[^>]+> 4640 moveq r0, r8 0+066 <[^>]+> 4608 mov r0, r1 -0+068 <[^>]+> 0008 lsls r0, r1, #0 +0+068 <[^>]+> 0008 movs r0, r1 0+06a <[^>]+> ea5f 0008 movs.w r0, r8 0+06e <[^>]+> bf01 itttt eq 0+070 <[^>]+> 43c8 mvneq r0, r1 diff --git a/gas/testsuite/gas/arm/thumb2_it_auto.d b/gas/testsuite/gas/arm/thumb2_it_auto.d index 91d82ca7f86..03ad87c2d1d 100644 --- a/gas/testsuite/gas/arm/thumb2_it_auto.d +++ b/gas/testsuite/gas/arm/thumb2_it_auto.d @@ -45,7 +45,7 @@ Disassembly of section .text: 0+062 <[^>]+> bf08 it eq 0+064 <[^>]+> 4640 moveq r0, r8 0+066 <[^>]+> 4608 mov r0, r1 -0+068 <[^>]+> 0008 lsls r0, r1, #0 +0+068 <[^>]+> 0008 movs r0, r1 0+06a <[^>]+> ea5f 0008 movs.w r0, r8 0+06e <[^>]+> bf01 itttt eq 0+070 <[^>]+> 43c8 mvneq r0, r1 diff --git a/gas/testsuite/gas/arm/thumb32.d b/gas/testsuite/gas/arm/thumb32.d index 31278d8d498..2499f738570 100644 --- a/gas/testsuite/gas/arm/thumb32.d +++ b/gas/testsuite/gas/arm/thumb32.d @@ -618,9 +618,9 @@ Disassembly of section .text: 0[0-9a-f]+ <[^>]+> eb10 0f09 cmn\.w r0, r9 0[0-9a-f]+ <[^>]+> f110 0f81 cmn\.w r0, #129 ; 0x81 0[0-9a-f]+ <[^>]+> f115 0f81 cmn\.w r5, #129 ; 0x81 -0[0-9a-f]+ <[^>]+> 0000 lsls r0, r0, #0 +0[0-9a-f]+ <[^>]+> 0000 movs r0, r0 0[0-9a-f]+ <[^>]+> 4600 mov r0, r0 -0[0-9a-f]+ <[^>]+> 0005 lsls r5, r0, #0 +0[0-9a-f]+ <[^>]+> 0005 movs r5, r0 0[0-9a-f]+ <[^>]+> 4628 mov r0, r5 0[0-9a-f]+ <[^>]+> ea4f 4065 mov\.w r0, r5, asr #17 0[0-9a-f]+ <[^>]+> ea4f 0000 mov\.w r0, r0 diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index a59ad4a2b78..162f166c8c1 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,18 @@ +2010-06-07 Matthew Gretton-Dann + + * ld-arm/arm-call.d: Handle change in lsls/movs disassembly. + * ld-arm/farcall-thumb-arm-short.d: Likewise. + * ld-arm/farcall-thumb-thumb-blx-pic-veneer.d: Likewise. + * ld-arm/farcall-thumb-thumb-blx.d: Likewise. + * ld-arm/farcall-thumb-thumb-m-pic-veneer.d: Likewise. + * ld-arm/farcall-thumb-thumb-m.d: Likewise. + * ld-arm/farcall-thumb-thumb-pic-veneer.d: Likewise. + * ld-arm/farcall-thumb-thumb.d: Likewise. + * ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d: Likewise. + * ld-arm/thumb2-bl-as-thumb1-bad.d: Likewise. + * ld-arm/thumb2-bl-bad-noeabi.d: Likewise. + * ld-arm/thumb2-bl-bad.d: Likewise. + 2010-05-26 H.J. Lu PR ld/11628 diff --git a/ld/testsuite/ld-arm/arm-call.d b/ld/testsuite/ld-arm/arm-call.d index fa452ab47ed..a3207430b79 100644 --- a/ld/testsuite/ld-arm/arm-call.d +++ b/ld/testsuite/ld-arm/arm-call.d @@ -46,7 +46,7 @@ Disassembly of section .text: 8050: f7ff fff1 bl 8036 8054: f7ff efd4 blx 8000 <_start> 8058: f7ff efd2 blx 8000 <_start> - 805c: 0000 lsls r0, r0, #0 + 805c: 0000 movs r0, r0 ... 00008060 <__t1_from_arm>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d index f4caf87b87a..4e190394336 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-arm-short.d +++ b/ld/testsuite/ld-arm/farcall-thumb-arm-short.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_from_thumb> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_from_thumb>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d index 86c0ca09a7a..27b208e72bf 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 e802 blx 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d index 5e9ac5a0feb..7998746fd0c 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 e802 blx 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d index 79e6449dc0e..974c1e9c416 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 ... 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d index 84782b8151e..e63b3f8fdf6 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d b/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d index 8c2cddf9107..8b14599a530 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 ... 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/farcall-thumb-thumb.d b/ld/testsuite/ld-arm/farcall-thumb-thumb.d index 8ea41c7ba24..ffbc6dfe0a6 100644 --- a/ld/testsuite/ld-arm/farcall-thumb-thumb.d +++ b/ld/testsuite/ld-arm/farcall-thumb-thumb.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d index 540c4529f2f..8872909b343 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d +++ b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 ... 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d index 04eb99149d9..6b478109cbc 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d +++ b/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 e802 blx 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d b/ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d index 540c4529f2f..8872909b343 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d +++ b/ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 f802 bl 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 ... 00001008 <__bar_veneer>: diff --git a/ld/testsuite/ld-arm/thumb2-bl-bad.d b/ld/testsuite/ld-arm/thumb2-bl-bad.d index 89c7a550768..d78e4513258 100644 --- a/ld/testsuite/ld-arm/thumb2-bl-bad.d +++ b/ld/testsuite/ld-arm/thumb2-bl-bad.d @@ -4,7 +4,7 @@ Disassembly of section .text: 00001000 <_start>: 1000: f000 e802 blx 1008 <__bar_veneer> - 1004: 0000 lsls r0, r0, #0 + 1004: 0000 movs r0, r0 \.\.\. 00001008 <__bar_veneer>: diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 9ec2d501000..3055bc0e19d 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2010-06-07 Matthew Gretton-Dann + + * arm-dis.c (thumb-opcodes): Add disassembly for movs. + 2010-05-28 Matthew Gretton-Dann * arm-dis.c (print_insn_neon): Ensure disassembly of Neon diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index 3763c1ee7c6..174de5ab445 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -1249,6 +1249,7 @@ static const struct opcode16 thumb_opcodes[] = {ARM_EXT_V4T, 0x5000, 0xFA00, "str%10'b%c\t%0-2r, [%3-5r, %6-8r]"}, {ARM_EXT_V4T, 0x5800, 0xFA00, "ldr%10'b%c\t%0-2r, [%3-5r, %6-8r]"}, /* format 1 */ + {ARM_EXT_V4T, 0x0000, 0xFFC0, "mov%C\t%0-2r, %3-5r"}, {ARM_EXT_V4T, 0x0000, 0xF800, "lsl%C\t%0-2r, %3-5r, #%6-10d"}, {ARM_EXT_V4T, 0x0800, 0xF800, "lsr%C\t%0-2r, %3-5r, %s"}, {ARM_EXT_V4T, 0x1000, 0xF800, "asr%C\t%0-2r, %3-5r, %s"}, -- 2.30.2