[PATCH] D63650: [ARM] Add MVE interleaving load/store family.

Simon Tatham via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 21 09:00:30 PDT 2019


simon_tatham marked 4 inline comments as done.
simon_tatham added inline comments.


================
Comment at: llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp:1243
 
+static DecodeStatus Decodet2rGPRRegisterClass(MCInst &Inst, unsigned RegNo,
+                                   uint64_t Address, const void *Decoder) {
----------------
ostannard wrote:
> Is this new reg class needed? rGPR should already reject r13 and r15 for v8.1M.
Apparently you're right – which means that the defn of that register class in `ARMRegisterInfo.td` has already been added in error. I'll remove it again.

An understandable error, though, I think: looking at the decoder method for rGPR, it only rejects SP without the feature HasV8Ops, and it always takes me a moment to remember that that feature name actually refers to v8-A only, not v8-M!


================
Comment at: llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp:1427
+                                            raw_ostream &O) {
+  // MVE vector lists are always written as a list of q-registers,
+  // never d-registers. getSubReg will give us the four d-regs making
----------------
ostannard wrote:
> Could we use ARM::qsub_<N> instead of ARM::dsub_<N> to get the Q registers?
Apparently so, it turns out, which simplifies these functions. Also I've taken the opportunity to combine them into a template.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D63650





More information about the llvm-commits mailing list