diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-02-14 10:44:23 -0500 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-02-14 10:44:23 -0500 |
| commit | f4317e4387925bfac93a517c1dbd28517740e021 (patch) | |
| tree | 57cef5df38208e6db57e1c4d08c49c907d4c8b64 /lib/libunwind/src/Unwind-EHABI.cpp | |
| parent | 2289036a40082eb5316e2a46fb2f3a78a8be0c7d (diff) | |
| download | zig-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.cpp | 9 |
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; |
