[PATCH] D95586: [ARM] permit PC as destination of MOVS

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 5 14:19:27 PST 2021


nickdesaulniers added a comment.

In D95586#2541475 <https://reviews.llvm.org/D95586#2541475>, @peter.smith wrote:

> FWIW UNPREDICTABLE in the Architecture, is essentially anything can happen. ...



In D95586#2541470 <https://reviews.llvm.org/D95586#2541470>, @DavidSpickett wrote:

> As I understand it, clang is correct to reject `movs  pc, r1, lsl r2` as this is unpredictable.
> ...
> There are other lines that encode unpredictable instructions but use the encoding directly to subvert GAS's checks so you could do that:
>
>   TEST_UNSUPPORTED(__inst_arm(0xe15c0f1e) " @ cmp r12, r14, asl pc"
>
> No mysterious gap in the tests that way.

I would think that if "essentially anything can happen," then all UNPREDICTABLE tests should be removed from the kernel? Whether they use the instruction mnemonics or open code the instruction/operands in hex.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D95586/new/

https://reviews.llvm.org/D95586



More information about the llvm-commits mailing list