Bug 1289054 - Part 17: Implement the 64bit variant of Not on arm, r=bbouvier

This commit is contained in:
Hannes Verschore 2016-07-29 16:53:49 +02:00
Родитель e765133481
Коммит 08728c529c
3 изменённых файлов: 14 добавлений и 2 удалений

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

@ -1258,7 +1258,7 @@ jit::rol(Register r, int amt)
}
O2RegImmShift
jit::asr (Register r, int amt)
jit::asr(Register r, int amt)
{
MOZ_ASSERT(1 <= amt && amt <= 32);
return O2RegImmShift(r, ASR, amt);
@ -1284,7 +1284,7 @@ jit::ror(Register r, Register amt)
}
O2RegRegShift
jit::asr (Register r, Register amt)
jit::asr(Register r, Register amt)
{
return O2RegRegShift(r, ASR, amt);
}

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

@ -1611,6 +1611,17 @@ CodeGeneratorARM::visitNotI(LNotI* ins)
masm.emitSet(Assembler::Equal, ToRegister(ins->output()));
}
void
CodeGeneratorARM::visitNotI64(LNotI64* lir)
{
Register64 input = ToRegister64(lir->getInt64Operand(0));
Register output = ToRegister(lir->output());
masm.ma_orr(input.low, input.high, output);
masm.ma_cmp(output, Imm32(0));
masm.emitSet(Assembler::Equal, output);
}
void
CodeGeneratorARM::visitNotD(LNotD* ins)
{

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

@ -176,6 +176,7 @@ class CodeGeneratorARM : public CodeGeneratorShared
virtual void visitPopcntI64(LPopcntI64* ins);
virtual void visitClzI64(LClzI64* ins);
virtual void visitCtzI64(LCtzI64* ins);
virtual void visitNotI64(LNotI64* ins);
// Out of line visitors.
void visitOutOfLineBailout(OutOfLineBailout* ool);