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

Renato Golin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 28 02:27:27 PST 2021


rengolin added a comment.

ARS, LSR, ROR have the following warning on the ARM ARM:

> if d == 15 || n == 15 || m == 15 then UNPREDICTABLE;

I'm not sure GAS should be doing this at all... Looks like an oversight.

MOVs and RRX don't in the ARM version, but do in the Thumb2 ones.

However, not all encodings are allowed.

For example, MOVS PC is SUBS, but MOV PC is not allowed. OTOH, RRX only allows the PC is S isn't specified.

Maybe the kernel is using those instructions in the precise way the ARM ARM allows, but this patch is also allowing unpredictable encodings, which we really shouldn't.


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