aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/TableGen/CodeGenTarget.cpp4
-rw-r--r--utils/TableGen/InstrInfoEmitter.cpp3
2 files changed, 5 insertions, 2 deletions
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 9e45f2ea87..f8410c17ff 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -19,6 +19,7 @@
#include "Record.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/Support/CommandLine.h"
+#include "llvm/Target/TargetInstrInfo.h"
#include <set>
#include <algorithm>
using namespace llvm;
@@ -294,7 +295,8 @@ static std::pair<unsigned, unsigned> parseConstraint(const std::string &CStr,
unsigned TIdx = I->getOperandNamed(Name);
if (TIdx >= FIdx)
throw "Illegal tied-to operand constraint '" + CStr + "'";
- return std::make_pair(FIdx, (TIdx << 16) | 1);
+ return std::make_pair(FIdx, (TIdx << 16) |
+ (1 << (unsigned)TargetInstrInfo::TIED_TO));
}
static std::vector<unsigned> parseConstraints(const std::string &CStr,
diff --git a/utils/TableGen/InstrInfoEmitter.cpp b/utils/TableGen/InstrInfoEmitter.cpp
index ed932db18b..bf69d08523 100644
--- a/utils/TableGen/InstrInfoEmitter.cpp
+++ b/utils/TableGen/InstrInfoEmitter.cpp
@@ -14,6 +14,7 @@
#include "InstrInfoEmitter.h"
#include "CodeGenTarget.h"
+#include "llvm/Target/TargetInstrInfo.h"
#include "Record.h"
#include <algorithm>
using namespace llvm;
@@ -89,7 +90,7 @@ GetOperandInfo(const CodeGenInstruction &Inst) {
// For backward compatibility: isTwoAddress means operand 1 is tied to
// operand 0.
if (Inst.isTwoAddress)
- Result[1].second |= 1;
+ Result[1].second |= (0 << 16) | (1 << (unsigned)TargetInstrInfo::TIED_TO);
return Result;
}