Bug 1289054 - Part 20: Implement the 64bit variant of Test on arm, r=nbp

This commit is contained in:
Hannes Verschore 2016-07-29 16:53:50 +02:00
parent 24edb3d587
commit cb373bd27d
2 changed files with 11 additions and 0 deletions

View File

@ -3534,3 +3534,13 @@ CodeGeneratorARM::visitCtzI64(LCtzI64* lir)
masm.move32(Imm32(0), output.high);
}
void
CodeGeneratorARM::visitTestI64AndBranch(LTestI64AndBranch* lir)
{
Register64 input = ToRegister64(lir->getInt64Operand(0));
masm.ma_cmp(input.high, Imm32(0));
jumpToBlock(lir->ifTrue(), Assembler::NonZero);
masm.ma_cmp(input.low, Imm32(0));
emitBranch(Assembler::NonZero, lir->ifTrue(), lir->ifFalse());
}

View File

@ -179,6 +179,7 @@ class CodeGeneratorARM : public CodeGeneratorShared
virtual void visitNotI64(LNotI64* ins);
virtual void visitWasmTruncateToInt64(LWasmTruncateToInt64* ins);
virtual void visitInt64ToFloatingPointCall(LInt64ToFloatingPointCall* lir);
virtual void visitTestI64AndBranch(LTestI64AndBranch* lir);
// Out of line visitors.
void visitOutOfLineBailout(OutOfLineBailout* ool);