This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Add DW_OP_GNU_encoded_addr


Chris Lattner wrote:
 asm(    "test something
    jnz 1f
    .section text2,\"ax\"
1:    .cfi_startproc simple
    .cfi_def_cfa %%esp, 0
    .cfi_val_encoded_addr %%eip, 0x1b, 11f
    <do-some-stuff>
    jmp 11f
    .cfi_endproc
    .previous
11:");

This is an idiom that shows up several places in glibc and in the
kernel.  In glibc, Jakub currently goes to heroic efforts to
generate the unwind information by hand, but this code is what you
might call write-only i.e. intensely difficult to modify.

Does this idiom work if the inline asm block is duplicated by the compiler (e.g. due to inlining, loop unrolling, etc)?

Yes.



r~



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]