diff options
| author | Mark Wielaard <[email protected]> | 2014-12-19 23:20:25 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2014-12-19 23:20:25 +0100 |
| commit | 7555c33aca3bdc4b565ce647b87cf0693e61de9c (patch) | |
| tree | 5586c46bb6dcb093c82f43e21ff29ca9d627cdf1 /libdwfl/frame_unwind.c | |
| parent | be6ce84d68443fbe1bf3734c594031bee8e6ac77 (diff) | |
| parent | 3943a3893619466d0927495485bca8a9b96a3dc9 (diff) | |
Merge 0.161 into mjw/RH-DTS
Diffstat (limited to 'libdwfl/frame_unwind.c')
| -rw-r--r-- | libdwfl/frame_unwind.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libdwfl/frame_unwind.c b/libdwfl/frame_unwind.c index 18c808b2..16cebd08 100644 --- a/libdwfl/frame_unwind.c +++ b/libdwfl/frame_unwind.c @@ -1,5 +1,5 @@ /* Get previous frame state for an existing frame state. - Copyright (C) 2013 Red Hat, Inc. + Copyright (C) 2013, 2014 Red Hat, Inc. This file is part of elfutils. This file is free software; you can redistribute it and/or modify @@ -582,6 +582,10 @@ handle_cfi (Dwfl_Frame *state, Dwarf_Addr pc, Dwarf_CFI *cfi, Dwarf_Addr bias) continue; } + /* Some architectures encode some extra info in the return address. */ + if (regno == frame->fde->cie->return_address_register) + regval &= ebl_func_addr_mask (ebl); + /* This is another strange PPC[64] case. There are two registers numbers that can represent the same DWARF return register number. We only want one to actually set the return |
