From: Brandon Potter Date: Fri, 31 May 2019 19:02:11 +0000 (-0400) Subject: x86: fix movsd bug on %xmm register X-Git-Tag: v19.0.0.0~786 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=87674842a6aeb2c94bf216a6c798b6db9814e00a;p=gem5.git x86: fix movsd bug on %xmm register The movsd instruction should zero out half the register, but does not do it. This changeset adds the necessary microop to the instruction to cause correct behavior. Change-Id: I5278da3634c78a97ed0586f687a36c6dc5a34c60 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/19068 Reviewed-by: Anthony Gutierrez Reviewed-by: Michael LeBeane Reviewed-by: Gabe Black Reviewed-by: Jason Lowe-Power Maintainer: Gabe Black Tested-by: kokoro --- diff --git a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py index 81dfc7fee..13e900d25 100644 --- a/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py +++ b/src/arch/x86/isa/insts/simd128/floating_point/data_transfer/move.py @@ -256,13 +256,13 @@ def macroop MOVSS_P_XMM { }; def macroop MOVSD_XMM_M { - # Zero xmmh + lfpimm xmmh, 0 ldfp xmml, seg, sib, disp, dataSize=8 }; def macroop MOVSD_XMM_P { rdip t7 - # Zero xmmh + lfpimm xmmh, 0 ldfp xmml, seg, riprel, disp, dataSize=8 };