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;
}
// Abicall is the default for O32 ABI and is ignored
// for EABI.
if (NotABICall || isABI_EABI())
// Abicall is the default for O32 ABI, but is disabled within EABI and in
// static code.
if (NotABICall || isABI_EABI() || (TM.getRelocationModel() == Reloc::Static))
HasABICall = false;
// 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)
{
// 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,