[patch] ARM NEON misassembly
Paul Brook
paul@codesourcery.com
Mon Sep 4 15:54:00 GMT 2006
The NEON assembly syntax allows .u and .s to be used as aliases for
instructions expecting a .i type suffix. The bit normally used to encode
signed/unsigned is generally used to encode a different instruction.
In some cases gas gets this wrong, and sets the U bit when .u is used.
The attached patch fixes this. It also fixes a bug in tne disassembly of the
vmovn instruction.
Tested with cross to arm-none-eabi.
Ok?
Paul
2006-09-04 Paul Brook <paul@codesourcery.com>
gas/
* config/tc-arm.c (do_neon_dyadic_if_i): Remove.
(do_neon_dyadic_if_i_d): Avoid setting U bit.
(do_neon_mac_maybe_scalar): Ditto.
(do_neon_dyadic_narrow): Force operand tyep to NT_integer.
(insns): Remove out of date comments.
gas/testsuite/
* gas/arm/neon-cov.s: Test .u and .s aliases for .i suffixes.
* gas/arm/neon-cov.d: Adjust expected output.
opcodes/
* arm-dis.c (neon_opcode): Fix suffix on VMOVN.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.neon_int
Type: text/x-diff
Size: 22794 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20060904/f7dacc20/attachment.bin>
More information about the Binutils
mailing list