diff options
author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2017-11-02 12:00:58 +0000 |
---|---|---|
committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2017-11-02 12:00:58 +0000 |
commit | 66d2c269dc153c36cb35898082a38eb47bbb4ce0 (patch) | |
tree | 80a1abeec5edff352463a3b5c6c79ae83d75968f /llvm/lib/CodeGen/AsmPrinter | |
parent | e73b85d1abfe7363164c5a7e5f58c1ceaeeb62f9 (diff) | |
download | bcm5719-llvm-66d2c269dc153c36cb35898082a38eb47bbb4ce0.tar.gz bcm5719-llvm-66d2c269dc153c36cb35898082a38eb47bbb4ce0.zip |
[AsmPrinterDwarf] Add support for .cfi_restore directive
As of today we only use .cfi_offset to specify the offset of a CSR, but
we never use .cfi_restore when the CSR is restored.
If we want to perform a more advanced type of shrink-wrapping, we need
to use .cfi_restore in order to switch the CFI state between blocks.
This patch only aims at adding support for the directive.
Differential Revision: https://reviews.llvm.org/D36114
llvm-svn: 317199
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp index 7b3fe05db76..3f144c0659f 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp @@ -219,6 +219,9 @@ void AsmPrinter::emitCFIInstruction(const MCCFIInstruction &Inst) const { case MCCFIInstruction::OpEscape: OutStreamer->EmitCFIEscape(Inst.getValues()); break; + case MCCFIInstruction::OpRestore: + OutStreamer->EmitCFIRestore(Inst.getRegister()); + break; } } |