[llvm-commits] [patch] Patches for some unpredictable instructions on ARM
Silviu Baranga
silbar01 at arm.com
Wed Apr 18 07:26:54 PDT 2012
Thank you for the review. I've removed the trailing whitespaces.
The patches were committed to r154999(AI1_cmp.diff), r155000(cdp2.diff),
r155001(mrrc.diff),
r155002(mrs.diff) and r155004(swp.diff).
Regards,
Silviu
From: Owen Anderson [mailto:resistor at mac.com]
Sent: 17 April 2012 18:21
To: Silviu Baranga
Cc: llvm-commits at cs.uiuc.edu
Subject: Re: [llvm-commits] [patch] Patches for some unpredictable
instructions on ARM
These looks fine to be, but please clean up trailing whitespace before
committing.
--Owen
On Apr 17, 2012, at 9:12 AM, Silviu Baranga <silbar01 at arm.com> wrote:
Hi,
Here are some patches that address the decoding of some unpredictable
instructions
on the ARM backend. All patches add regression tests.
swp.diff - The swp/swpb instructions have some corner cases in which they
have
unpredictable behaviour. The patch adds checks for these
cases and
regression tests.
AI1_cmp.diff - Sets the unpredictable field for all the cmp, tst, teq, cmnz
instructions and adds
the unpredictability condition for the register-shifted
register form when any of the
register operands are the pc register.
cdp2.diff - The CDP2 instruction has no restriction on the coprocessor
number parameter,
but in the current implementation the instruction is
undefined if the value of the
coprocessor number is in {1010, 1011}. To fix this we add
a new operand type for the coprocessor
number, which doesn't have that restriction. We replace
the coprocessor operand type in
the CDP2 instruction with the new operand.
mrrc.diff - The MCRR2/MRRC2 instructions are unpredictable when the
coprocessor is in 101X or
Rt==Rt2 or Rt==15 or Rt2==15. The patch adds C++ code to
handle these cases and a
regression test.
mrs.diff - The patch adds the soft fail behavior when disassembling MRS
instructions. There
appears to be a collision between the space of
unpredictable MRS instructions and
the space of predictable CPS instructions. The workaround
for this was to not set the
16th bit in the unpredictability mask of the MRS
instruction.
Please review these patches.
Thanks,
Silviu
<swp.diff><AI1_cmp.diff><cdp2.diff><mrrc.diff><mrs.diff>____________________
___________________________
llvm-commits mailing list
<mailto:llvm-commits at cs.uiuc.edu> llvm-commits at cs.uiuc.edu
<http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits>
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120418/7889cb29/attachment.html>
More information about the llvm-commits
mailing list