[ia32] Fix for no SSE4.1.

TBR=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/645553002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
bmeurer@chromium.org 2014-10-09 12:16:27 +00:00
parent 53c9f0bb3d
commit 52ec8a702f

View File

@ -2661,20 +2661,19 @@ void MacroAssembler::Move(XMMRegister dst, uint64_t src) {
} else if (lower == 0) {
Move(dst, upper);
psllq(dst, 32);
} else {
} else if (CpuFeatures::IsSupported(SSE4_1)) {
CpuFeatureScope scope(this, SSE4_1);
push(eax);
Move(eax, Immediate(lower));
movd(dst, Operand(eax));
Move(eax, Immediate(upper));
if (CpuFeatures::IsSupported(SSE4_1)) {
CpuFeatureScope scope(this, SSE4_1);
pinsrd(dst, Operand(eax), 1);
} else {
psllq(dst, 32);
movd(xmm0, Operand(eax));
orpd(dst, xmm0);
}
pinsrd(dst, Operand(eax), 1);
pop(eax);
} else {
push(Immediate(upper));
push(Immediate(lower));
movsd(dst, Operand(esp, 0));
add(esp, Immediate(kDoubleSize));
}
}
}