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

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 3 11:44:04 PST 2021


nickdesaulniers added a comment.

Sorry, it's still not clear to me what I should do to proceed.

The kernel has the following block of code:

   167   /* Data-processing with PC as a target and status registers updated */                                                                                                   
   168   TEST_UNSUPPORTED("movs  pc, r1")                                                                                                                                         
   169   TEST_UNSUPPORTED("movs  pc, r1, lsl r2")                 
  ^ this line fails with clang's integrated assembler.                                                                                                                
   170   TEST_UNSUPPORTED("movs  pc, #0x10000")                                                                                                                                   
   171   TEST_UNSUPPORTED("adds  pc, lr, r1")                                                                                                                                     
   172   TEST_UNSUPPORTED("adds  pc, lr, r1, lsl r2")                                                                                                                             
   173   TEST_UNSUPPORTED("adds  pc, lr, #4")

I think it might seem silly to kernel reviewers if I send them a patch that removes `movs  pc, r1, lsl r2` when there's a `movs  pc, r1` right above it that's accepted.

If I should send a kernel patch, how should I justify it?

If we should support this form of this instruction with these operands, how should I proceed on this patch?

This is literally the last thing blocking me from building a 32b ARM "allyesconfig" Linux kernel with Clang's integrated assembler, which I would like to ship in the next release of Android.  (THUMB2 has it's own issues, but is not part of "allyesconfig.")  I have about 2 months until we begin to lock down the toolchain release for that version of Android.


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