@@ -1376,10 +1376,10 @@ void emitter::emitLoadImmediate(emitAttr size, regNumber reg, ssize_t imm)
13761376        insCountLimit = absMaxInsCount;
13771377    }
13781378
1379-     bool      utilizeSRLI = false ;
1380-     int       srliShiftAmount;
1381-     uint64_t  originalImm = imm;
1382-     bool      cond1       = (y - x) > 31 ;
1379+     bool      utilizeSRLI      = false ;
1380+     int       srliShiftAmount =  0 ;
1381+     uint64_t  originalImm      = imm;
1382+     bool      cond1            = (y - x) > 31 ;
13831383    if  ((((uint64_t )imm >> 63 ) & 0b1 ) == 0  && cond1)
13841384    {
13851385        srliShiftAmount  = BitOperations::LeadingZeroCount ((uint64_t )imm);
@@ -1429,8 +1429,8 @@ void emitter::emitLoadImmediate(emitAttr size, regNumber reg, ssize_t imm)
14291429     * See the following discussion: 
14301430     * https://github.com/dotnet/runtime/pull/113250#discussion_r1987576070 */  
14311431
1432-     uint32_t  offset1        = imm & WordMask (x);
1433-     uint32_t  offset2        = (~(offset1 - 1 )) & WordMask (x);
1432+     uint32_t  offset1        = imm & WordMask (( uint8_t ) x);
1433+     uint32_t  offset2        = (~(offset1 - 1 )) & WordMask (( uint8_t ) x);
14341434    uint32_t  offset         = offset1;
14351435    bool      isSubtractMode = false ;
14361436
@@ -1440,8 +1440,8 @@ void emitter::emitLoadImmediate(emitAttr size, regNumber reg, ssize_t imm)
14401440         * Since adding 1 to it will change the sign bit. Instead, shift x and y 
14411441         * to the left by one. */  
14421442        int       newX       = x + 1 ;
1443-         uint32_t  newOffset1 = imm & WordMask (newX);
1444-         uint32_t  newOffset2 = (~(newOffset1 - 1 )) & WordMask (newX);
1443+         uint32_t  newOffset1 = imm & WordMask (( uint8_t ) newX);
1444+         uint32_t  newOffset2 = (~(newOffset1 - 1 )) & WordMask (( uint8_t ) newX);
14451445        if  (newOffset2 < offset1)
14461446        {
14471447            x              = newX;
@@ -1493,7 +1493,7 @@ void emitter::emitLoadImmediate(emitAttr size, regNumber reg, ssize_t imm)
14931493
14941494    int  chunkLsbPos = (x < 11 ) ? 0  : (x - 11 );
14951495    int  shift       = (x < 11 ) ? x : 11 ;
1496-     int  chunkMask   = (x < 11 ) ? WordMask (x) : WordMask (11 );
1496+     int  chunkMask   = (x < 11 ) ? WordMask (( uint8_t ) x) : WordMask (11 );
14971497    while  (true )
14981498    {
14991499        uint32_t  chunk = (offset >> chunkLsbPos) & chunkMask;
@@ -1522,7 +1522,7 @@ void emitter::emitLoadImmediate(emitAttr size, regNumber reg, ssize_t imm)
15221522            if  (isSubtractMode)
15231523            {
15241524                ins[numberOfInstructions - 1 ]    = INS_addi;
1525-                 values[numberOfInstructions - 1 ] = -chunk;
1525+                 values[numberOfInstructions - 1 ] = -( int32_t ) chunk;
15261526            }
15271527            else 
15281528            {
0 commit comments