OSDN Git Service

Revert r232374: [hexagon] Distinguish the 'o', 'v', and 'm' inline assembly memory...
authorDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 16 Mar 2015 14:21:22 +0000 (14:21 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Mon, 16 Mar 2015 14:21:22 +0000 (14:21 +0000)
2007-12-17-InvokeAsm.ll fails on the buildbot but not on my own system. Will investigate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232376 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/IR/InlineAsm.h
lib/Target/Hexagon/HexagonISelDAGToDAG.cpp
lib/Target/Hexagon/HexagonISelLowering.h

index ea3708d..e94323a 100644 (file)
@@ -240,8 +240,8 @@ public:
     // constraint codes for all targets.
     Constraint_Unknown = 0,
     Constraint_m,
-    Constraint_o,
-    Constraint_v,
+    Constraint_o, // Unused at the moment since Constraint_m is always used.
+    Constraint_v, // Unused at the moment since Constraint_m is always used.
     Constraints_Max = Constraint_v,
     Constraints_ShiftAmount = 16,
 
index d746df9..795faf9 100644 (file)
@@ -1108,11 +1108,11 @@ SelectInlineAsmMemoryOperand(const SDValue &Op, unsigned ConstraintID,
   SDValue Inp = Op, Res;
 
   switch (ConstraintID) {
+  case InlineAsm::Constraint_o:   // Offsetable.
+  case InlineAsm::Constraint_v:   // Not offsetable.
   default:
     return true;
-  case InlineAsm::Constraint_o: // Offsetable.
-  case InlineAsm::Constraint_v: // Not offsetable.
-  case InlineAsm::Constraint_m: // Memory.
+  case InlineAsm::Constraint_m:   // Memory.
     if (SelectAddrFI(Inp, Res))
       OutOps.push_back(Res);
     else
index 99214c8..7b772f0 100644 (file)
@@ -185,11 +185,8 @@ bool isPositiveHalfWord(SDNode *N);
 
     unsigned getInlineAsmMemConstraint(
         const std::string &ConstraintCode) const override {
-      if (ConstraintCode == "o")
-        return InlineAsm::Constraint_o;
-      else if (ConstraintCode == "v")
-        return InlineAsm::Constraint_v;
-      return TargetLowering::getInlineAsmMemConstraint(ConstraintCode);
+      // FIXME: Map different constraints differently.
+      return InlineAsm::Constraint_m;
     }
 
     // Intrinsics