[PATCH] D37030: Fix ARMv4 support

Renato Golin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 23 03:30:32 PDT 2017


rengolin added inline comments.


================
Comment at: lib/Target/ARM/ARMAsmPrinter.cpp:1275
 
+    assert(Subtarget->hasV4TOps());
     EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::BX)
----------------
fhahn wrote:
> Maybe this assert would be clearer if the assert contained something like && "BX instructions are only available in ARMv4t and later". Applies to all added asserts in this patch
Well, both `BX_CALL` and `BX_RET` have `Requires<[IsARM, HasV4T]>`, which `ARMv4` (in `ARM.td`) doesn't have.

So, either this `BX_CALL` is being generated manually (and incorrectly), or there's something wrong with the ISel.

I think it's safe to assume that, if a target has `BX_CALL`, it also has `BX_RET`, so the assert here should be redundant.

Your princess might be in another castle. :)

PS: It's possible that the introduction of `getReturnOpcode()` has fixed that already.


Repository:
  rL LLVM

https://reviews.llvm.org/D37030





More information about the llvm-commits mailing list