RFR: 8311847: Fix -Wconversion for assembler.hpp emit_int8,16 callers
Coleen Phillimore
coleenp at openjdk.org
Tue Jul 11 12:59:05 UTC 2023
On Tue, 11 Jul 2023 02:09:40 GMT, Dean Long <dlong at openjdk.org> wrote:
>> Please review changes to fix -Wconversion warnings that come from assembler_<cpu>.cpp by adding narrow_casts to the emit_int8,16,24, and 32 functions. And some other fixups with checked_cast.
>>
>> Ran tier1 on Oracle platforms, and tier1-4 on linux-x64-debug, linux-aarch64-debug, windows-x64-debug.
>
> src/hotspot/cpu/aarch64/assembler_aarch64.hpp line 224:
>
>> 222: unsigned target = *(unsigned *)a;
>> 223: target &= ~mask;
>> 224: target |= checked_cast<unsigned>(val);
>
> Any value that doesn't fit in 32 bits is going to fail, so it's tempting to force the callers to pass 32-bit types, but that's a bigger change. How about something like this:
>
> static ALWAYSINLINE void patch(address a, int msb, int lsb, uint32_t val) {
> /* original code, no additional checked_cast needed */
> }
>
> static ALWAYSINLINE void patch(address a, int msb, int lsb, uint64_t val) {
> patch(a, msb, lsb, checked_cast<unsigned>(val));
> }
I'll try this suggestion.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14822#discussion_r1259690565
More information about the hotspot-compiler-dev
mailing list