diff options
author | Chad Rosier <mcrosier@apple.com> | 2012-06-11 21:52:25 +0000 |
---|---|---|
committer | Chad Rosier <mcrosier@apple.com> | 2012-06-11 21:52:25 +0000 |
commit | b1756ef7b643fcc79dce0bdd1539a9b2eb8cf9e0 (patch) | |
tree | 376de2e04a74fe1c33240746672800f51fbe2080 /lib/CodeGen/CGStmt.cpp | |
parent | 8cd64b4c5553fa6284d248336cb7c82dc960a394 (diff) |
Make CodeGenFunction::EmitMSAsmStmt throw a fatal error as MS-style inline
assembly is completely untested and unsupported.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158329 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGStmt.cpp')
-rw-r--r-- | lib/CodeGen/CGStmt.cpp | 39 |
1 files changed, 2 insertions, 37 deletions
diff --git a/lib/CodeGen/CGStmt.cpp b/lib/CodeGen/CGStmt.cpp index 2f06a8ed28..aabb8cdb71 100644 --- a/lib/CodeGen/CGStmt.cpp +++ b/lib/CodeGen/CGStmt.cpp @@ -1684,41 +1684,6 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) { } void CodeGenFunction::EmitMSAsmStmt(const MSAsmStmt &S) { - // Analyze the asm string to decompose it into its pieces. We know that Sema - // has already done this, so it is guaranteed to be successful. - - // Get all the output and input constraints together. - - std::vector<llvm::Value*> Args; - std::vector<llvm::Type *> ArgTypes; - std::string Constraints; - - // Keep track of inout constraints. - - // Append the "input" part of inout constraints last. - - // Clobbers - - // Add machine specific clobbers - std::string MachineClobbers = Target.getClobbers(); - if (!MachineClobbers.empty()) { - if (!Constraints.empty()) - Constraints += ','; - Constraints += MachineClobbers; - } - - llvm::Type *ResultType = VoidTy; - - llvm::FunctionType *FTy = - llvm::FunctionType::get(ResultType, ArgTypes, false); - - llvm::InlineAsm *IA = - llvm::InlineAsm::get(FTy, *S.getAsmString(), Constraints, true); - llvm::CallInst *Result = Builder.CreateCall(IA, Args); - Result->addAttribute(~0, llvm::Attribute::NoUnwind); - - // Slap the source location of the inline asm into a !srcloc metadata on the - // call. - - // Extract all of the register value results from the asm. + // Analyze the asm string to decompose it into its pieces. + llvm::report_fatal_error("MS-style asm codegen isn't yet supported."); } |