emit_x64_data_processing: EmitMaskedShift: Use appropriately sized immediates
This commit is contained in:
parent
cc012a830c
commit
2770115757
1 changed files with 4 additions and 4 deletions
|
@ -736,9 +736,9 @@ static void EmitMaskedShift32(BlockOfCode& code, EmitContext& ctx, IR::Inst* ins
|
||||||
|
|
||||||
if (shift_arg.IsImmediate()) {
|
if (shift_arg.IsImmediate()) {
|
||||||
const Xbyak::Reg32 result = ctx.reg_alloc.UseScratchGpr(operand_arg).cvt32();
|
const Xbyak::Reg32 result = ctx.reg_alloc.UseScratchGpr(operand_arg).cvt32();
|
||||||
const u8 shift = shift_arg.GetImmediateU8();
|
const u32 shift = shift_arg.GetImmediateU32();
|
||||||
|
|
||||||
shift_fn(result, shift & 0x1F);
|
shift_fn(result, static_cast<int>(shift & 0x1F));
|
||||||
|
|
||||||
ctx.reg_alloc.DefineValue(inst, result);
|
ctx.reg_alloc.DefineValue(inst, result);
|
||||||
return;
|
return;
|
||||||
|
@ -773,9 +773,9 @@ static void EmitMaskedShift64(BlockOfCode& code, EmitContext& ctx, IR::Inst* ins
|
||||||
|
|
||||||
if (shift_arg.IsImmediate()) {
|
if (shift_arg.IsImmediate()) {
|
||||||
const Xbyak::Reg64 result = ctx.reg_alloc.UseScratchGpr(operand_arg);
|
const Xbyak::Reg64 result = ctx.reg_alloc.UseScratchGpr(operand_arg);
|
||||||
const u8 shift = shift_arg.GetImmediateU8();
|
const u64 shift = shift_arg.GetImmediateU64();
|
||||||
|
|
||||||
shift_fn(result, shift & 0x3F);
|
shift_fn(result, static_cast<int>(shift & 0x3F));
|
||||||
|
|
||||||
ctx.reg_alloc.DefineValue(inst, result);
|
ctx.reg_alloc.DefineValue(inst, result);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue