From: Daniel Sanders Date: Tue, 17 Mar 2015 12:00:04 +0000 (+0000) Subject: Fix r232466 by adding 'i' to the mappings for inline assembly memory constraints. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=06c5d245a2dbad6652ca9ffa262edc169d3fd0d4 Fix r232466 by adding 'i' to the mappings for inline assembly memory constraints. It's not completely clear why 'i' has historically been treated as a memory constraint. According to the documentation, it represents a constant immediate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232470 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/InlineAsm.h b/include/llvm/IR/InlineAsm.h index 6640132b333..a1d72a4af73 100644 --- a/include/llvm/IR/InlineAsm.h +++ b/include/llvm/IR/InlineAsm.h @@ -240,6 +240,7 @@ public: // constraint codes for all targets. Constraint_Unknown = 0, Constraint_es, + Constraint_i, Constraint_m, Constraint_o, Constraint_v, // Unused at the moment since Constraint_m is always used. diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h index 55386d1bca2..5cf853cca2a 100644 --- a/include/llvm/Target/TargetLowering.h +++ b/include/llvm/Target/TargetLowering.h @@ -2627,7 +2627,9 @@ public: virtual unsigned getInlineAsmMemConstraint(const std::string &ConstraintCode) const { - if (ConstraintCode == "m") + if (ConstraintCode == "i") + return InlineAsm::Constraint_i; + else if (ConstraintCode == "m") return InlineAsm::Constraint_m; return InlineAsm::Constraint_Unknown; } diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index a20d37b7992..3ac8e949bbb 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -194,6 +194,7 @@ namespace { errs() << "ConstraintID: " << ConstraintID << "\n"; llvm_unreachable("Unexpected asm memory constraint"); case InlineAsm::Constraint_es: + case InlineAsm::Constraint_i: case InlineAsm::Constraint_m: case InlineAsm::Constraint_o: case InlineAsm::Constraint_Q: