summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-03-07 22:47:14 +0000
committerBill Wendling <isanbard@gmail.com>2011-03-07 22:47:14 +0000
commitec9d2633f12aec93a13bcabf4c1c81ae07da86d6 (patch)
tree7b11bcfad67a4dd6d045492d967c17e65f38fe0f /clang/lib/CodeGen
parentd648135902e94fe8ec1e3387b8a6b21fb476b8fd (diff)
downloadbcm5719-llvm-ec9d2633f12aec93a13bcabf4c1c81ae07da86d6.tar.gz
bcm5719-llvm-ec9d2633f12aec93a13bcabf4c1c81ae07da86d6.zip
When we adjust the inline ASM type, we need to take into account an early
clobber with the 'y' constraint. Otherwise, we get the wrong return type and an assert, because it created a '<1 x i64>' vector type instead of the x86_mmx type. llvm-svn: 127185
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r--clang/lib/CodeGen/TargetInfo.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp
index 2ffc840b9f9..bd88192856c 100644
--- a/clang/lib/CodeGen/TargetInfo.cpp
+++ b/clang/lib/CodeGen/TargetInfo.cpp
@@ -358,7 +358,7 @@ bool UseX86_MMXType(const llvm::Type *IRType) {
static const llvm::Type* X86AdjustInlineAsmType(CodeGen::CodeGenFunction &CGF,
llvm::StringRef Constraint,
const llvm::Type* Ty) {
- if (Constraint=="y" && Ty->isVectorTy())
+ if ((Constraint == "y" || Constraint == "&y") && Ty->isVectorTy())
return llvm::Type::getX86_MMXTy(CGF.getLLVMContext());
return Ty;
}
OpenPOWER on IntegriCloud