This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFA: arm maverick disassembly
On Sat, 2005-10-08 at 15:54, Richard Earnshaw wrote:
> On Fri, 2005-10-07 at 22:44, James Lemke wrote:
> > I got a report of incorrect disassembly of mrc opcodes as cfmsub32.
> > E.G.
> > was ee102610 cfmsub32 mvax0, mvfx2, mvfx0, mvfx0
> > should be ee102610 mrc 6, 0, r2, cr0, cr0, {0}
> >
> > I found that 6 of the Maverick CDP opcodes do not depend on bit 4 when
> > they should. Patch attached.
> >
> > Tested on x86-linux x arm-elf.
> > No change in binutils results.
> > gcc results had no regressions and 15 improvements:
> > 2x unsupported -> pass gcc.dg/cpp/trad/num-sign.c
> > 13x untested -> pass gcc.dg/pch/valid-[123].c & warn-1.c
> >
> > Not sure that this qualifies for the "obvious" rule.
> > OK to commit?
>
> Thanks, I've put this in after updating it to the current sources.
>
> For future reference, please don't send ChangeLog entries as diff
> output, they almost never apply cleanly.
Unfortunately this tripped a bug in the gas testsuite. Fixed thusly:
2005-10-17 Richard Earnshaw <richard.earnshaw@arm.com>
* gas/arm/copro.d: 'mcrlt' instruction should not be disassembled as
'cfsh64lt'.
Index: gas/arm/copro.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/copro.d,v
retrieving revision 1.3
retrieving revision 1.4
diff -p -r1.3 -r1.4
*** gas/arm/copro.d 6 Nov 2003 15:30:05 -0000 1.3
--- gas/arm/copro.d 17 Oct 2005 15:44:01 -0000 1.4
*************** Disassembly of section .text:
*** 22,28 ****
0+030 <[^>]*> ee715212 mrc 2, 3, r5, cr1, cr2, \{0\}
0+034 <[^>]*> aeb1f4f2 mrcge 4, 5, pc, cr1, cr2, \{7\}
0+038 <[^>]*> ee21f711 mcr 7, 1, pc, cr1, cr1, \{0\}
! 0+03c <[^>]*> be228519 cfsh64lt mvdx8, mvdx2, #9
0+040 <[^>]*> ec907300 ldc 3, cr7, \[r0\], \{0\}
0+044 <[^>]*> ec816e01 stc 14, cr6, \[r1\], \{1\}
0+048 <[^>]*> fc925502 ldc2 5, cr5, \[r2\], \{2\}
--- 22,28 ----
0+030 <[^>]*> ee715212 mrc 2, 3, r5, cr1, cr2, \{0\}
0+034 <[^>]*> aeb1f4f2 mrcge 4, 5, pc, cr1, cr2, \{7\}
0+038 <[^>]*> ee21f711 mcr 7, 1, pc, cr1, cr1, \{0\}
! 0+03c <[^>]*> be228519 mcrlt 5, 1, r8, cr2, cr9, \{0\}
0+040 <[^>]*> ec907300 ldc 3, cr7, \[r0\], \{0\}
0+044 <[^>]*> ec816e01 stc 14, cr6, \[r1\], \{1\}
0+048 <[^>]*> fc925502 ldc2 5, cr5, \[r2\], \{2\}