|
Message-ID: <1596795338498.26196@ncipher.com> Date: Fri, 7 Aug 2020 10:15:38 +0000 From: "Gamble, Bradley" <bradley.gamble@...pher.com> To: "musl@...ts.openwall.com" <musl@...ts.openwall.com> Subject: Support for PowerPC64 devices lacking AltiVec extentions Hello, musl currently lists "powerpc64" on it's supported target architectures page. I have been trying to use musl on a device that uses Freescale's T1022/T1042 processors based on the e5500 core - These devices lacks the AltiVec extentions that most other PowerPC64 processors support. I was initially encountering exceptions with longjmp()/setjmp() due to the use of lvx/stvx instructions to store and restore vector registers. These vector registers are AltiVec-specific and are not required for devices that do not have the AltiVec extentions, so simply removing them was enough to allow musl to function properly on e5500 devices. I initially considered whether a compile-time check in the configure script was possible, however I believe this has to be a run-time check to query whether the processor supports AltiVec extentions and to conditionally store/restore the registers if it does. I see that Arm targets use __hwcap for platform-specific functionality, and in hwcap.h for PowerPC64 there is a "PPC_FEATURE_HAS_ALTIVEC" definition. Would this be the correct way to detect this platform-specific behavior? Kind regards, bdg Content of type "text/html" skipped Download attachment "0001-Remove-AltiVec-specific-instructions-on-PowerPC64-pl.patch" of type "application/octet-stream" (2264 bytes)
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.