llvm-project/llvm/lib/Target/X86/AsmParser
Reid Kleckner d5e4ec74e3 [codeview] Fix 32-bit x86 variable locations in realigned stack frames
Add the .cv_fpo_stackalign directive so that we can define $T0, or the
VFRAME virtual register, with it. This was overlooked in the initial
implementation because unlike MSVC, we push CSRs before allocating stack
space, so this value is only needed to describe local variable
locations. Variables that the compiler now addresses via ESP are instead
described as being stored at offsets from VFRAME, which for us is ESP
after alignment in the prologue.

This adds tests that show that we use the VFRAME register properly in
our S_DEFRANGE records, and that we emit the correct FPO data to define
it.

Fixes PR38857

llvm-svn: 343603
2018-10-02 16:43:52 +00:00
..
CMakeLists.txt
LLVMBuild.txt [fixup][rL311639] 2017-08-24 14:10:50 +00:00
X86AsmInstrumentation.cpp [X86] Use AND32ri8 instead of AND64ri8 in Asan code in EmitCallAsanReport for 32-bit mode. 2017-12-15 21:18:06 +00:00
X86AsmInstrumentation.h Add -print-schedule scheduling comments to inline asm. 2017-11-09 12:45:40 +00:00
X86AsmParser.cpp [codeview] Fix 32-bit x86 variable locations in realigned stack frames 2018-10-02 16:43:52 +00:00
X86AsmParserCommon.h
X86Operand.h [X86][AsmParser] Rework the in/out (%dx) hack one more time. 2018-07-03 18:07:30 +00:00