X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmips%2FGregs.c;h=95194022d2be1fc88c18e90d2ddc811a6f54a413;hb=36981f1f5aac1c4e975a4a3d8cea68f1a4817b5c;hp=0dfc4a933a039049142d474a7d7b841ed047594a;hpb=0349587920c255c479240518d9c04581977144eb;p=platform%2Fupstream%2Flibunwind.git diff --git a/src/mips/Gregs.c b/src/mips/Gregs.c index 0dfc4a9..9519402 100644 --- a/src/mips/Gregs.c +++ b/src/mips/Gregs.c @@ -28,7 +28,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ HIDDEN int tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp, - int write) + int write) { dwarf_loc_t loc = DWARF_NULL_LOC; @@ -70,6 +70,8 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp, break; case UNW_MIPS_PC: + if (write) + c->dwarf.ip = *valp; /* update the IP cache */ loc = c->dwarf.loc[reg]; break; @@ -96,7 +98,7 @@ tdep_access_reg (struct cursor *c, unw_regnum_t reg, unw_word_t *valp, HIDDEN int tdep_access_fpreg (struct cursor *c, unw_regnum_t reg, unw_fpreg_t *valp, - int write) + int write) { Debug (1, "bad register number %u\n", reg); return -UNW_EBADREG;