diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-03-07 22:47:14 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-03-07 22:47:14 +0000 |
commit | ec9d2633f12aec93a13bcabf4c1c81ae07da86d6 (patch) | |
tree | 7b11bcfad67a4dd6d045492d967c17e65f38fe0f /clang/lib/CodeGen | |
parent | d648135902e94fe8ec1e3387b8a6b21fb476b8fd (diff) | |
download | bcm5719-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.cpp | 2 |
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; } |