Add a finishParse() callback to the targer asm parser

This callback is invoked when the parse has finished successfuly. It
will be used to write out ARM constant pools to implement the ldr
pseudo.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197706 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Peixotto 2013-12-19 18:08:08 +00:00
parent 79b37835f9
commit 6075fa1e0e
2 changed files with 9 additions and 0 deletions

View File

@ -182,6 +182,11 @@ public:
return 0;
}
/// Allow a target to perform any actions after the parse completes
/// successfully. For example, to write out constant pools for ldr pseudo on
/// ARM.
virtual void finishParse() {};
virtual void onLabelParsed(MCSymbol *Symbol) { };
};

View File

@ -677,6 +677,10 @@ bool AsmParser::Run(bool NoInitialTextSection, bool NoFinalize) {
}
}
// Callback to the target parser in case it needs to do anything.
if (!HadError)
getTargetParser().finishParse();
// Finalize the output stream if there are no errors and if the client wants
// us to.
if (!HadError && !NoFinalize)