[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:
parent
53c9f0bb3d
commit
52ec8a702f
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user