brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · da4b822 Raw
61 lines · plain
1; RUN: llc -O0 -frame-pointer=all < %s | FileCheck %s2 3; Check that CFI instructions are generated properly when4; a frame pointer, variable length array and callee-saved5; registers are all present at the same time6 7target datalayout = "e-m:e-p:16:16-i32:16-i64:16-f32:16-f64:16-a:8-n8:16-S16"8target triple = "msp430-unknown-unknown-elf"9 10@g = global float 0.011@N = external global i16, align 212 13define void @foo() {14; CHECK-LABEL: foo:15; CHECK: push  r416; CHECK-NEXT: .cfi_def_cfa_offset 417; CHECK-NEXT: .cfi_offset r4, -418; CHECK-NEXT: mov r1, r419; CHECK-NEXT: .cfi_def_cfa_register r420; CHECK: push  r621; CHECK-NEXT: push  r722; CHECK-NEXT: push  r823; CHECK-NEXT: push  r924; CHECK-NEXT: push  r1025; CHECK: .cfi_offset r6, -626; CHECK: .cfi_offset r7, -827; CHECK: .cfi_offset r8, -1028; CHECK: .cfi_offset r9, -1229; CHECK: .cfi_offset r10, -1430 31  %n = load i16, ptr @N, align 232  %vla = alloca i8, i16 %n, align 133  %t1 = load volatile float, ptr @g34  %t2 = load volatile float, ptr @g35  %t3 = load volatile float, ptr @g36  %t4 = load volatile float, ptr @g37  %t5 = load volatile float, ptr @g38  store volatile float %t1, ptr @g39  store volatile float %t2, ptr @g40  store volatile float %t3, ptr @g41  store volatile float %t4, ptr @g42  store volatile float %t5, ptr @g43  44; CHECK: mov r4, r145; CHECK-NEXT: sub #10, r146; CHECK: pop r1047; CHECK-NEXT: pop r948; CHECK-NEXT: pop r849; CHECK-NEXT: pop r750; CHECK-NEXT: pop r651; CHECK: pop r452; CHECK: .cfi_def_cfa r1, 253; CHECK: .cfi_restore r654; CHECK: .cfi_restore r755; CHECK: .cfi_restore r856; CHECK: .cfi_restore r957; CHECK: .cfi_restore r1058 59  ret void60}61