aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGStmt.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-06-11 21:52:25 +0000
committerChad Rosier <mcrosier@apple.com>2012-06-11 21:52:25 +0000
commitb1756ef7b643fcc79dce0bdd1539a9b2eb8cf9e0 (patch)
tree376de2e04a74fe1c33240746672800f51fbe2080 /lib/CodeGen/CGStmt.cpp
parent8cd64b4c5553fa6284d248336cb7c82dc960a394 (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.cpp39
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.");
}