43 lines · plain
1 .text2 .globl bar3bar:4 .cfi_startproc5 leal (%edi, %edi), %eax6 ret7 .cfi_endproc8 9 .globl asm_main10asm_main:11 .cfi_startproc12 pushq %rbp13 .cfi_def_cfa_offset 1614 .cfi_offset %rbp, -1615 movq %rsp, %rbp16 .cfi_def_cfa_register %rbp17 movl $47, %edi18 19 # install tramp as return address20 # (similar to signal return trampolines on some platforms)21 leaq tramp(%rip), %rax22 pushq %rax23 jmp bar # call, with return address pointing to tramp24 25 popq %rbp26 .cfi_def_cfa %rsp, 827 ret28 .cfi_endproc29 30 .globl tramp31tramp:32 .cfi_startproc33 .cfi_signal_frame34 # Emit cfi to line up with the frame created by asm_main35 .cfi_def_cfa_offset 1636 .cfi_offset %rbp, -1637 .cfi_def_cfa_register %rbp38 # copy asm_main's epilog to clean up the frame39 popq %rbp40 .cfi_def_cfa %rsp, 841 ret42 .cfi_endproc43