[RFA] ARM: VLDM/VSTM pc, {} is predictable in ARM state

Richard Earnshaw Richard.Earnshaw@buzzard.freeserve.co.uk
Mon Jun 7 21:26:00 GMT 2010


On 07/06/10 17:24, Matthew Gretton-Dann wrote:
> All,
>
> Please can someone review and approve the attached patch?
>
> The patch is to fix gas so that it accepts vldm pc, {...}, vstm pc,
> {...}, and the divided syntax equivalents, in ARM state.
>
> (These instructions with writeback, or in Thumb-state are
> unpredictable).
>
> Thanks,
>
> Matt
>
> Proposed ChangeLogs:
>
> gas/ChangeLog:
> 2010-06-07  Matthew Gretton-Dann<matthew.gretton-dann@arm.com>
> 	* config/tc-arm.c (operand_parse_code): Add OP_RRnpctw enum
> 	value.
> 	(parse_operands): Add support for OP_RRnpctw.
> 	(insns): Update floating-point load/store multiples so the
> 	first register is of type OP_RRnpctw.
>
> gas/testsuite/ChangeLog:
> 2010-06-07 Matthew Gretton-Dann<matthew.gretton-dann@arm.com>
> 	* gas/arm/vldm-arm.d: New test.
> 	* gas/arm/vldm-thumb-bad.d: Likewise.
> 	* gas/arm/vldm-thumb-bad.l: Likewise.
> 	* gas/arm/vldm.s: Likewise.
> 	* gas/arm/vldmw-arm-bad.d: Likewise.
> 	* gas/arm/vldmw-bad.l: Likewise.
> 	* gad/arm-vldmw-bad.s: Likewise.
> 	* gas/arm/vldmw-thumb-bad.d: Likewise.
>

This is basically OK, but I think your use of .double in the source will 
cause the dumps to fail if run in big-endian mode.  It might be better 
to just put out .word directives for the literals (their values aren't 
really what's under test).

R.




More information about the Binutils mailing list