#include "llvm/Target/TargetMachineRegistry.h"
using namespace llvm;
+/// MipsTargetMachineModule - Note that this is used on hosts that
+/// cannot link in a library unless there are references into the
+/// library. In particular, it seems that it is not possible to get
+/// things to work on Win32 without this. Though it is unused, do not
+/// remove it.
+extern "C" int MipsTargetMachineModule;
+int MipsTargetMachineModule = 0;
+
// Register the target.
-static RegisterTarget<MipsTargetMachine> X("mips", " Mips");
-static RegisterTarget<MipselTargetMachine> Y("mipsel", " Mipsel");
+static RegisterTarget<MipsTargetMachine> X("mips", "Mips");
+static RegisterTarget<MipselTargetMachine> Y("mipsel", "Mipsel");
const TargetAsmInfo *MipsTargetMachine::
createTargetAsmInfo() const
TLInfo(*this)
{
// Abicall enables PIC by default
- if (Subtarget.hasABICall() && (getRelocationModel() != Reloc::Static))
+ if (Subtarget.hasABICall())
setRelocationModel(Reloc::PIC_);
// TODO: create an option to enable long calls, like -mlong-calls,
// true if AssemblyEmitter is supported
bool MipsTargetMachine::
addAssemblyEmitter(PassManagerBase &PM, bool Fast,
- std::ostream &Out)
+ raw_ostream &Out)
{
// Output assembly language.
PM.add(createMipsCodePrinterPass(Out, *this));