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 <anthony.gutierrez@amd.com>
Reviewed-by: Michael LeBeane <Michael.Lebeane@amd.com>
Reviewed-by: Gabe Black <gabeblack@google.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Brandon Potter
2019-05-31 15:02:11 -04:00
committed by Brandon Potter
parent ea088f5150
commit 87674842a6

View File

@@ -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
};