brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 29decef Raw
52 lines · plain
1        .text2 3        .type   bar, @function4bar:5        .cfi_startproc6        leal    (%edi, %edi), %eax7        ret8        .cfi_endproc9        .size   bar, .-bar10 11        .type   foo, @function12foo:13        # Make the FDE entry start 16 bytes later than the actual function. The14        # size is chosen such that it is larger than the size of the FDE entry.15        # This allows us to test that we're using the correct offset for16        # unwinding (we'll stop 21 bytes into the function, but only 5 bytes17        # into the FDE).18        .nops 1619        .cfi_startproc20        .cfi_register %rip, %r1321        call    bar22        addl    $1, %eax23        movq    %r13, %r1424        .cfi_register %rip, %r1425        movq    $0, %r1326        jmp     *%r14 # Return27        .cfi_endproc28        .size   foo, .-foo29 30        .globl  main31        .type   main, @function32main:33        .cfi_startproc34        pushq   %rbp35        .cfi_def_cfa_offset 1636        .cfi_offset 6, -1637        movq    %rsp, %rbp38        .cfi_def_cfa_register 639        movl    $47, %edi40 41        # Non-standard calling convention. Put return address in r13.42        pushq   %r1343        leaq    1f(%rip), %r1344        jmp     foo # call451:46        popq    %r1347        popq    %rbp48        .cfi_def_cfa 7, 849        ret50        .cfi_endproc51        .size   main, .-main52