diff options
author | Albert Gutowski <agutowski@google.com> | 2016-10-12 17:28:44 +0000 |
---|---|---|
committer | Albert Gutowski <agutowski@google.com> | 2016-10-12 17:28:44 +0000 |
commit | 0fd6e9608e3730f2d99255786af22e46d975af9b (patch) | |
tree | 98f93373d89e4e5a23181d726c2bc99b24f07c92 /clang/lib/Sema/SemaChecking.cpp | |
parent | 025e8614ab849983034e5abb3c0afbfa4e1faff1 (diff) | |
download | llvm-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.cpp | 58 |
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; |