brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.2 KiB · e85126d Raw
98 lines · plain
1# RUN: llc -o - %s -mtriple=x86_64-- -verify-cfiinstrs \2# RUN:     -run-pass=cfi-instr-inserter 2>&1 | FileCheck %s3# Test that CFI inserter inserts .cfi_offset/.cfi_register/.cfi_rel_offset4# properly for callee saved registers.5--- |6  define void @foo() {7    ret void8  }9...10---11# CHECK:      bb.3:12# CHECK:      CFI_INSTRUCTION offset $rbp, -1613# CHECK-NEXT: CFI_INSTRUCTION offset $r12, -2414# CHECK-NEXT: CFI_INSTRUCTION register $r13, $rcx15# CHECK-NEXT: CFI_INSTRUCTION offset $r14, -4016name:            foo17alignment:       1618tracksRegLiveness: true19liveins:20  - { reg: '$edi' }21frameInfo:22  stackSize:       1623  offsetAdjustment: -1624  maxAlignment:    1625  hasCalls:        true26  maxCallFrameSize: 027  cvBytesOfCalleeSavedRegisters: 828fixedStack:29  - { id: 0, type: spill-slot, offset: -40, size: 8, alignment: 8, callee-saved-register: '$r14' }30  - { id: 1, type: spill-slot, offset: -24, size: 8, alignment: 8, callee-saved-register: '$r12' }31  - { id: 2, type: spill-slot, offset: -16, size: 8, alignment: 16 }32  - { id: 3, type: spill-slot, offset: -16, size: 8, alignment: 16 }33  - { id: 4, type: spill-slot, offset: -24, size: 8, alignment: 8 }34machineFunctionInfo: {}35body:             |36  bb.0:37    successors: %bb.2(0x40000000), %bb.1(0x40000000)38    liveins: $edi, $r12, $r13, $r1439  40    frame-setup PUSH64r killed $rbp, implicit-def $rsp, implicit $rsp41    CFI_INSTRUCTION def_cfa_offset 1642    CFI_INSTRUCTION offset $rbp, -1643    $rbp = frame-setup MOV64rr $rsp44    CFI_INSTRUCTION def_cfa_register $rbp45    frame-setup PUSH64r killed $r12, implicit-def $rsp, implicit $rsp46    $rcx = frame-setup COPY $r1347    frame-setup PUSH64r killed $r14, implicit-def $rsp, implicit $rsp48    CFI_INSTRUCTION offset $r12, -2449    CFI_INSTRUCTION register $r13, $rcx50    CFI_INSTRUCTION rel_offset $r14, -2451    TEST8rr renamable $dil, renamable $dil, implicit-def $eflags, implicit killed $edi52    JCC_1 %bb.2, 4, implicit killed $eflags53    JMP_1 %bb.154  55  bb.1:56    successors: %bb.3(0x80000000)57  58    renamable $r12 = IMPLICIT_DEF59    renamable $r13 = IMPLICIT_DEF60    renamable $r14 = IMPLICIT_DEF61    JMP_1 %bb.362  63  bb.2:64    liveins: $rcx65    dead $eax = MOV32r0 implicit-def dead $eflags, implicit-def $rax66    $r12 = frame-destroy POP64r implicit-def $rsp, implicit $rsp67    $r13 = frame-destroy COPY $rcx68    $r14 = frame-destroy POP64r implicit-def $rsp, implicit $rsp69    $rbp = frame-destroy POP64r implicit-def $rsp, implicit $rsp70    CFI_INSTRUCTION restore $rbp71    CFI_INSTRUCTION restore $r1272    CFI_INSTRUCTION restore $r1373    CFI_INSTRUCTION restore $r1474    CFI_INSTRUCTION def_cfa $rsp, 875    RET 0, killed $rax76  77  bb.3:78    successors: %bb.4(0x80000000)79  80    renamable $rdi = IMPLICIT_DEF81    renamable $rsi = IMPLICIT_DEF82  83  bb.4:84    liveins: $rcx85    dead $eax = MOV32r0 implicit-def dead $eflags, implicit-def $rax86    $r12 = frame-destroy POP64r implicit-def $rsp, implicit $rsp87    $r13 = frame-destroy COPY $rcx88    $r14 = frame-destroy POP64r implicit-def $rsp, implicit $rsp89    $rbp = frame-destroy POP64r implicit-def $rsp, implicit $rsp90    CFI_INSTRUCTION restore $rbp91    CFI_INSTRUCTION restore $r1292    CFI_INSTRUCTION restore $r1393    CFI_INSTRUCTION restore $r1494    CFI_INSTRUCTION def_cfa $rsp, 895    RET 0, killed $rax96 97...98