forked from OSchip/llvm-project
Add in -msse4.1 and -msse4.2 options and continuing a rather
hacky solution for translating. Expanded on comment explaining the hack a bit. llvm-svn: 97714
This commit is contained in:
parent
c58aea0086
commit
399ffa55d2
|
@ -64,6 +64,7 @@ def clang_ignored_m_Group : OptionGroup<"<clang ignored m group>">,
|
|||
// , => _COMMA
|
||||
// = => _EQ
|
||||
// C++ => CXX
|
||||
// . => _
|
||||
|
||||
// Developer Driver Options
|
||||
|
||||
|
@ -420,6 +421,8 @@ def mno_sse2 : Flag<"-mno-sse2">, Group<m_x86_Features_Group>;
|
|||
def mno_sse3 : Flag<"-mno-sse3">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4a : Flag<"-mno-sse4a">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4 : Flag<"-mno-sse4">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4_1 : Flag<"-mno-sse4.1">, Group<m_x86_Features_Group>;
|
||||
def mno_sse4_2 : Flag<"-mno-sse4.2">, Group<m_x86_Features_Group>;
|
||||
def mno_sse : Flag<"-mno-sse">, Group<m_x86_Features_Group>;
|
||||
def mno_ssse3 : Flag<"-mno-ssse3">, Group<m_x86_Features_Group>;
|
||||
|
||||
|
@ -434,6 +437,8 @@ def msse2 : Flag<"-msse2">, Group<m_x86_Features_Group>;
|
|||
def msse3 : Flag<"-msse3">, Group<m_x86_Features_Group>;
|
||||
def msse4a : Flag<"-msse4a">, Group<m_x86_Features_Group>;
|
||||
def msse4 : Flag<"-msse4">, Group<m_x86_Features_Group>;
|
||||
def msse4_1 : Flag<"-msse4.1">, Group<m_x86_Features_Group>;
|
||||
def msse4_2 : Flag<"-msse4.2">, Group<m_x86_Features_Group>;
|
||||
def msse : Flag<"-msse">, Group<m_x86_Features_Group>;
|
||||
def mssse3 : Flag<"-mssse3">, Group<m_x86_Features_Group>;
|
||||
def mthumb : Flag<"-mthumb">, Group<m_Group>;
|
||||
|
|
|
@ -734,8 +734,10 @@ void X86TargetInfo::getDefaultFeatures(const std::string &CPU,
|
|||
bool X86TargetInfo::setFeatureEnabled(llvm::StringMap<bool> &Features,
|
||||
const std::string &Name,
|
||||
bool Enabled) const {
|
||||
// FIXME: This *really* should not be here.
|
||||
if (!Features.count(Name) && Name != "sse4")
|
||||
// FIXME: This *really* should not be here. We need some way of translating
|
||||
// options into llvm subtarget features.
|
||||
if (!Features.count(Name) &&
|
||||
(Name != "sse4" && Name != "sse4.2" && Name != "sse4.1"))
|
||||
return false;
|
||||
|
||||
if (Enabled) {
|
||||
|
@ -751,9 +753,12 @@ bool X86TargetInfo::setFeatureEnabled(llvm::StringMap<bool> &Features,
|
|||
else if (Name == "ssse3")
|
||||
Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
|
||||
Features["ssse3"] = true;
|
||||
else if (Name == "sse4")
|
||||
else if (Name == "sse4" || Name == "sse4.2")
|
||||
Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
|
||||
Features["ssse3"] = Features["sse41"] = Features["sse42"] = true;
|
||||
else if (Name == "sse4.1")
|
||||
Features["mmx"] = Features["sse"] = Features["sse2"] = Features["sse3"] =
|
||||
Features["ssse3"] = Features["sse41"] = true;
|
||||
else if (Name == "3dnow")
|
||||
Features["3dnowa"] = true;
|
||||
else if (Name == "3dnowa")
|
||||
|
|
Loading…
Reference in New Issue