diff options
| author | Luke Cheeseman <luke.cheeseman@arm.com> | 2018-09-28 13:37:27 +0000 |
|---|---|---|
| committer | Luke Cheeseman <luke.cheeseman@arm.com> | 2018-09-28 13:37:27 +0000 |
| commit | 21f2955bb289bffe61f68a8b0726bbec24216214 (patch) | |
| tree | 52c28c512e6e2b5d6119c11204dec73f41e5f36e /llvm/lib/Target/AArch64/AsmParser | |
| parent | 66f4e45b35c809ff81b81044260a520e041a7d49 (diff) | |
| download | bcm5719-llvm-21f2955bb289bffe61f68a8b0726bbec24216214.tar.gz bcm5719-llvm-21f2955bb289bffe61f68a8b0726bbec24216214.zip | |
Reapply changes reverted by r343235
- Add fix so that all code paths that create DWARFContext
with an ObjectFile initialise the target architecture in the context
- Add an assert that the Arch is known in the Dwarf CallFrameString method
llvm-svn: 343317
Diffstat (limited to 'llvm/lib/Target/AArch64/AsmParser')
| -rw-r--r-- | llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp index d3b6c0d606a..a2c060ab2f2 100644 --- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -175,6 +175,7 @@ private: bool parseDirectiveReq(StringRef Name, SMLoc L); bool parseDirectiveUnreq(SMLoc L); + bool parseDirectiveCFINegateRAState(); bool validateInstruction(MCInst &Inst, SMLoc &IDLoc, SmallVectorImpl<SMLoc> &Loc); @@ -5014,6 +5015,8 @@ bool AArch64AsmParser::ParseDirective(AsmToken DirectiveID) { parseDirectiveUnreq(Loc); else if (IDVal == ".inst") parseDirectiveInst(Loc); + else if (IDVal == ".cfi_negate_ra_state") + parseDirectiveCFINegateRAState(); else if (IsMachO) { if (IDVal == MCLOHDirectiveName()) parseDirectiveLOH(IDVal, Loc); @@ -5387,6 +5390,13 @@ bool AArch64AsmParser::parseDirectiveUnreq(SMLoc L) { return false; } +bool AArch64AsmParser::parseDirectiveCFINegateRAState() { + if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive")) + return true; + getStreamer().EmitCFINegateRAState(); + return false; +} + bool AArch64AsmParser::classifySymbolRef(const MCExpr *Expr, AArch64MCExpr::VariantKind &ELFRefKind, |

