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
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.
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,