emit_x64_data_processing: Correct bug in ArithmeticShiftRight64
This branch of this implementation is unused, and thus has not been tested.
This commit is contained in:
parent
68088c277c
commit
6759942b56
1 changed files with 1 additions and 1 deletions
|
@ -681,7 +681,7 @@ void EmitX64::EmitArithmeticShiftRight64(EmitContext& ctx, IR::Inst* inst) {
|
||||||
// We note that all shift values above 63 have the same behaviour as 63 does, so we saturate `shift` to 63.
|
// We note that all shift values above 63 have the same behaviour as 63 does, so we saturate `shift` to 63.
|
||||||
code.mov(const63, 63);
|
code.mov(const63, 63);
|
||||||
code.cmp(code.cl, u32(63));
|
code.cmp(code.cl, u32(63));
|
||||||
code.cmovg(code.ecx, const63);
|
code.cmovnb(code.ecx, const63);
|
||||||
code.sar(result, code.cl);
|
code.sar(result, code.cl);
|
||||||
|
|
||||||
ctx.reg_alloc.DefineValue(inst, result);
|
ctx.reg_alloc.DefineValue(inst, result);
|
||||||
|
|
Loading…
Reference in a new issue