[PATCH] D108597: [M68k][AsmParser] Support parsing register masks & fix printing them

Min-Yih Hsu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 23 21:22:08 PDT 2021


myhsu added a comment.

Thanks for your swift response on adding move mask support!
overall LGTM. Please address the inline feedbacks.



================
Comment at: llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp:240
+static inline unsigned getRegisterIndex(unsigned Register) {
+  switch (Register) {
+  case M68k::D0:
----------------
I think `A0` ~ `A7` as well as `D0` ~ `D7` are always contiguous (see M68kGenRegisterInfo.inc). So maybe this can be replaced with something like
```
if (Register >= M68k::D0 && Register <= M68k::D7)
  return Register - M68k::D0;
if (Register >= M68k::A0 && Register <= M68k::A7)
  return Register - M68k::A0 + 8;
// Here: handle SP, PC, CCR...
```


================
Comment at: llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp:279
+  default:
+    assert(false && "unexpected register number");
+    return 0;
----------------



================
Comment at: llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp:379
+bool M68kOperand::isMoveMask() const {
+  if (!isMemOp()) {
+    return false;
----------------
(formatting) remove surrounding braces for single-line if-statement


================
Comment at: llvm/lib/Target/M68k/AsmParser/M68kAsmParser.cpp:383
+
+  if (MemOp.Op == M68kMemOp::Kind::RegMask) {
+    return true;
----------------
ditto remove braces and other places below


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D108597



More information about the llvm-commits mailing list