[PATCH] D87370: [llvm-readobj] [ARMWinEH] Print ARM64 packed unwind info

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 9 14:17:38 PDT 2020


efriedma added inline comments.


================
Comment at: llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp:1162
+
+  int IntSZ = 8 * RF.RegI();
+  if (RF.CR() == 1)
----------------
Maybe add a comment noting the source of this algorithm.

I guess the steps are in reverse order from the documentation?


================
Comment at: llvm/tools/llvm-readobj/ARMWinEHPrinter.cpp:1191
+      SW.startLine() << format("stp x0, x1, [sp, #%d]\n", IntSZ + FpSZ);
+    else // This case isn't documented
+      SW.startLine() << format("stp x0, x1, [sp, #-%d]!\n", SavSZ);
----------------
I don't understand the `if (RF.RegI() + RF.RegF() > 0)` check; if the function homes registers, the homing region have to be contiguous.

That said, the compiler could stick any sequence of four instructions here, really; maybe we should just print them as nops.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D87370



More information about the llvm-commits mailing list