> Change the default code entry alignment to 64 bytes from 32 bytes. This > allows for maintaining proper 64-byte alignment of data within a code > segment, which is required by several AVX-512 instructions. > > I ran into this while implementing Base64 encoding and decoding. Code > segments which were allocated with the address mod 32 == 0 but with the > address mod 64 != 0 would cause the align() macro to misalign. This is > because the align macro aligns to the size of the code segment and not the > offset of the PC. So align(64) would align the PC to a multiple of 64 bytes > from the start of the segment, and not to a pure 64-byte boundary as > requested. Changing the alignment of the segment to 64 bytes fixes the issue. > > I have not seen any measurable difference in either performance or memory > usage with the tests I have run. > > See [this > ](https://mail.openjdk.java.net/pipermail/hotspot-dev/2021-August/054180.html) > article for the discussion thread.
Scott Gibbons has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision: - Merge branch 'openjdk:master' into asgibbons-align-fix - Revert alignment of 64-bytes; Add align64() - Change default code entry alignment to 64 bytes - Fix align() directive Change align(x) to be relative to the current section's end rather than its size. Issue was uncovered with a raw align(64). - Merge branch 'openjdk:master' into master - Merge branch 'openjdk:master' into master - Fixing .gitignore ------------- Changes: - all: https://git.openjdk.java.net/jdk/pull/5547/files - new: https://git.openjdk.java.net/jdk/pull/5547/files/f6eefd34..e897dcfd Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5547&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5547&range=01-02 Stats: 56646 lines in 1747 files changed: 37537 ins; 10004 del; 9105 mod Patch: https://git.openjdk.java.net/jdk/pull/5547.diff Fetch: git fetch https://git.openjdk.java.net/jdk pull/5547/head:pull/5547 PR: https://git.openjdk.java.net/jdk/pull/5547