Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

libunwind assumes all powerpc platforms have altivec and FPU #43137

Open Quuxplusone opened 4 years ago

Quuxplusone commented 4 years ago
Bugzilla Link PR44167
Status NEW
Importance P enhancement
Reported by Justin Hibbits (chmeeedalf@gmail.com)
Reported on 2019-11-27 14:02:22 -0800
Last modified on 2020-01-03 17:11:51 -0800
Version trunk
Hardware Other All
CC llvm-bugs@lists.llvm.org
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also

UnwindRegistersSave.S includes unconditional saving and loading of floating point registers and altivec registers. However, not all PowerPC platforms have FPU or Altivec. The PowerPC e500 uses a non-standard FPU, the SPE, which uses the GPRs, and has no altivec. The PowerPC e500mc and e5500 have a FPU but no Altivec.

Quuxplusone commented 4 years ago

Also, PPC64_HAS_VMX really gates VSX, not VMX. The #else clause uses altivec, while the #if clause uses VSX. This makes it crash on the Freescale/NXP e5500 with an illegal instruction.