[lworld] RFR: 8376059: [lworld] Fix the issues in code generation of StoreLSpecialNode [v2]
Quan Anh Mai
qamai at openjdk.org
Tue Feb 3 13:09:06 UTC 2026
On Tue, 3 Feb 2026 09:22:33 GMT, Tobias Hartmann <thartmann at openjdk.org> wrote:
>> Quan Anh Mai has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - Saving the register in the slow path instead
>> - recompute tmp4 instead of saving it
>
> src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.ad line 79:
>
>> 77: // - Do no set/overwrite barrier data here, also handle G1C2BarrierPostNotNull
>> 78: // - Move this into the .m4?
>> 79: instruct g1StoreLSpecialOneOopOff0(indirect mem, iRegLNoSp src, immI0 off, iRegPNoSp tmp1, iRegPNoSp tmp2, iRegPNoSp tmp3, rFlagsReg cr)
>
> Should we do the same on x64?
Yes you are right, I have fixed these issues on x64, too.
> src/hotspot/cpu/aarch64/gc/g1/g1_aarch64.ad line 119:
>
>> 117:
>> 118: // Adjust address to point to narrow oop
>> 119: __ add($tmp4$$Register, $mem$$Register, 4);
>
> I think we should have asserts on `oop_off_1` and `oop_off_2` in `StoreFlatNode::expand_atomic` that check that `off` is either zero or four. Otherwise we would hit a "bad ad file" failure during matching. Also, a comment explaining that this is due to alignment constraints would be nice.
Done
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/2013#discussion_r2758983892
PR Review Comment: https://git.openjdk.org/valhalla/pull/2013#discussion_r2758985511
More information about the valhalla-dev
mailing list