Fixed Bug 2751

http://llvm.org/bugs/show_bug.cgi?id=2751

Abicall was enabled even when static code model was provided 
in the command line.
The correct behavior is to disable abicall when static is
specified.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56228 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bruno Cardoso Lopes 2008-09-15 21:06:55 +00:00
parent 5eb0cecbc5
commit b3d7299694
2 changed files with 4 additions and 4 deletions

View File

@ -65,9 +65,9 @@ MipsSubtarget::MipsSubtarget(const TargetMachine &TM, const Module &M,
HasCondMov = true; HasCondMov = true;
} }
// Abicall is the default for O32 ABI and is ignored // Abicall is the default for O32 ABI, but is disabled within EABI and in
// for EABI. // static code.
if (NotABICall || isABI_EABI()) if (NotABICall || isABI_EABI() || (TM.getRelocationModel() == Reloc::Static))
HasABICall = false; HasABICall = false;
// TODO: disable when handling 64 bit symbols in the future. // TODO: disable when handling 64 bit symbols in the future.

View File

@ -46,7 +46,7 @@ MipsTargetMachine(const Module &M, const std::string &FS, bool isLittle=false):
TLInfo(*this) TLInfo(*this)
{ {
// Abicall enables PIC by default // Abicall enables PIC by default
if (Subtarget.hasABICall() && (getRelocationModel() != Reloc::Static)) if (Subtarget.hasABICall())
setRelocationModel(Reloc::PIC_); setRelocationModel(Reloc::PIC_);
// TODO: create an option to enable long calls, like -mlong-calls, // TODO: create an option to enable long calls, like -mlong-calls,