summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp2
-rw-r--r--clang/lib/Sema/SemaChecking.cpp58
2 files changed, 2 insertions, 58 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 52dd91bce04..a09da3ca612 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -2362,6 +2362,8 @@ const Builtin::Info BuiltinInfoX86[] = {
#define BUILTIN(ID, TYPE, ATTRS) \
{ #ID, TYPE, ATTRS, nullptr, ALL_LANGUAGES, nullptr },
+#define TARGET_BUILTIN(ID, TYPE, ATTRS, FEATURE) \
+ { #ID, TYPE, ATTRS, nullptr, ALL_LANGUAGES, FEATURE },
#define TARGET_HEADER_BUILTIN(ID, TYPE, ATTRS, HEADER, LANGS, FEATURE) \
{ #ID, TYPE, ATTRS, HEADER, LANGS, FEATURE },
#include "clang/Basic/BuiltinsX86_64.def"
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 013120a8bd1..0d0031aef72 100644
--- a/clang/lib/Sema/SemaChecking.cpp
+++ b/clang/lib/Sema/SemaChecking.cpp
@@ -1590,58 +1590,6 @@ static bool SemaBuiltinCpuSupports(Sema &S, CallExpr *TheCall) {
return false;
}
-static bool isX86_64Builtin(unsigned BuiltinID) {
- // These builtins only work on x86-64 targets.
- switch (BuiltinID) {
- case X86::BI__builtin_ia32_addcarryx_u64:
- case X86::BI__builtin_ia32_addcarry_u64:
- case X86::BI__builtin_ia32_subborrow_u64:
- case X86::BI__builtin_ia32_readeflags_u64:
- case X86::BI__builtin_ia32_writeeflags_u64:
- case X86::BI__builtin_ia32_bextr_u64:
- case X86::BI__builtin_ia32_bextri_u64:
- case X86::BI__builtin_ia32_bzhi_di:
- case X86::BI__builtin_ia32_pdep_di:
- case X86::BI__builtin_ia32_pext_di:
- case X86::BI__builtin_ia32_crc32di:
- case X86::BI__builtin_ia32_fxsave64:
- case X86::BI__builtin_ia32_fxrstor64:
- case X86::BI__builtin_ia32_xsave64:
- case X86::BI__builtin_ia32_xrstor64:
- case X86::BI__builtin_ia32_xsaveopt64:
- case X86::BI__builtin_ia32_xrstors64:
- case X86::BI__builtin_ia32_xsavec64:
- case X86::BI__builtin_ia32_xsaves64:
- case X86::BI__builtin_ia32_rdfsbase64:
- case X86::BI__builtin_ia32_rdgsbase64:
- case X86::BI__builtin_ia32_wrfsbase64:
- case X86::BI__builtin_ia32_wrgsbase64:
- case X86::BI__builtin_ia32_pbroadcastq512_gpr_mask:
- case X86::BI__builtin_ia32_pbroadcastq256_gpr_mask:
- case X86::BI__builtin_ia32_pbroadcastq128_gpr_mask:
- case X86::BI__builtin_ia32_vcvtsd2si64:
- case X86::BI__builtin_ia32_vcvtsd2usi64:
- case X86::BI__builtin_ia32_vcvtss2si64:
- case X86::BI__builtin_ia32_vcvtss2usi64:
- case X86::BI__builtin_ia32_vcvttsd2si64:
- case X86::BI__builtin_ia32_vcvttsd2usi64:
- case X86::BI__builtin_ia32_vcvttss2si64:
- case X86::BI__builtin_ia32_vcvttss2usi64:
- case X86::BI__builtin_ia32_cvtss2si64:
- case X86::BI__builtin_ia32_cvttss2si64:
- case X86::BI__builtin_ia32_cvtsd2si64:
- case X86::BI__builtin_ia32_cvttsd2si64:
- case X86::BI__builtin_ia32_cvtsi2sd64:
- case X86::BI__builtin_ia32_cvtsi2ss64:
- case X86::BI__builtin_ia32_cvtusi2sd64:
- case X86::BI__builtin_ia32_cvtusi2ss64:
- case X86::BI__builtin_ia32_rdseed64_step:
- return true;
- }
-
- return false;
-}
-
// Check if the rounding mode is legal.
bool Sema::CheckX86BuiltinRoundingOrSAE(unsigned BuiltinID, CallExpr *TheCall) {
// Indicates if this instruction has rounding control or just SAE.
@@ -1838,12 +1786,6 @@ bool Sema::CheckX86BuiltinFunctionCall(unsigned BuiltinID, CallExpr *TheCall) {
if (BuiltinID == X86::BI__builtin_ms_va_start)
return SemaBuiltinMSVAStart(TheCall);
- // Check for 64-bit only builtins on a 32-bit target.
- const llvm::Triple &TT = Context.getTargetInfo().getTriple();
- if (TT.getArch() != llvm::Triple::x86_64 && isX86_64Builtin(BuiltinID))
- return Diag(TheCall->getCallee()->getLocStart(),
- diag::err_x86_builtin_32_bit_tgt);
-
// If the intrinsic has rounding or SAE make sure its valid.
if (CheckX86BuiltinRoundingOrSAE(BuiltinID, TheCall))
return true;
OpenPOWER on IntegriCloud