aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael J. Spencer <bigcheesegs@gmail.com>2010-07-31 06:22:29 +0000
committerMichael J. Spencer <bigcheesegs@gmail.com>2010-07-31 06:22:29 +0000
commite2195d8b357d7081edb5eb09d1d6e9d7b4bfc308 (patch)
tree54ba99ab82e29d60d1c7db547e66d841fafe0065
parent98e1479575c87fcd16d2087c99b8e07e6722ac36 (diff)
downloadexternal_llvm-e2195d8b357d7081edb5eb09d1d6e9d7b4bfc308.zip
external_llvm-e2195d8b357d7081edb5eb09d1d6e9d7b4bfc308.tar.gz
external_llvm-e2195d8b357d7081edb5eb09d1d6e9d7b4bfc308.tar.bz2
Add relax all support to the COFF object streamer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109947 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/MC/MCStreamer.h3
-rw-r--r--lib/MC/WinCOFFStreamer.cpp7
-rw-r--r--lib/Target/X86/X86TargetMachine.cpp2
3 files changed, 8 insertions, 4 deletions
diff --git a/include/llvm/MC/MCStreamer.h b/include/llvm/MC/MCStreamer.h
index 1ded9f7..cb36564 100644
--- a/include/llvm/MC/MCStreamer.h
+++ b/include/llvm/MC/MCStreamer.h
@@ -355,7 +355,8 @@ namespace llvm {
/// Takes ownership of \arg TAB and \arg CE.
MCStreamer *createWinCOFFStreamer(MCContext &Ctx,
TargetAsmBackend &TAB,
- MCCodeEmitter &CE, raw_ostream &OS);
+ MCCodeEmitter &CE, raw_ostream &OS,
+ bool RelaxAll = false);
/// createLoggingStreamer - Create a machine code streamer which just logs the
/// API calls and then dispatches to another streamer.
diff --git a/lib/MC/WinCOFFStreamer.cpp b/lib/MC/WinCOFFStreamer.cpp
index 71557f0..d3a58df 100644
--- a/lib/MC/WinCOFFStreamer.cpp
+++ b/lib/MC/WinCOFFStreamer.cpp
@@ -339,7 +339,10 @@ namespace llvm
MCStreamer *createWinCOFFStreamer(MCContext &Context,
TargetAsmBackend &TAB,
MCCodeEmitter &CE,
- raw_ostream &OS) {
- return new WinCOFFStreamer(Context, TAB, CE, OS);
+ raw_ostream &OS,
+ bool RelaxAll) {
+ WinCOFFStreamer *S = new WinCOFFStreamer(Context, TAB, CE, OS);
+ S->getAssembler().setRelaxAll(RelaxAll);
+ return S;
}
}
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index 0552a8e..cb1bb35 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -47,7 +47,7 @@ static MCStreamer *createMCStreamer(const Target &T, const std::string &TT,
Triple TheTriple(TT);
switch (TheTriple.getOS()) {
case Triple::Win32:
- return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS);
+ return createWinCOFFStreamer(Ctx, TAB, *_Emitter, _OS, RelaxAll);
default:
return createMachOStreamer(Ctx, TAB, _OS, _Emitter, RelaxAll);
}