summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Gouly <joey.gouly@arm.com>2013-07-08 19:52:51 +0000
committerJoey Gouly <joey.gouly@arm.com>2013-07-08 19:52:51 +0000
commit392cdad2b1fc3c1790dc2cba9a765e2f9707fe90 (patch)
tree16ec6c2ab499f721817e0732fe8fd6ec7835d614
parentc6fe5bc77c7b19075938131c38d12a82dd5cfbda (diff)
downloadbcm5719-llvm-392cdad2b1fc3c1790dc2cba9a765e2f9707fe90.tar.gz
bcm5719-llvm-392cdad2b1fc3c1790dc2cba9a765e2f9707fe90.zip
Add a comment to this change, requested by Eric Christopher.
llvm-svn: 185853
-rw-r--r--llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp4
-rw-r--r--llvm/test/CodeGen/ARM/arm-modifier.ll1
2 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
index da0fe2cf7d4..4eda5dc9e69 100644
--- a/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -3491,6 +3491,10 @@ SDNode *ARMDAGToDAGISel::SelectInlineAsm(SDNode *N){
else
continue;
+ // Immediate operands to inline asm in the SelectionDAG are modeled with
+ // two operands. The first is a constant of value InlineAsm::Kind_Imm, and
+ // the second is a constant with the value of the immediate. If we get here
+ // and we have a Kind_Imm, skip the next operand, and continue.
if (Kind == InlineAsm::Kind_Imm) {
SDValue op = N->getOperand(++i);
AsmNodeOperands.push_back(op);
diff --git a/llvm/test/CodeGen/ARM/arm-modifier.ll b/llvm/test/CodeGen/ARM/arm-modifier.ll
index e6358d481e9..a364793deaf 100644
--- a/llvm/test/CodeGen/ARM/arm-modifier.ll
+++ b/llvm/test/CodeGen/ARM/arm-modifier.ll
@@ -66,6 +66,7 @@ entry:
ret i64 %0
}
+; PR16490
define void @f5(i64 %__pu_val) {
call void asm sideeffect "$1", "r,i"(i64 %__pu_val, i32 -14)
ret void
OpenPOWER on IntegriCloud