diff options
| author | Nico Weber <thakis@chromium.org> | 2021-06-25 22:50:46 -0400 |
|---|---|---|
| committer | Nico Weber <thakis@chromium.org> | 2021-06-27 06:49:32 -0400 |
| commit | 0f24ffcdfa9bb2b6380cedbb24f16d4ab9920dd7 (patch) | |
| tree | 61d3b62b24fc0884586aad8a5c0ed809bbb16506 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | a7afaf901914aeade4e2b356c608d0f97150d769 (diff) | |
[lld/mac] Don't fold UNWIND_X86_64_MODE_STACK_IND unwind entries
libunwind uses unwind info to find the function address belonging
to the current instruction pointer. libunwind/src/CompactUnwinder.hpp's
step functions read functionStart for UNWIND_X86_64_MODE_STACK_IND
(and for nothing else), so these encodings need a dedicated entry
per function, so that the runtime can get the stacksize off the
`subq` instrunction in the function's prologue.
This matches ld64.
(CompactUnwinder.hpp from https://opensource.apple.com/source/libunwind/
also reads functionStart in a few more cases if `SUPPORT_OLD_BINARIES` is set,
but it defaults to 0, and ld64 seems to not worry about these additional
cases.)
Related upstream bug: https://crbug.com/1220175
Differential Revision: https://reviews.llvm.org/D104978
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
