[COMMIT] Avoid unnecessary indirection when decoding DWARF CFI
Andrew Cagney
cagney@gnu.org
Mon Nov 8 16:47:00 GMT 2004
Mark Kettenis wrote:
> This fixes the problems for me. It's better to skip the indirection
> here anyway, since it will save a memory read and thus avoids any
> problems with that.
>
> Committed,
>
> Mark
>
> P.S. Andrew, can you test it on your systems. I still like to get
> this on the branch since it fixes a nasty problem on SPARC. But it
> can wait until 6.3.1.
Yes, it fixes the problem I was seeing. 6.3.1 is ok, but not 6.3.
Andrew
> Index: ChangeLog
> from Mark Kettenis <kettenis@gnu.org>
>
> * dwarf2-frame.c (decode_frame_entry_1): Avoid indirection when
> skipping a personality routine in a CIE augmentation.
>
> Index: dwarf2-frame.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
> retrieving revision 1.42
> diff -u -p -r1.42 dwarf2-frame.c
> --- dwarf2-frame.c 5 Nov 2004 15:16:44 -0000 1.42
> +++ dwarf2-frame.c 5 Nov 2004 22:30:07 -0000
> @@ -1380,8 +1380,8 @@ decode_frame_entry_1 (struct comp_unit *
> /* "P" indicates a personality routine in the CIE augmentation. */
> else if (*augmentation == 'P')
> {
> - /* Skip. */
> - unsigned char encoding = *buf++;
> + /* Skip. Avoid indirection since we throw away the result. */
> + unsigned char encoding = (*buf++) & ~DW_EH_PE_indirect;
> read_encoded_value (unit, encoding, buf, &bytes_read);
> buf += bytes_read;
> augmentation++;
>
More information about the Gdb-patches
mailing list