diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Basic/Targets.cpp | 2 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 58 |
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; |

