summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AArch64/AsmParser
diff options
context:
space:
mode:
authorLuke Cheeseman <luke.cheeseman@arm.com>2018-09-28 13:37:27 +0000
committerLuke Cheeseman <luke.cheeseman@arm.com>2018-09-28 13:37:27 +0000
commit21f2955bb289bffe61f68a8b0726bbec24216214 (patch)
tree52c28c512e6e2b5d6119c11204dec73f41e5f36e /llvm/lib/Target/AArch64/AsmParser
parent66f4e45b35c809ff81b81044260a520e041a7d49 (diff)
downloadbcm5719-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.cpp10
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,
OpenPOWER on IntegriCloud