[llvm-commits] [PATCH] Fix for some unpredictable instructions on ARM
Owen Anderson
owen at apple.com
Wed Mar 21 16:13:57 PDT 2012
Looks fine, other than a bit of trailing whitespace. ;-)
--Owen
On Mar 21, 2012, at 3:56 PM, Jim Grosbach <grosbach at apple.com> wrote:
> This all seems reasonable to me. Owen, what do you think?
>
> -Jim
>
> On Mar 21, 2012, at 3:47 AM, Silviu Baranga <silbar01 at arm.com> wrote:
>
>> Hi,
>>
>> The ARM instructions:
>> STRD, STRH, LDRD, LDRH, LDRSH, LDRSB, LDRSBT, LDRHT, LDRSHT, MUL
>> have some corner cases in which are unpredictable. In these cases the disassembler should
>> still disassemble the instructions instead of rejecting them.
>> The attached standalone patches fix this.
>>
>> - addrmode3.diff – STRD, STRH, LDRD, LDRH, LDRSH and LDRSB instructions. The patch
>> modifies the C++ ARM disassembler code to add the checking conditions, which are
>> too complex to introduce with tablegen files.
>> - ldr.diff – LDRSBT, LDRHT and LDRSHT instructions. The patch introduces a decoder
>> method because of the Rn == Rt unpredictability condition that is common to
>> all the instructions above.
>> - mul.diff - MUL instruction. The patch changes the TableGen description of the MUL
>> Instruction in order to reflect the fact that the instruction is unpredictable when
>> either of the Rd, Rn or Rm register operands are the pc register.
>>
>> All patches add regression tests for the modifications.
>>
>> Please review.
>>
>> Thanks,
>> Silviu
>> <addrmode3.diff><ldr.diff><mul.diff>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120321/61e96b6e/attachment.html>
More information about the llvm-commits
mailing list