platform_bionic/libc/arch-x86
Peter Collingbourne 8bd83d8c98 Hide overaligned global address from the compiler.
The address of contents is only guaranteed to be aligned to 4KB on
4KB page size systems, but the compiler was generating code that
assumed it to be aligned to 64KB, which broke on a 4KB page size
system. This probably ought to be fixed, either in the compiler so
it can't generate code assuming such large alignments (it's hard to
see what useful optimizations are possible by assuming such large
alignments anyway) or by making bionic respect the p_align field in
PT_LOAD, but for now let's hide the address behind an asm statement
that the compiler can't see through.

As a result of this change, the code generation for the function
__bionic_setjmp_cookie_get on x86 changed so that it clobbers ecx,
as allowed by the calling convention. However, the x86 assembly
implementation for setjmp was assuming that it wouldn't be
clobbered. Fix it.

Bug: 332534664
Change-Id: I07fa737d8cf892d27ce08c305dafb0a53fef36cb
2024-04-04 16:33:01 -07:00
..
bionic Hide overaligned global address from the compiler. 2024-04-04 16:33:01 -07:00
generic/string avx2 implementation for memset. 2022-07-22 21:48:50 +00:00
string Tidy up the x86 atom/silvermont stuff similar to x86-64. 2022-07-25 16:27:25 +00:00
dynamic_function_dispatch.cpp avx2 implementation for memset. 2022-07-22 21:48:50 +00:00
static_function_dispatch.S avx2 implementation for memset. 2022-07-22 21:48:50 +00:00