[PATCH] Fix ARM encoding constraints for Q register fields and VSTn instructions

Mihail Popa mihail.popa at arm.com
Tue May 14 02:38:58 PDT 2013


Hello.

Kindly review the attached patch. It fixes two ARM disassembler issues:

1. Q registers are encoded in fields of the same length as D registers. 
As Q registers are half as many, the ARM reference manual mandates the 
least significant bit to be zeroed out. Failure to do so should result 
in an undefined instruction. With this change 
test/MC/Disassembler/ARM/invalid-VQADD-arm.txt is passing (removed XFAIL).

2. VSTn instructions have a number of encoding constraints which are not 
implemented. I have added these using wrapper methods around the 
original custom decoder (incidentally - this is a huge poorly written 
method that should be cleaned up. I have left it as is since the changes 
would be much to hard to review).

Regards,
Mihai
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130514/85262d11/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LLVM-731.vstq.patch
Type: text/x-patch
Size: 14567 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130514/85262d11/attachment.bin>


More information about the llvm-commits mailing list