mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
ARM: fix fast-isel assertion failure
Missing braces on if meant we inserted both ARM and Thumb load for a litpool entry. This didn't end well. rdar://problem/15959157 llvm-svn: 200752
This commit is contained in:
parent
4e6be36bfe
commit
4c3de0c83d
@ -653,13 +653,14 @@ unsigned ARMFastISel::ARMMaterializeInt(const Constant *C, MVT VT) {
|
||||
AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL,
|
||||
TII.get(ARM::t2LDRpci), DestReg)
|
||||
.addConstantPoolIndex(Idx));
|
||||
else
|
||||
else {
|
||||
// The extra immediate is for addrmode2.
|
||||
DestReg = constrainOperandRegClass(TII.get(ARM::LDRcp), DestReg, 0);
|
||||
AddOptionalDefs(BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DL,
|
||||
TII.get(ARM::LDRcp), DestReg)
|
||||
.addConstantPoolIndex(Idx)
|
||||
.addImm(0));
|
||||
}
|
||||
|
||||
return DestReg;
|
||||
}
|
||||
|
11
test/CodeGen/ARM/fastisel-thumb-litpool.ll
Normal file
11
test/CodeGen/ARM/fastisel-thumb-litpool.ll
Normal file
@ -0,0 +1,11 @@
|
||||
; RUN: llc -mtriple=thumbv7-apple-ios -O0 -o - %s | FileCheck %s
|
||||
|
||||
; We used to accidentally create both an ARM and a Thumb ldr here. It led to an
|
||||
; assertion failure at the time, but could go all the way through to emission,
|
||||
; hence the CHECK-NOT.
|
||||
|
||||
define i32 @test_thumb_ldrlit() minsize {
|
||||
; CHECK: ldr r0, LCPI0_0
|
||||
; CHECK-NOT: ldr
|
||||
ret i32 12345678
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user