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
diff --git a/lib/Target/Mips/MipsSubtarget.cpp b/lib/Target/Mips/MipsSubtarget.cpp
index 530920b..48f58a5 100644
--- a/lib/Target/Mips/MipsSubtarget.cpp
+++ b/lib/Target/Mips/MipsSubtarget.cpp
@@ -65,9 +65,9 @@
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.