summaryrefslogtreecommitdiffstats
path: root/libdwfl/frame_unwind.c
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2014-12-19 23:20:25 +0100
committerMark Wielaard <[email protected]>2014-12-19 23:20:25 +0100
commit7555c33aca3bdc4b565ce647b87cf0693e61de9c (patch)
tree5586c46bb6dcb093c82f43e21ff29ca9d627cdf1 /libdwfl/frame_unwind.c
parentbe6ce84d68443fbe1bf3734c594031bee8e6ac77 (diff)
parent3943a3893619466d0927495485bca8a9b96a3dc9 (diff)
Merge 0.161 into mjw/RH-DTS
Diffstat (limited to 'libdwfl/frame_unwind.c')
-rw-r--r--libdwfl/frame_unwind.c6
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