RFR: 8273380: ARM32: Default to {ldrexd, strexd} in StubRoutines::atomic_{load|store}_long [v2]
Aleksey Shipilev
shade at openjdk.java.net
Thu Sep 23 11:17:36 UTC 2021
> Current ARM32 is one of few remaining uses of `os::is_MP`, the rest is removed by JDK-8188764. There are some interesting bugs in OS/libc that might give incorrect `os::is_MP` sometimes, e.g. in containers. Instead of risking it, we can default to {ldrexd,strexd} for ARMv7 (which always have them), and leave the `os::is_MP` path for ARMv6 (for which this is the only remaining way to load the 64-bit long).
>
> @mychris, you might want to take a look and do light performance testing for it?
>
> Additional testing:
> - [x] Linux ARM32 cross-compiled build completes
Aleksey Shipilev 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 three additional commits since the last revision:
- Move out bx
- Merge branch 'master' into JDK-8273380-arm32-default-to-ldrex
- First attempt
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/5379/files
- new: https://git.openjdk.java.net/jdk/pull/5379/files/24b814c8..ec04c50d
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5379&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5379&range=00-01
Stats: 29777 lines in 1164 files changed: 19695 ins; 5627 del; 4455 mod
Patch: https://git.openjdk.java.net/jdk/pull/5379.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/5379/head:pull/5379
PR: https://git.openjdk.java.net/jdk/pull/5379
More information about the hotspot-compiler-dev
mailing list