| Index: src/arm64/simulator-arm64.cc
|
| ===================================================================
|
| --- src/arm64/simulator-arm64.cc (revision 20276)
|
| +++ src/arm64/simulator-arm64.cc (working copy)
|
| @@ -2108,8 +2108,9 @@
|
| // Rotate source bitfield into place.
|
| int64_t result = (static_cast<uint64_t>(src) >> R) | (src << (reg_size - R));
|
| // Determine the sign extension.
|
| - int64_t topbits = ((1L << (reg_size - diff - 1)) - 1) << (diff + 1);
|
| - int64_t signbits = extend && ((src >> S) & 1) ? topbits : 0;
|
| + int64_t topbits_preshift = (1L << (reg_size - diff - 1)) - 1;
|
| + int64_t signbits = (extend && ((src >> S) & 1) ? topbits_preshift : 0)
|
| + << (diff + 1);
|
|
|
| // Merge sign extension, dest/zero and bitfield.
|
| result = signbits | (result & mask) | (dst & ~mask);
|
|
|