RFR: 8255579: x86: Use cmpq(Register,Address) in safepoint_poll
Aleksey Shipilev
shade at openjdk.java.net
Thu Oct 29 09:54:46 UTC 2020
On Thu, 29 Oct 2020 09:49:30 GMT, Erik Österlund <eosterlund at openjdk.org> wrote:
>> JDK-8253180 added a new block in `safepoint_poll` that uses broken `cmpq` (JDK-8255550): it effectively does the comparison with operands swapped. It makes sense to use the non-broken `cmpq`, as to avoid changing the condition code and thus making the code less understandable. See the discussion in #910.
>>
>> Testing:
>> - [x] `tier1` with Z (some SA tests fail, and some other fail with OOME -- seem to be expected/problem-listed)
>
> Looks good. I also got confused about this. When this instruction didn't work the way I thought it would, I thought it must be a weird style thing, that everything is right to left in the assembler, for consistency, so it would read from right to left. Then I convinced myself it made sense. But the instruction being incorrectly encoded also checks out. Sigh. Anyway, I ran some local testing that would just fall over immediately if this didn't work. And it seems to work.
Thanks @fisk! Would you like someone else to look at this, or your review is enough?
-------------
PR: https://git.openjdk.java.net/jdk/pull/924
More information about the hotspot-dev
mailing list