aboutsummaryrefslogtreecommitdiff
path: root/lib/libunwind/src/Unwind-EHABI.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-02-14 10:44:23 -0500
committerAndrew Kelley <andrew@ziglang.org>2020-02-14 10:44:23 -0500
commitf4317e4387925bfac93a517c1dbd28517740e021 (patch)
tree57cef5df38208e6db57e1c4d08c49c907d4c8b64 /lib/libunwind/src/Unwind-EHABI.cpp
parent2289036a40082eb5316e2a46fb2f3a78a8be0c7d (diff)
downloadzig-f4317e4387925bfac93a517c1dbd28517740e021.tar.gz
zig-f4317e4387925bfac93a517c1dbd28517740e021.zip
update libunwind to llvm10.0.0rc2
Diffstat (limited to 'lib/libunwind/src/Unwind-EHABI.cpp')
-rw-r--r--lib/libunwind/src/Unwind-EHABI.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libunwind/src/Unwind-EHABI.cpp b/lib/libunwind/src/Unwind-EHABI.cpp
index 4ff5e318b5..a23ba2cc7e 100644
--- a/lib/libunwind/src/Unwind-EHABI.cpp
+++ b/lib/libunwind/src/Unwind-EHABI.cpp
@@ -941,8 +941,13 @@ _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass,
// format 1", which is equivalent to FSTMD + a padding word.
for (uint32_t i = first; i < end; ++i) {
// SP is only 32-bit aligned so don't copy 64-bit at a time.
- uint64_t value = *sp++;
- value |= ((uint64_t)(*sp++)) << 32;
+ uint64_t w0 = *sp++;
+ uint64_t w1 = *sp++;
+#ifdef __LITTLE_ENDIAN__
+ uint64_t value = (w1 << 32) | w0;
+#else
+ uint64_t value = (w0 << 32) | w1;
+#endif
if (_Unwind_VRS_Set(context, regclass, i, representation, &value) !=
_UVRSR_OK)
return _UVRSR_FAILED;