[PATCH] D38776: [codeview] Implement FPO data assembler directives

David Majnemer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 10 20:05:42 PDT 2017


majnemer added a comment.

Cool! I've always wondered if we'd end up with an implementation of this :)

Should we have a shrink-wrapping test?



================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp:246
+  unsigned SavedRegSize = 0;
+  unsigned Flags = 0; // FIXME: Set HasSEH / HasEH.
+
----------------
It'd be cool to get this to work, if only to make sure that we understand the format properly.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp:263-266
+    // Otherwise, get the codeview register number and print $N.
+    default:
+      OS << '$' << MRI->getCodeViewRegNum(LLVMReg);
+      break;
----------------
Shouldn't X86::EAX be $eax, etc?


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp:315
+  OS.EmitIntValue(LocalSize, 4);
+  OS.EmitIntValue(0, 4); // FIXME: ParamsSize
+  OS.EmitIntValue(0, 4); // MaxStackSize
----------------
How would you extend the assembler directive to support this?


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp:316
+  OS.EmitIntValue(0, 4); // FIXME: ParamsSize
+  OS.EmitIntValue(0, 4); // MaxStackSize
+  OS.EmitIntValue(FrameFuncStrTabOff, 4); // FrameFunc
----------------
Does MSVC stick anything interesting in here? What's it for?


================
Comment at: llvm/test/MC/COFF/cv-fpo-setframe.s:48
+	# Epilogue
+	# FIXME: Get FPO data for this once we get it for DWARF.
+	addl $20, %esp
----------------
How would this work with this FPO format?


https://reviews.llvm.org/D38776





More information about the llvm-commits mailing list