summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-02-28 17:11:49 +0000
committerAnders Carlsson <andersca@mac.com>2009-02-28 17:11:49 +0000
commit5843635b371fa378b8ccab671e94f3864156c487 (patch)
tree8c9aeab092dfe7e17321022a0434deb5573f267d /clang/lib/Basic
parent70f41d6f07e160833840290d98fffb36e5e96d12 (diff)
downloadbcm5719-llvm-5843635b371fa378b8ccab671e94f3864156c487.tar.gz
bcm5719-llvm-5843635b371fa378b8ccab671e94f3864156c487.zip
TargetInfo::validateAsmConstraint now takes a reference to the full constraints string. This will make it possible to support multi-character constraints. No functionality change (for now).
llvm-svn: 65696
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/TargetInfo.cpp4
-rw-r--r--clang/lib/Basic/Targets.cpp18
2 files changed, 11 insertions, 11 deletions
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index 82b6c190cda..923a75d6228 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -180,7 +180,7 @@ bool TargetInfo::validateOutputConstraint(const char *Name,
while (*Name) {
switch (*Name) {
default:
- if (!validateAsmConstraint(*Name, info)) {
+ if (!validateAsmConstraint(Name, info)) {
// FIXME: We temporarily return false
// so we can add more constraints as we hit it.
// Eventually, an unknown constraint should just be treated as 'g'.
@@ -258,7 +258,7 @@ bool TargetInfo::validateInputConstraint(const char *Name,
// The constraint should have the same info as the respective
// output constraint.
info = (ConstraintInfo)(info|OutputConstraints[i]);
- } else if (!validateAsmConstraint(*Name, info)) {
+ } else if (!validateAsmConstraint(Name, info)) {
// FIXME: This error return is in place temporarily so we can
// add more constraints as we hit it. Eventually, an unknown
// constraint should just be treated as 'g'.
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 1aa82829bbe..ef17d2d3421 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -279,9 +279,9 @@ public:
unsigned &NumNames) const;
virtual void getGCCRegAliases(const GCCRegAlias *&Aliases,
unsigned &NumAliases) const;
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
- switch (c) {
+ switch (*Name) {
default: return false;
case 'O': // Zero
return true;
@@ -491,7 +491,7 @@ public:
Aliases = GCCRegAliases;
NumAliases = llvm::array_lengthof(GCCRegAliases);
}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const;
virtual std::string convertConstraint(const char Constraint) const;
virtual const char *getClobbers() const {
@@ -500,9 +500,9 @@ public:
};
bool
-X86TargetInfo::validateAsmConstraint(char c,
+X86TargetInfo::validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
- switch (c) {
+ switch (*Name) {
default: return false;
case 'a': // eax.
case 'b': // ebx.
@@ -782,10 +782,10 @@ public:
Aliases = 0;
NumAliases = 0;
}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
// FIXME: Check if this is complete
- switch (c) {
+ switch (*Name) {
default:
case 'l': // r0-r7
case 'h': // r8-r15
@@ -847,7 +847,7 @@ public:
unsigned &NumNames) const;
virtual void getGCCRegAliases(const GCCRegAlias *&Aliases,
unsigned &NumAliases) const;
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
// FIXME: Implement!
return false;
@@ -958,7 +958,7 @@ namespace {
virtual const char *getTargetPrefix() const {return "";}
virtual void getGCCRegNames(const char * const *&Names,
unsigned &NumNames) const {}
- virtual bool validateAsmConstraint(char c,
+ virtual bool validateAsmConstraint(const char *&Name,
TargetInfo::ConstraintInfo &info) const {
return true;
}
OpenPOWER on IntegriCloud