llvm-project/libunwind/src
Brandon Bergren bb13411614 [libunwind] Multiple preprocessor fixes on PowerPC*
* Remove misnamed `PPC64_HAS_VMX` in preference of directly checking `defined(__VSX__)`.

libunwind was using "VMX" to mean "VSX". "VMX" is just another name for Altivec, while "VSX" is the vector-scalar extensions first used in POWER7. Exposing a "PPC64_HAS_VMX" define was misleading and incorrect.

* Add `defined(__ALTIVEC__)` guards around vector register operations to fix non-altivec CPUS such as the e5500.

When compiling for certain Book-E processors such as the e5500, we want to skip vector save/restore, as the Altivec registers are illegal on non-Altivec implementations.

* Add `!defined(__NO_FPRS__)` guards around traditional floating-point save/restore.

When compiling for powerpcspe, we cannot access floating point registers, as there aren't any. (The SPE on e500v2 is a 64-bit extension of the GPRs, and it doesn't have the normal floating-point registers at all.)
This fixes building for powerpcspe, although no actual handling for SPE save/restore is written yet.

Reviewed By: MaskRay, #libunwind, compnerd

Differential Revision: https://reviews.llvm.org/D91906
2020-11-23 19:07:21 -08:00
..
AddressSpace.hpp [libunwind] Optimize dl_iterate_phdr's findUnwindSectionsByPhdr 2020-09-23 15:40:39 -07:00
CMakeLists.txt [runtimes] Avoid overwriting the rpath unconditionally 2020-11-09 16:56:03 -05:00
CompactUnwinder.hpp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
DwarfInstructions.hpp [libunwind] Support for leaf function unwinding. 2020-09-18 15:09:42 +02:00
DwarfParser.hpp [libunwind] Delete unused codeOffsetAtStackDecrement/registersInOtherRegisters/sameValueUsed 2020-11-09 10:19:12 -08:00
EHHeaderParser.hpp [libunwind] Fix UB in EHHeaderParser::findFDE 2020-04-07 14:44:42 -07:00
FrameHeaderCache.hpp [libunwind][DWARF] Fix end of .eh_frame calculation 2020-09-16 19:00:57 -07:00
RWMutex.hpp [libunwind] Emit dependent libraries only when detected by CMake 2019-12-01 17:17:51 +01:00
Registers.hpp [libunwind] Multiple preprocessor fixes on PowerPC* 2020-11-23 19:07:21 -08:00
Unwind-EHABI.cpp unwind: use a more portable endianness check in EHABI 2020-05-29 08:28:37 -07:00
Unwind-EHABI.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
Unwind-seh.cpp [libunwind] [SEH] Don't interact with foreign exceptions 2020-10-12 23:28:22 +03:00
Unwind-sjlj.c unwind: rename `__personality_routine` to `_Unwind_Personality_Fn` 2020-02-10 08:52:31 -08:00
UnwindCursor.hpp [libunwind][DWARF] Fix end of .eh_frame calculation 2020-09-16 19:00:57 -07:00
UnwindLevel1-gcc-ext.c unwind: rename `__personality_routine` to `_Unwind_Personality_Fn` 2020-02-10 08:52:31 -08:00
UnwindLevel1.c [libunwind] Delete unused handlerNotFound in unwind_phase1 2020-11-21 12:38:00 -08:00
UnwindRegistersRestore.S [libunwind] Multiple preprocessor fixes on PowerPC* 2020-11-23 19:07:21 -08:00
UnwindRegistersSave.S [libunwind] Multiple preprocessor fixes on PowerPC* 2020-11-23 19:07:21 -08:00
Unwind_AppleExtras.cpp [libunwind] Minor SJLJ config cleanup. NFCI. 2020-09-03 15:59:45 -07:00
assembly.h [libunwind] Multiple preprocessor fixes on PowerPC* 2020-11-23 19:07:21 -08:00
config.h [libunwind] Multiple preprocessor fixes on PowerPC* 2020-11-23 19:07:21 -08:00
dwarf2.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
libunwind.cpp [libunwind] add hexagon support 2020-04-10 04:24:10 -05:00
libunwind_ext.h [libunwind] Export the unw_* symbols as weak symbols 2019-04-03 21:50:03 +00:00