Use native x86_64 instructions on x32
authorDebian Haskell Group <pkg-haskell-maintainers@lists.alioth.debian.org>
Tue, 21 Jun 2022 16:57:57 +0000 (17:57 +0100)
committerIlias Tsitsimpis <iliastsi@debian.org>
Tue, 21 Jun 2022 16:57:57 +0000 (17:57 +0100)
commit2f5f09d28f5aa6ed504eb2b9d2a9e69b359e1912
tree9c9bce40adf4d5a880f2ef5318c3d6b5754a1229
parentb2e7d3011ae5b1894a6f9bdda8854256efb34c5f
Use native x86_64 instructions on x32

This patch enables a few native 64-bit integer instructions
on x32 which are available on this architecture despite using
32-bit pointers. These instructions are present on x86_64 but
not on x86 and ghc checks the size of (void *) to determine
that. This method fails on x32 since despite using 32-bit
pointers and hence sizeof(void *) == 4, it still uses the
full x86_64 instruction set and software-emulated variants
of the aforementioned 64-bit integer instructions are
therefore not present in the toolchain which will make ghc
fail to build on x32.
See: https://ghc.haskell.org/trac/ghc/ticket/11571

Gbp-Pq: Name x32-use-native-x86_64-insn.patch
rts/RtsSymbols.c