RFR: 8282231: x86-32: runtime call to SharedRuntime::ldiv corrupts registers
Aleksey Shipilev
shade at openjdk.java.net
Tue Feb 22 14:00:45 UTC 2022
On Tue, 22 Feb 2022 13:34:03 GMT, Andrew Haley <aph at openjdk.org> wrote:
> In x86_32.ad, a call to SharedRuntime::ldiv doesn't save all of the call-clobbered registers. Also SharedRuntime::lrem.
> effect(CALL) is the simplest way to fix this, and AFAIK the most efficient too.
>
> This is by no means the only bug in this area, but it's trivial to fix and allows a bootcycle build to complete on recent Linuxes.
Yeah, I did a similar thing here: https://github.com/openjdk/jdk/pull/7498 -- I think we can drop `cr`, `cx`, `bx` from match rule arguments too. Also drop spaces between parentheses, while we are at it. That change passed tier{1,2,3} on x86_32, I am sure this one passes it too.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7575
More information about the hotspot-compiler-dev
mailing list