From bfa1b678db2dc9574ef90f32a2c77fe4d7575789 Mon Sep 17 00:00:00 2001 From: sydhds Date: Tue, 10 Jan 2023 15:33:57 +0100 Subject: [PATCH] Rework fix when x != dst --- lib/compiler-singlepass/src/emitter_x64.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/compiler-singlepass/src/emitter_x64.rs b/lib/compiler-singlepass/src/emitter_x64.rs index bcf7af79b1f..8a04a45c42d 100644 --- a/lib/compiler-singlepass/src/emitter_x64.rs +++ b/lib/compiler-singlepass/src/emitter_x64.rs @@ -909,12 +909,10 @@ macro_rules! sse_round_fn { |emitter: &mut AssemblerX64, precision: Precision, src1: XMM, src2: XMMOrMemory, dst: XMM| { match src2 { XMMOrMemory::XMM(x) => { - if src1 == x { - move_src_to_dst(emitter, precision, x, dst); - } else { + if x != dst { move_src_to_dst(emitter, precision, src1, dst); } - dynasm!(emitter ; $ins Rx((dst as u8)), Rx((dst as u8)), $mode) + dynasm!(emitter ; $ins Rx((x as u8)), Rx((dst as u8)), $mode) } XMMOrMemory::Memory(base, disp) => { dynasm!(emitter ; $ins Rx((dst as u8)), [Rq((base as u8)) + disp], $mode)