[llvm-commits] [PATCH] Fix for some unpredictable instructions on ARM
Jim Grosbach
grosbach at apple.com
Wed Mar 21 15:56:16 PDT 2012
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/a275f2e0/attachment.html>
More information about the llvm-commits
mailing list