aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaChecking.cpp
diff options
context:
space:
mode:
authorAlbert Gutowski <agutowski@google.com>2016-10-12 17:28:44 +0000
committerAlbert Gutowski <agutowski@google.com>2016-10-12 17:28:44 +0000
commit0fd6e9608e3730f2d99255786af22e46d975af9b (patch)
tree98f93373d89e4e5a23181d726c2bc99b24f07c92 /clang/lib/Sema/SemaChecking.cpp
parent025e8614ab849983034e5abb3c0afbfa4e1faff1 (diff)
downloadllvm-0fd6e9608e3730f2d99255786af22e46d975af9b.zip
llvm-0fd6e9608e3730f2d99255786af22e46d975af9b.tar.gz
llvm-0fd6e9608e3730f2d99255786af22e46d975af9b.tar.bz2
Move x86-64 builtins from SemaChecking.cpp to BuiltinsX86_64.def
Summary: Follow-up to https://reviews.llvm.org/D24598 (separating builtins for x84-64 and i386). Reviewers: hans, thakis, rnk Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25494 llvm-svn: 284026
Diffstat (limited to 'clang/lib/Sema/SemaChecking.cpp')
-rw-r--r--clang/lib/Sema/SemaChecking.cpp58
1 files changed, 0 insertions, 58 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp
index 013120a..0d0031a 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;