summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/lib/libunwind/UnwindCursor.hpp3
-rw-r--r--sys/lib/libunwind/libunwind.cxx2
2 files changed, 2 insertions, 3 deletions
diff --git a/sys/lib/libunwind/UnwindCursor.hpp b/sys/lib/libunwind/UnwindCursor.hpp
index e979646179d..763c9b21b70 100644
--- a/sys/lib/libunwind/UnwindCursor.hpp
+++ b/sys/lib/libunwind/UnwindCursor.hpp
@@ -61,9 +61,6 @@ public:
this->setInfoBasedOnIPRegister(true);
if (fUnwindInfoMissing)
return UNW_STEP_END;
-
- if (fInfo.extra_args)
- setSP(getSP() + fInfo.extra_args);
return UNW_STEP_SUCCESS;
}
__builtin_unreachable();
diff --git a/sys/lib/libunwind/libunwind.cxx b/sys/lib/libunwind/libunwind.cxx
index e1897848917..d033f7c346b 100644
--- a/sys/lib/libunwind/libunwind.cxx
+++ b/sys/lib/libunwind/libunwind.cxx
@@ -277,6 +277,8 @@ void _Unwind_SetIP(struct _Unwind_Context *context, uintptr_t new_value) {
unw_proc_info_t info;
cursor->getInfo(&info);
cursor->setInfoBasedOnIPRegister(false);
+ if (info.extra_args)
+ cursor->setSP(cursor->getSP() + info.extra_args);
}
uintptr_t _Unwind_GetRegionStart(struct _Unwind_Context *context) {