[next] SH: Use bitwise OR with mask for sign extension (#2389)
* Use bitwise OR with mask for sign extension Sign extend using bitwise OR with mask, instead of unary minus. Fixes error when building for UWP with Security Development Lifecycle (SDL). See https://learn.microsoft.com/en-us/cpp/build/reference/sdl-enable-additional-security-checks?view=msvc-170 * Remove unused store Remove unused store caught by clang-tidy. * Suppress clang-tidy false positive Ignore an unitialized va_list false positive emitted by clang-tidy --------- Co-authored-by: Wu ChenXu <kabeor00@gmail.com>
This commit is contained in:
parent
3a2cd3c331
commit
67d975662e
|
@ -1459,13 +1459,13 @@ static bool decode_long(uint32_t code, uint64_t address, MCInst *MI,
|
|||
if (code & 0x00010000) {
|
||||
// movi20s #imm,
|
||||
imm <<= 8;
|
||||
if (imm >= 1 << 27)
|
||||
imm = -((1 << 28) - imm);
|
||||
if (imm & (1 << (28 - 1)))
|
||||
imm |= ~((1 << 28) - 1);
|
||||
insn = SH_INS_MOVI20S;
|
||||
} else {
|
||||
// MOVI20
|
||||
if (imm >= 1 << 19)
|
||||
imm = -((1 << 20) - imm);
|
||||
if (imm & (1 << (28 - 1)))
|
||||
imm |= ~((1 << 20) - 1);
|
||||
insn = SH_INS_MOVI20;
|
||||
}
|
||||
set_imm(info, 0, imm);
|
||||
|
|
Loading…
Reference in New Issue