diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-19 21:39:31 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-19 21:39:31 +0000 |
| commit | a6d2bff0c5b03eb394c32f291a883059f68f4f37 (patch) | |
| tree | 73c83ae0d2b1189db5af86dc643f263d4b845df0 /clang/lib/Basic | |
| parent | f7fa56f25f4b14e0886b2acdc15f399769c1d5b0 (diff) | |
| download | bcm5719-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.cpp | 12 |
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 { |

