diff options
| author | Joey Gouly <joey.gouly@arm.com> | 2013-07-05 10:19:40 +0000 |
|---|---|---|
| committer | Joey Gouly <joey.gouly@arm.com> | 2013-07-05 10:19:40 +0000 |
| commit | 606f3fbc2b295dce7462a511674e6c8d4add8040 (patch) | |
| tree | 60503af8e362188ad3a934ed515a90eb92042f89 /llvm/test/CodeGen/ARM/arm-modifier.ll | |
| parent | 0e90c3d92c0caddd4b1a37293715460c10aed80d (diff) | |
| download | bcm5719-llvm-606f3fbc2b295dce7462a511674e6c8d4add8040.tar.gz bcm5719-llvm-606f3fbc2b295dce7462a511674e6c8d4add8040.zip | |
PR16490: fix a crash in ARMDAGToDAGISel::SelectInlineAsm.
In the SelectionDAG immediate operands to inline asm are constructed as
two separate operands. The first is a constant of value InlineAsm::Kind_Imm
and the second is a constant with the value of the immediate.
In ARMDAGToDAGISel::SelectInlineAsm, if we reach an operand of Kind_Imm we
should skip over the next operand too.
llvm-svn: 185688
Diffstat (limited to 'llvm/test/CodeGen/ARM/arm-modifier.ll')
| -rw-r--r-- | llvm/test/CodeGen/ARM/arm-modifier.ll | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/arm-modifier.ll b/llvm/test/CodeGen/ARM/arm-modifier.ll index c7470166345..e6358d481e9 100644 --- a/llvm/test/CodeGen/ARM/arm-modifier.ll +++ b/llvm/test/CodeGen/ARM/arm-modifier.ll @@ -65,3 +65,8 @@ entry: %0 = tail call i64 asm sideeffect "ldrexd $0, ${0:H}, [$1]", "=&r,r,*Qo"(i64* %val, i64* %val) nounwind ret i64 %0 } + +define void @f5(i64 %__pu_val) { + call void asm sideeffect "$1", "r,i"(i64 %__pu_val, i32 -14) + ret void +} |

