From 4ab90a7a90ccf8a671f139c1c6387ba8028e6011 Mon Sep 17 00:00:00 2001 From: Andre Vieira Date: Thu, 13 Aug 2015 11:39:08 +0100 Subject: Fixes for unpredictable nops and 26-bit versions of teq,tst,cmn,cmp. opcodes * arm-dis.c (print_insn_arm): Disassembling for all targets V6 and higher with ARM instruction set will now mark the 26-bit versions of teq,tst,cmn and cmp as UNPREDICTABLE. (arm_opcodes): Fix for unpredictable nop being recognized as a teq. test * gas/arm/nops.d: New. * gas/arm/nops.s: New. * gas/arm/inst.d: Changed expectation file for 26-bit teq, tst, cmn and cmp. --- gas/testsuite/ChangeLog | 7 +++++++ gas/testsuite/gas/arm/inst.d | 32 ++++++++++++++++---------------- gas/testsuite/gas/arm/nops.d | 12 ++++++++++++ gas/testsuite/gas/arm/nops.s | 4 ++++ 4 files changed, 39 insertions(+), 16 deletions(-) create mode 100644 gas/testsuite/gas/arm/nops.d create mode 100644 gas/testsuite/gas/arm/nops.s (limited to 'gas') diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index f4601b8..b86a46e 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2015-08-13 Andre Vieira + + * gas/arm/nops.d: New. + * gas/arm/nops.s: New. + * gas/arm/inst.d: Changed expectation file for 26-bit teq, + tst, cmn and cmp. + 2015-08-12 Max Filippov * gas/xtensa/all.exp: Add auto-litpools to the list of xtensa diff --git a/gas/testsuite/gas/arm/inst.d b/gas/testsuite/gas/arm/inst.d index e298c5f..d7ca4a3 100644 --- a/gas/testsuite/gas/arm/inst.d +++ b/gas/testsuite/gas/arm/inst.d @@ -95,22 +95,22 @@ Disassembly of section .text: 0+14c <[^>]*> e1720004 ? cmn r2, r4 0+150 <[^>]*> e1750287 ? cmn r5, r7, lsl #5 0+154 <[^>]*> e1710113 ? cmn r1, r3, lsl r1 -0+158 <[^>]*> e330f00a ? teq r0, #10 -0+15c <[^>]*> e132f004 ? teq r2, r4 -0+160 <[^>]*> e135f287 ? teq r5, r7, lsl #5 -0+164 <[^>]*> e131f113 ? teq r1, r3, lsl r1 -0+168 <[^>]*> e370f00a ? cmn r0, #10 -0+16c <[^>]*> e172f004 ? cmn r2, r4 -0+170 <[^>]*> e175f287 ? cmn r5, r7, lsl #5 -0+174 <[^>]*> e171f113 ? cmn r1, r3, lsl r1 -0+178 <[^>]*> e350f00a ? cmp r0, #10 -0+17c <[^>]*> e152f004 ? cmp r2, r4 -0+180 <[^>]*> e155f287 ? cmp r5, r7, lsl #5 -0+184 <[^>]*> e151f113 ? cmp r1, r3, lsl r1 -0+188 <[^>]*> e310f00a ? tst r0, #10 -0+18c <[^>]*> e112f004 ? tst r2, r4 -0+190 <[^>]*> e115f287 ? tst r5, r7, lsl #5 -0+194 <[^>]*> e111f113 ? tst r1, r3, lsl r1 +0+158 <[^>]*> e330f00a ? teq r0, #10 ; +0+15c <[^>]*> e132f004 ? teq r2, r4 ; +0+160 <[^>]*> e135f287 ? teq r5, r7, lsl #5 ; +0+164 <[^>]*> e131f113 ? teq r1, r3, lsl r1 ; +0+168 <[^>]*> e370f00a ? cmn r0, #10 ; +0+16c <[^>]*> e172f004 ? cmn r2, r4 ; +0+170 <[^>]*> e175f287 ? cmn r5, r7, lsl #5 ; +0+174 <[^>]*> e171f113 ? cmn r1, r3, lsl r1 ; +0+178 <[^>]*> e350f00a ? cmp r0, #10 ; +0+17c <[^>]*> e152f004 ? cmp r2, r4 ; +0+180 <[^>]*> e155f287 ? cmp r5, r7, lsl #5 ; +0+184 <[^>]*> e151f113 ? cmp r1, r3, lsl r1 ; +0+188 <[^>]*> e310f00a ? tst r0, #10 ; +0+18c <[^>]*> e112f004 ? tst r2, r4 ; +0+190 <[^>]*> e115f287 ? tst r5, r7, lsl #5 ; +0+194 <[^>]*> e111f113 ? tst r1, r3, lsl r1 ; 0+198 <[^>]*> e0000291 ? mul r0, r1, r2 0+19c <[^>]*> e0110392 ? muls r1, r2, r3 0+1a0 <[^>]*> 10000091 ? mulne r0, r1, r0 diff --git a/gas/testsuite/gas/arm/nops.d b/gas/testsuite/gas/arm/nops.d new file mode 100644 index 0000000..0d57e66 --- /dev/null +++ b/gas/testsuite/gas/arm/nops.d @@ -0,0 +1,12 @@ +# name: NOP instructions +# objdump: -dr --prefix-addresses --show-raw-insn +# skip: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd + +.*: +file format .*arm.* + +Disassembly of section \.text: +0+000 <[^>]*> 0320f000 ? nopeq \{0\} +0+004 <[^>]*> 7320f000 ? nopvc \{0\} +0+008 <[^>]*> 7320d700 ? nopvc \{0\} ; + + diff --git a/gas/testsuite/gas/arm/nops.s b/gas/testsuite/gas/arm/nops.s new file mode 100644 index 0000000..704c10b --- /dev/null +++ b/gas/testsuite/gas/arm/nops.s @@ -0,0 +1,4 @@ +.arm +.inst 0x0320f000 +.inst 0x7320f000 +.inst 0x7320d700 -- cgit v1.1