46 lines · plain
1; RUN: not llc -mtriple thumbv6m-arm-none-eabi -frame-pointer=all %s -o - 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR2 3; CHECK-ERROR: error: write to reserved register 'R7'4define void @test_framepointer_output(i32 %input) {5entry:6 %0 = call i32 asm sideeffect "mov $0, $1", "={r7},r"(i32 %input)7 ret void8}9 10; CHECK-ERROR: error: write to reserved register 'R7'11define void @test_framepointer_input(i32 %input) {12entry:13 %0 = call i32 asm sideeffect "mov $0, $1", "=r,{r7}"(i32 %input)14 ret void15}16 17; CHECK-ERROR: error: write to reserved register 'PC'18define void @test_pc_output(i32 %input) {19entry:20 %0 = call i32 asm sideeffect "mov $0, $1", "={pc},r"(i32 %input)21 ret void22}23 24; CHECK-ERROR: error: write to reserved register 'PC'25define void @test_pc_input(i32 %input) {26entry:27 %0 = call i32 asm sideeffect "mov $0, $1", "=r,{pc}"(i32 %input)28 ret void29}30 31; CHECK-ERROR: error: write to reserved register 'R6'32define void @test_basepointer_output(i32 %size, i32 %input) alignstack(8) {33entry:34 %vla = alloca i32, i32 %size, align 435 %0 = call i32 asm sideeffect "mov $0, $1", "={r6},r"(i32 %input)36 ret void37}38 39; CHECK-ERROR: error: write to reserved register 'R6'40define void @test_basepointer_input(i32 %size, i32 %input) alignstack(8) {41entry:42 %vla = alloca i32, i32 %size, align 443 %0 = call i32 asm sideeffect "mov $0, $1", "=r,{r6}"(i32 %input)44 ret void45}46