summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
diff options
context:
space:
mode:
authorSintendo <bram.speeckaert@gmail.com>2020-10-03 16:32:40 +0200
committerSintendo <bram.speeckaert@gmail.com>2020-10-03 18:28:27 +0200
commit9ac324aed32501a379ab2a81baa55f11cfa2af32 (patch)
tree9cde0cb63f40502d2e79ac071d231aa3f3d5cf73 /Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp
parenta8df2caba946e7626ad57a6132e531b6d7050cea (diff)
Jit64: fselx - Skip MOVSD (AVX)
For the non-packed variant of this instruction, a MOVSD instruction was generated to copy only the lower 64 bits of XMM1 to the destination register. This was done in order to keep the destination register's upper half intact. However, when register c and the destination register are the same, there is no need for this copy. Because the registers match and due to the way the mask is generated, VBLENDVPD will end up taking the upper half from the destination register, as intended. Before: 66 0F 57 C0 xorpd xmm0,xmm0 F2 41 0F C2 C6 06 cmpnlesd xmm0,xmm14 C4 C3 09 4B CA 00 vblendvpd xmm1,xmm14,xmm10,xmm0 F2 44 0F 10 F1 movsd xmm14,xmm1 After: 66 0F 57 C0 xorpd xmm0,xmm0 F2 41 0F C2 C6 06 cmpnlesd xmm0,xmm14 C4 43 09 4B F2 00 vblendvpd xmm14,xmm14,xmm10,xmm0
Diffstat (limited to 'Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp')
0 files changed, 0 insertions, 0 deletions