diff options
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/CFIInstrInserter.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MILexer.h | 1 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 4 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/MachineOperand.cpp | 5 | 
6 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp index 60558847067..afce3ad3133 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp @@ -212,6 +212,9 @@ void AsmPrinter::emitCFIInstruction(const MCCFIInstruction &Inst) const {    case MCCFIInstruction::OpWindowSave:      OutStreamer->EmitCFIWindowSave();      break; +  case MCCFIInstruction::OpNegateRAState: +    OutStreamer->EmitCFINegateRAState(); +    break;    case MCCFIInstruction::OpSameValue:      OutStreamer->EmitCFISameValue(Inst.getRegister());      break; diff --git a/llvm/lib/CodeGen/CFIInstrInserter.cpp b/llvm/lib/CodeGen/CFIInstrInserter.cpp index 4fd119430cf..c4799855a2b 100644 --- a/llvm/lib/CodeGen/CFIInstrInserter.cpp +++ b/llvm/lib/CodeGen/CFIInstrInserter.cpp @@ -207,6 +207,7 @@ void CFIInstrInserter::calculateOutgoingCFAInfo(MBBCFAInfo &MBBInfo) {        case MCCFIInstruction::OpUndefined:        case MCCFIInstruction::OpRegister:        case MCCFIInstruction::OpWindowSave: +      case MCCFIInstruction::OpNegateRAState:        case MCCFIInstruction::OpGnuArgsSize:          break;        } diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.cpp b/llvm/lib/CodeGen/MIRParser/MILexer.cpp index f7cc94e34a5..ce061f8e9b8 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.cpp +++ b/llvm/lib/CodeGen/MIRParser/MILexer.cpp @@ -220,6 +220,7 @@ static MIToken::TokenKind getIdentifierKind(StringRef Identifier) {        .Case("undefined", MIToken::kw_cfi_undefined)        .Case("register", MIToken::kw_cfi_register)        .Case("window_save", MIToken::kw_cfi_window_save) +      .Case("negate_ra_sign_state", MIToken::kw_cfi_aarch64_negate_ra_sign_state)        .Case("blockaddress", MIToken::kw_blockaddress)        .Case("intrinsic", MIToken::kw_intrinsic)        .Case("target-index", MIToken::kw_target_index) diff --git a/llvm/lib/CodeGen/MIRParser/MILexer.h b/llvm/lib/CodeGen/MIRParser/MILexer.h index dffa4f74544..813c539f648 100644 --- a/llvm/lib/CodeGen/MIRParser/MILexer.h +++ b/llvm/lib/CodeGen/MIRParser/MILexer.h @@ -89,6 +89,7 @@ struct MIToken {      kw_cfi_restore_state,      kw_cfi_undefined,      kw_cfi_window_save, +    kw_cfi_aarch64_negate_ra_sign_state,      kw_blockaddress,      kw_intrinsic,      kw_target_index, diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index 1a6174bf9ee..6cfe28bb03d 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -1820,6 +1820,9 @@ bool MIParser::parseCFIOperand(MachineOperand &Dest) {    case MIToken::kw_cfi_window_save:      CFIIndex = MF.addFrameInst(MCCFIInstruction::createWindowSave(nullptr));      break; +  case MIToken::kw_cfi_aarch64_negate_ra_sign_state: +    CFIIndex = MF.addFrameInst(MCCFIInstruction::createNegateRAState(nullptr)); +    break;    case MIToken::kw_cfi_escape: {      std::string Values;      if (parseCFIEscapeValues(Values)) @@ -2112,6 +2115,7 @@ bool MIParser::parseMachineOperand(MachineOperand &Dest,    case MIToken::kw_cfi_restore_state:    case MIToken::kw_cfi_undefined:    case MIToken::kw_cfi_window_save: +  case MIToken::kw_cfi_aarch64_negate_ra_sign_state:      return parseCFIOperand(Dest);    case MIToken::kw_blockaddress:      return parseBlockAddressOperand(Dest); diff --git a/llvm/lib/CodeGen/MachineOperand.cpp b/llvm/lib/CodeGen/MachineOperand.cpp index 4fe51f66248..05e51e1873c 100644 --- a/llvm/lib/CodeGen/MachineOperand.cpp +++ b/llvm/lib/CodeGen/MachineOperand.cpp @@ -697,6 +697,11 @@ static void printCFI(raw_ostream &OS, const MCCFIInstruction &CFI,      if (MCSymbol *Label = CFI.getLabel())        MachineOperand::printSymbol(OS, *Label);      break; +  case MCCFIInstruction::OpNegateRAState: +    OS << "negate_ra_sign_state "; +    if (MCSymbol *Label = CFI.getLabel()) +      MachineOperand::printSymbol(OS, *Label); +    break;    default:      // TODO: Print the other CFI Operations.      OS << "<unserializable cfi directive>";  | 

