forked from OSchip/llvm-project
Hexagon V5 (floating point) support in cfe.
llvm-svn: 155363
This commit is contained in:
parent
43bcb970e5
commit
7039d0eaee
File diff suppressed because it is too large
Load Diff
|
@ -36,6 +36,7 @@ def i_Group : OptionGroup<"<i group>">, Group<CompileOnly_Group>;
|
||||||
def clang_i_Group : OptionGroup<"<clang i group>">, Group<i_Group>;
|
def clang_i_Group : OptionGroup<"<clang i group>">, Group<i_Group>;
|
||||||
def m_Group : OptionGroup<"<m group>">, Group<CompileOnly_Group>;
|
def m_Group : OptionGroup<"<m group>">, Group<CompileOnly_Group>;
|
||||||
def m_x86_Features_Group : OptionGroup<"<m x86 features group>">, Group<m_Group>;
|
def m_x86_Features_Group : OptionGroup<"<m x86 features group>">, Group<m_Group>;
|
||||||
|
def m_hexagon_Features_Group : OptionGroup<"<m hexagon features group>">, Group<m_Group>;
|
||||||
def u_Group : OptionGroup<"<u group>">;
|
def u_Group : OptionGroup<"<u group>">;
|
||||||
|
|
||||||
def pedantic_Group : OptionGroup<"<pedantic group>">,
|
def pedantic_Group : OptionGroup<"<pedantic group>">,
|
||||||
|
@ -951,6 +952,7 @@ def _warn_ : Joined<"--warn-">, Alias<W_Joined>;
|
||||||
def _write_dependencies : Flag<"--write-dependencies">, Alias<MD>;
|
def _write_dependencies : Flag<"--write-dependencies">, Alias<MD>;
|
||||||
def _write_user_dependencies : Flag<"--write-user-dependencies">, Alias<MMD>;
|
def _write_user_dependencies : Flag<"--write-user-dependencies">, Alias<MMD>;
|
||||||
def _ : Joined<"--">, Flags<[Unsupported]>;
|
def _ : Joined<"--">, Flags<[Unsupported]>;
|
||||||
|
def mieee_rnd_near : Flag<"-mieee-rnd-near">, Group<m_hexagon_Features_Group>;
|
||||||
|
|
||||||
// Special internal option to handle -Xlinker --no-demangle.
|
// Special internal option to handle -Xlinker --no-demangle.
|
||||||
def Z_Xlinker__no_demangle : Flag<"-Z-Xlinker-no-demangle">,
|
def Z_Xlinker__no_demangle : Flag<"-Z-Xlinker-no-demangle">,
|
||||||
|
|
|
@ -3015,8 +3015,8 @@ public:
|
||||||
HexagonTargetInfo(const std::string& triple) : TargetInfo(triple) {
|
HexagonTargetInfo(const std::string& triple) : TargetInfo(triple) {
|
||||||
BigEndian = false;
|
BigEndian = false;
|
||||||
DescriptionString = ("e-p:32:32:32-"
|
DescriptionString = ("e-p:32:32:32-"
|
||||||
"i64:64:64-i32:32:32-"
|
"i64:64:64-i32:32:32-i16:16:16-i1:32:32"
|
||||||
"i16:16:16-i1:32:32-a:0:0");
|
"f64:64:64-f32:32:32-a0:0-n32");
|
||||||
|
|
||||||
// {} in inline assembly are packet specifiers, not assembly variant
|
// {} in inline assembly are packet specifiers, not assembly variant
|
||||||
// specifiers.
|
// specifiers.
|
||||||
|
@ -3057,6 +3057,7 @@ public:
|
||||||
.Case("hexagonv2", "2")
|
.Case("hexagonv2", "2")
|
||||||
.Case("hexagonv3", "3")
|
.Case("hexagonv3", "3")
|
||||||
.Case("hexagonv4", "4")
|
.Case("hexagonv4", "4")
|
||||||
|
.Case("hexagonv5", "5")
|
||||||
.Default(0);
|
.Default(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3111,6 +3112,14 @@ void HexagonTargetInfo::getTargetDefines(const LangOptions &Opts,
|
||||||
Builder.defineMacro("__QDSP6_ARCH__", "4");
|
Builder.defineMacro("__QDSP6_ARCH__", "4");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(CPU == "hexagonv5") {
|
||||||
|
Builder.defineMacro("__HEXAGON_V5__");
|
||||||
|
Builder.defineMacro("__HEXAGON_ARCH__", "5");
|
||||||
|
if(Opts.HexagonQdsp6Compat) {
|
||||||
|
Builder.defineMacro("__QDSP6_V5__");
|
||||||
|
Builder.defineMacro("__QDSP6_ARCH__", "5");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * const HexagonTargetInfo::GCCRegNames[] = {
|
const char * const HexagonTargetInfo::GCCRegNames[] = {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1100,6 +1100,12 @@ void Clang::AddHexagonTargetArgs(const ArgList &Args,
|
||||||
A->claim();
|
A->claim();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Args.hasArg(options::OPT_fno_short_enums))
|
||||||
|
CmdArgs.push_back("-fshort-enums");
|
||||||
|
if (Args.getLastArg(options::OPT_mieee_rnd_near)) {
|
||||||
|
CmdArgs.push_back ("-mllvm");
|
||||||
|
CmdArgs.push_back ("-enable-hexagon-ieee-rnd-near");
|
||||||
|
}
|
||||||
CmdArgs.push_back ("-mllvm");
|
CmdArgs.push_back ("-mllvm");
|
||||||
CmdArgs.push_back ("-machine-sink-split=0");
|
CmdArgs.push_back ("-machine-sink-split=0");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue