forked from OSchip/llvm-project
Add -m16 option for using x86-*-*-code16 triple
llvm-svn: 199754
This commit is contained in:
parent
5569381aed
commit
6996f6b9ec
|
@ -951,6 +951,7 @@ def lazy__framework : Separate<["-"], "lazy_framework">, Flags<[LinkerInput]>;
|
|||
def lazy__library : Separate<["-"], "lazy_library">, Flags<[LinkerInput]>;
|
||||
def EL : Flag<["-"], "EL">, Flags<[DriverOption]>;
|
||||
def EB : Flag<["-"], "EB">, Flags<[DriverOption]>;
|
||||
def m16 : Flag<["-"], "m16">, Group<m_Group>, Flags<[DriverOption, CoreOption]>;
|
||||
def m32 : Flag<["-"], "m32">, Group<m_Group>, Flags<[DriverOption, CoreOption]>;
|
||||
def mqdsp6_compat : Flag<["-"], "mqdsp6-compat">, Group<m_Group>, Flags<[DriverOption,CC1Option]>,
|
||||
HelpText<"Enable hexagon-qdsp6 backward compatibility">;
|
||||
|
|
|
@ -1900,13 +1900,22 @@ static llvm::Triple computeTargetTriple(StringRef DefaultTargetTriple,
|
|||
Target.getOS() == llvm::Triple::Minix)
|
||||
return Target;
|
||||
|
||||
// Handle pseudo-target flags '-m32' and '-m64'.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_m32, options::OPT_m64)) {
|
||||
// Handle pseudo-target flags '-m64', '-m32' and '-m16'.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_m64, options::OPT_m32,
|
||||
options::OPT_m16)) {
|
||||
llvm::Triple::ArchType AT;
|
||||
if (A->getOption().matches(options::OPT_m32))
|
||||
AT = Target.get32BitArchVariant().getArch();
|
||||
else
|
||||
if (A->getOption().matches(options::OPT_m64))
|
||||
AT = Target.get64BitArchVariant().getArch();
|
||||
else if (A->getOption().matches(options::OPT_m32))
|
||||
AT = Target.get32BitArchVariant().getArch();
|
||||
else if (A->getOption().matches(options::OPT_m16)) {
|
||||
AT = Target.get32BitArchVariant().getArch();
|
||||
if (AT == llvm::Triple::x86)
|
||||
Target.setEnvironment(llvm::Triple::CODE16);
|
||||
else
|
||||
AT = llvm::Triple::UnknownArch;
|
||||
}
|
||||
|
||||
if (AT != llvm::Triple::UnknownArch)
|
||||
Target.setArch(AT);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
// RUN: %clang -target i386 -m16 -### -c %s 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK: Target: i386-{{.*}}-{{.*}}-code16
|
||||
|
Loading…
Reference in New Issue