Bug 1058582 - IonMonkey MIPS: Implemented visitClzI r=dougc

This commit is contained in:
Branislav Rankov 2014-08-26 15:36:39 +02:00
parent 8ef02d3fa2
commit 29964eceb5
4 changed files with 15 additions and 3 deletions

View File

@ -961,9 +961,9 @@ Assembler::as_movf(Register rd, Register rs, uint16_t cc)
// Bit twiddling.
BufferOffset
Assembler::as_clz(Register rd, Register rs, Register rt)
Assembler::as_clz(Register rd, Register rs)
{
return writeInst(InstReg(op_special2, rs, rt, rd, ff_clz).encode());
return writeInst(InstReg(op_special2, rs, rs, rd, ff_clz).encode());
}
BufferOffset

View File

@ -898,7 +898,7 @@ class Assembler : public AssemblerShared
BufferOffset as_movf(Register rd, Register rs, uint16_t cc = 0);
// Bit twiddling.
BufferOffset as_clz(Register rd, Register rs, Register rt = Register::FromCode(0));
BufferOffset as_clz(Register rd, Register rs);
BufferOffset as_ins(Register rt, Register rs, uint16_t pos, uint16_t size);
BufferOffset as_ext(Register rt, Register rs, uint16_t pos, uint16_t size);

View File

@ -911,6 +911,16 @@ CodeGeneratorMIPS::visitUrshD(LUrshD *ins)
return true;
}
bool
CodeGeneratorMIPS::visitClzI(LClzI *ins)
{
Register input = ToRegister(ins->input());
Register output = ToRegister(ins->output());
masm.as_clz(output, input);
return true;
}
bool
CodeGeneratorMIPS::visitPowHalfD(LPowHalfD *ins)
{

View File

@ -182,6 +182,8 @@ class CodeGeneratorMIPS : public CodeGeneratorShared
virtual bool visitShiftI(LShiftI *ins);
virtual bool visitUrshD(LUrshD *ins);
virtual bool visitClzI(LClzI *ins);
virtual bool visitTestIAndBranch(LTestIAndBranch *test);
virtual bool visitCompare(LCompare *comp);
virtual bool visitCompareAndBranch(LCompareAndBranch *comp);