Bug 1279248 - Part 23: Implement the 64bit variant of Test on x86, r=nbp

This commit is contained in:
Hannes Verschore 2016-07-29 16:53:47 +02:00
Родитель 2abc9da483
Коммит 488c1ec17f
2 изменённых файлов: 12 добавлений и 0 удалений

Просмотреть файл

@ -1608,3 +1608,14 @@ CodeGeneratorX86::visitInt64ToFloatingPoint(LInt64ToFloatingPoint* lir)
if (outputType == MIRType::Float32)
masm.convertDoubleToFloat32(output, output);
}
void
CodeGeneratorX86::visitTestI64AndBranch(LTestI64AndBranch* lir)
{
Register64 input = ToRegister64(lir->getInt64Operand(0));
masm.testl(input.high, input.high);
jumpToBlock(lir->ifTrue(), Assembler::NonZero);
masm.testl(input.low, input.low);
emitBranch(Assembler::NonZero, lir->ifTrue(), lir->ifFalse());
}

Просмотреть файл

@ -89,6 +89,7 @@ class CodeGeneratorX86 : public CodeGeneratorX86Shared
void visitNotI64(LNotI64* lir);
void visitWasmTruncateToInt64(LWasmTruncateToInt64* lir);
void visitInt64ToFloatingPoint(LInt64ToFloatingPoint* lir);
void visitTestI64AndBranch(LTestI64AndBranch* lir);
private:
void asmJSAtomicComputeAddress(Register addrTemp, Register ptrReg,