summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2011-02-19 21:39:31 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2011-02-19 21:39:31 +0000
commita6d2bff0c5b03eb394c32f291a883059f68f4f37 (patch)
tree73c83ae0d2b1189db5af86dc643f263d4b845df0 /clang/lib/Basic
parentf7fa56f25f4b14e0886b2acdc15f399769c1d5b0 (diff)
downloadbcm5719-llvm-a6d2bff0c5b03eb394c32f291a883059f68f4f37.tar.gz
bcm5719-llvm-a6d2bff0c5b03eb394c32f291a883059f68f4f37.zip
Revert 125820 and 125819 to fix PR9266.
llvm-svn: 126050
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index a8198e4ae79..b3501a31c80 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -1014,6 +1014,9 @@ public:
}
virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const;
+ virtual const llvm::Type* adjustInlineAsmType(std::string& Constraint,
+ const llvm::Type* Ty,
+ llvm::LLVMContext& Context) const;
virtual std::string convertConstraint(const char Constraint) const;
virtual const char *getClobbers() const {
return "~{dirflag},~{fpsr},~{flags}";
@@ -1338,6 +1341,15 @@ X86TargetInfo::validateAsmConstraint(const char *&Name,
return false;
}
+const llvm::Type*
+X86TargetInfo::adjustInlineAsmType(std::string& Constraint,
+ const llvm::Type* Ty,
+ llvm::LLVMContext &Context) const {
+ if (Constraint=="y" && Ty->isVectorTy())
+ return llvm::Type::getX86_MMXTy(Context);
+ return Ty;
+}
+
std::string
X86TargetInfo::convertConstraint(const char Constraint) const {
OpenPOWER on IntegriCloud