diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -8339,9 +8339,6 @@ return; } - if (DetectWriteToReservedRegister()) - return; - SDLoc dl = getCurSDLoc(); OpInfo.AssignedRegs.getCopyToRegs(InOperandVal, DAG, dl, Chain, &Flag, diff --git a/llvm/test/CodeGen/ARM/inline-asm-reserved-registers.ll b/llvm/test/CodeGen/ARM/inline-asm-reserved-registers.ll --- a/llvm/test/CodeGen/ARM/inline-asm-reserved-registers.ll +++ b/llvm/test/CodeGen/ARM/inline-asm-reserved-registers.ll @@ -7,13 +7,6 @@ ret void } -; CHECK-ERROR: error: write to reserved register 'R7' -define void @test_framepointer_input(i32 %input) { -entry: - %0 = call i32 asm sideeffect "mov $0, $1", "=r,{r7}"(i32 %input) - ret void -} - ; CHECK-ERROR: error: write to reserved register 'PC' define void @test_pc_output(i32 %input) { entry: @@ -21,13 +14,6 @@ ret void } -; CHECK-ERROR: error: write to reserved register 'PC' -define void @test_pc_input(i32 %input) { -entry: - %0 = call i32 asm sideeffect "mov $0, $1", "=r,{pc}"(i32 %input) - ret void -} - ; CHECK-ERROR: error: write to reserved register 'R6' define void @test_basepointer_output(i32 %size, i32 %input) alignstack(8) { entry: @@ -35,11 +21,3 @@ %0 = call i32 asm sideeffect "mov $0, $1", "={r6},r"(i32 %input) ret void } - -; CHECK-ERROR: error: write to reserved register 'R6' -define void @test_basepointer_input(i32 %size, i32 %input) alignstack(8) { -entry: - %vla = alloca i32, i32 %size, align 4 - %0 = call i32 asm sideeffect "mov $0, $1", "=r,{r6}"(i32 %input) - ret void -}