mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-13 10:32:06 +00:00
propagate cookie management out one layer of function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100510 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6eb7806a5f
commit
885d94143d
@ -423,7 +423,7 @@ namespace llvm {
|
||||
mutable unsigned SetCounter;
|
||||
|
||||
/// EmitInlineAsm - Emit a blob of inline asm to the output streamer.
|
||||
void EmitInlineAsm(StringRef Str) const;
|
||||
void EmitInlineAsm(StringRef Str, unsigned LocCookie) const;
|
||||
|
||||
/// EmitInlineAsm - This method formats and emits the specified machine
|
||||
/// instruction that is an inline asm.
|
||||
|
@ -144,7 +144,7 @@ bool AsmPrinter::doInitialization(Module &M) {
|
||||
if (!M.getModuleInlineAsm().empty()) {
|
||||
OutStreamer.AddComment("Start of file scope inline assembly");
|
||||
OutStreamer.AddBlankLine();
|
||||
EmitInlineAsm(M.getModuleInlineAsm());
|
||||
EmitInlineAsm(M.getModuleInlineAsm(), 0/*no loc cookie*/);
|
||||
OutStreamer.AddComment("End of file scope inline assembly");
|
||||
OutStreamer.AddBlankLine();
|
||||
}
|
||||
|
@ -35,7 +35,7 @@
|
||||
using namespace llvm;
|
||||
|
||||
/// EmitInlineAsm - Emit a blob of inline asm to the output streamer.
|
||||
void AsmPrinter::EmitInlineAsm(StringRef Str) const {
|
||||
void AsmPrinter::EmitInlineAsm(StringRef Str, unsigned LocCookie) const {
|
||||
assert(!Str.empty() && "Can't emit empty inline asm block");
|
||||
|
||||
// Remember if the buffer is nul terminated or not so we can avoid a copy.
|
||||
@ -57,9 +57,8 @@ void AsmPrinter::EmitInlineAsm(StringRef Str) const {
|
||||
LLVMContext &LLVMCtx = MMI->getModule()->getContext();
|
||||
bool HasDiagHandler = false;
|
||||
if (void *DiagHandler = LLVMCtx.getInlineAsmDiagnosticHandler()) {
|
||||
unsigned Cookie = 0; // no cookie yet.
|
||||
SrcMgr.setDiagHandler((SourceMgr::DiagHandlerTy)(intptr_t)DiagHandler,
|
||||
LLVMCtx.getInlineAsmDiagnosticContext(), Cookie);
|
||||
LLVMCtx.getInlineAsmDiagnosticContext(), LocCookie);
|
||||
HasDiagHandler = true;
|
||||
}
|
||||
|
||||
@ -297,7 +296,7 @@ void AsmPrinter::EmitInlineAsm(const MachineInstr *MI) const {
|
||||
}
|
||||
}
|
||||
OS << '\n' << (char)0; // null terminate string.
|
||||
EmitInlineAsm(OS.str());
|
||||
EmitInlineAsm(OS.str(), 0/*no loc cookie*/);
|
||||
|
||||
// Emit the #NOAPP end marker. This has to happen even if verbose-asm isn't
|
||||
// enabled, so we use EmitRawText.
|
||||
|
Loading…
x
Reference in New Issue
Block a user