summaryrefslogtreecommitdiff
path: root/src/aarch64
diff options
context:
space:
mode:
authorDoug Moore <dougm@rice.edu>2017-08-06 15:35:43 -0500
committerDave Watson <davejwatson@fb.com>2017-08-07 09:05:17 -0700
commite360c3ddbd1fa182b6e5f7bf22a7b9836a9c1cd4 (patch)
tree85a3c89458432fd3f28cbf76beffa8adf9d8bfe2 /src/aarch64
parent93f319466f3de6eb2dcd1e322d57ffe7cb71dcc3 (diff)
downloadlibunwind-e360c3ddbd1fa182b6e5f7bf22a7b9836a9c1cd4.tar.gz
For architectures that initialize the dwarf ip cache, but do not
update when the ip register is set, add those updates.
Diffstat (limited to 'src/aarch64')
-rw-r--r--src/aarch64/Gregs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/aarch64/Gregs.c b/src/aarch64/Gregs.c
index 6288275b..3e014769 100644
--- a/src/aarch64/Gregs.c
+++ b/src/aarch64/Gregs.c
@@ -55,6 +55,9 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
loc = c->dwarf.loc[reg];
break;
+ case UNW_AARCH64_PC:
+ if (write)
+ c->dwarf.ip = *valp; /* update the IP cache */
case UNW_AARCH64_X4:
case UNW_AARCH64_X5:
case UNW_AARCH64_X6:
@@ -82,7 +85,6 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp,
case UNW_AARCH64_X28:
case UNW_AARCH64_X29:
case UNW_AARCH64_X30:
- case UNW_AARCH64_PC:
case UNW_AARCH64_PSTATE:
loc = c->dwarf.loc[reg];
break;