Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sparc32 does not support unaligned 32 bit reads or writes.
Our bytecode is 2-byte aligned, but we need to read 4-byte values. sparc will SIGBUG if asked to perform a misaligned read. We also need to add the same hack as s390 to get a definition of AO_fetch_compare_and_swap_full The memcmpy() makes (almost) no difference on architectures that can read 32 bit values "misaligned" - optimisers know how to inline the memcpy as a regular register load. Checking the assembler output on x64_64, it causes code change in one place, which seems to be the register allocator picking different registers. On ARM, it causes a lot of loads to be commented "unaligned", and causes one LDM to be replaced by two LDRs, an LDH to be replaced by LDR and UXTH, and seems to perturb the register allocator in one other place.
- Loading branch information
Showing
5 changed files
with
40 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters