RFR: 8311847: Fix -Wconversion for assembler.hpp emit_int8,16 callers
    Coleen Phillimore 
    coleenp at openjdk.org
       
    Tue Jul 11 12:59:07 UTC 2023
    
    
  
On Tue, 11 Jul 2023 12:29:09 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> uint64_t uval64 = val;
>>     unsigned uval = checked_cast<unsigned>(uval64);
>> This won't work for negative values, right?
>
> val comes in signed, so we want to just chop off the sign.  checked_cast<unsigned>(signed val) will assert.  checked_cast<> doesn't do sign conversion.  We don't have a cast that does sign conversion.
Not sure I trust this either.  I'm going to write a gtest for this.
>> How many callers are passing in negative values and actually need these convenience functions?
>
> The overloading was really unhappy with the version of the functions that pass uint8_t for all the arguments.  The callers might pass a couple uint8_t but then also a random selection of int and for one or more of the other parameters.
> How many callers?
Actually quite a lot for the emit_int16/24/32 ones.  They pass an int imm8 value and have some (value | encode) parameter where encode is an int passed in.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14822#discussion_r1259682829
PR Review Comment: https://git.openjdk.org/jdk/pull/14822#discussion_r1259685864
    
    
More information about the hotspot-dev
mailing list