[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