зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1017539 part 1 - Move LoadSlotV codegen to platform-independent code. r=sstangl
This commit is contained in:
Родитель
fba7dd3788
Коммит
0ed5337b08
|
@ -1564,6 +1564,17 @@ CodeGenerator::visitSlots(LSlots *lir)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGenerator::visitLoadSlotV(LLoadSlotV *lir)
|
||||
{
|
||||
ValueOperand dest = ToOutValue(lir);
|
||||
Register base = ToRegister(lir->input());
|
||||
int32_t offset = lir->mir()->slot() * sizeof(js::Value);
|
||||
|
||||
masm.loadValue(Address(base, offset), dest);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGenerator::visitStoreSlotV(LStoreSlotV *store)
|
||||
{
|
||||
|
|
|
@ -106,6 +106,7 @@ class CodeGenerator : public CodeGeneratorSpecific
|
|||
bool visitLambdaPar(LLambdaPar *lir);
|
||||
bool visitPointer(LPointer *lir);
|
||||
bool visitSlots(LSlots *lir);
|
||||
bool visitLoadSlotV(LLoadSlotV *lir);
|
||||
bool visitStoreSlotV(LStoreSlotV *store);
|
||||
bool visitElements(LElements *lir);
|
||||
bool visitConvertElementsToDoubles(LConvertElementsToDoubles *lir);
|
||||
|
|
|
@ -1727,17 +1727,6 @@ CodeGeneratorARM::visitNotF(LNotF *ins)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorARM::visitLoadSlotV(LLoadSlotV *load)
|
||||
{
|
||||
const ValueOperand out = ToOutValue(load);
|
||||
Register base = ToRegister(load->input());
|
||||
int32_t offset = load->mir()->slot() * sizeof(js::Value);
|
||||
|
||||
masm.loadValue(Address(base, offset), out);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorARM::visitLoadSlotT(LLoadSlotT *load)
|
||||
{
|
||||
|
|
|
@ -183,7 +183,6 @@ class CodeGeneratorARM : public CodeGeneratorShared
|
|||
bool visitDouble(LDouble *ins);
|
||||
bool visitFloat32(LFloat32 *ins);
|
||||
|
||||
bool visitLoadSlotV(LLoadSlotV *load);
|
||||
bool visitLoadSlotT(LLoadSlotT *load);
|
||||
bool visitStoreSlotT(LStoreSlotT *load);
|
||||
|
||||
|
|
|
@ -1754,17 +1754,6 @@ CodeGeneratorMIPS::visitNotF(LNotF *ins)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorMIPS::visitLoadSlotV(LLoadSlotV *load)
|
||||
{
|
||||
const ValueOperand out = ToOutValue(load);
|
||||
Register base = ToRegister(load->input());
|
||||
int32_t offset = load->mir()->slot() * sizeof(js::Value);
|
||||
|
||||
masm.loadValue(Address(base, offset), out);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorMIPS::visitLoadSlotT(LLoadSlotT *load)
|
||||
{
|
||||
|
|
|
@ -243,7 +243,6 @@ class CodeGeneratorMIPS : public CodeGeneratorShared
|
|||
bool visitDouble(LDouble *ins);
|
||||
bool visitFloat32(LFloat32 *ins);
|
||||
|
||||
bool visitLoadSlotV(LLoadSlotV *load);
|
||||
bool visitLoadSlotT(LLoadSlotT *load);
|
||||
bool visitStoreSlotT(LStoreSlotT *load);
|
||||
|
||||
|
|
|
@ -133,17 +133,6 @@ CodeGeneratorX64::visitUnbox(LUnbox *unbox)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorX64::visitLoadSlotV(LLoadSlotV *load)
|
||||
{
|
||||
ValueOperand dest = ToOutValue(load);
|
||||
Register base = ToRegister(load->input());
|
||||
int32_t offset = load->mir()->slot() * sizeof(js::Value);
|
||||
|
||||
masm.loadValue(Address(base, offset), dest);
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
CodeGeneratorX64::loadUnboxedValue(Operand source, MIRType type, const LDefinition *dest)
|
||||
{
|
||||
|
|
|
@ -38,7 +38,6 @@ class CodeGeneratorX64 : public CodeGeneratorX86Shared
|
|||
bool visitValue(LValue *value);
|
||||
bool visitBox(LBox *box);
|
||||
bool visitUnbox(LUnbox *unbox);
|
||||
bool visitLoadSlotV(LLoadSlotV *ins);
|
||||
bool visitLoadSlotT(LLoadSlotT *load);
|
||||
bool visitStoreSlotT(LStoreSlotT *store);
|
||||
bool visitLoadElementT(LLoadElementT *load);
|
||||
|
|
|
@ -137,17 +137,6 @@ CodeGeneratorX86::visitUnbox(LUnbox *unbox)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorX86::visitLoadSlotV(LLoadSlotV *load)
|
||||
{
|
||||
const ValueOperand out = ToOutValue(load);
|
||||
Register base = ToRegister(load->input());
|
||||
int32_t offset = load->mir()->slot() * sizeof(js::Value);
|
||||
|
||||
masm.loadValue(Address(base, offset), out);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
CodeGeneratorX86::visitLoadSlotT(LLoadSlotT *load)
|
||||
{
|
||||
|
|
|
@ -52,7 +52,6 @@ class CodeGeneratorX86 : public CodeGeneratorX86Shared
|
|||
bool visitBoxFloatingPoint(LBoxFloatingPoint *box);
|
||||
bool visitUnbox(LUnbox *unbox);
|
||||
bool visitValue(LValue *value);
|
||||
bool visitLoadSlotV(LLoadSlotV *load);
|
||||
bool visitLoadSlotT(LLoadSlotT *load);
|
||||
bool visitStoreSlotT(LStoreSlotT *store);
|
||||
bool visitLoadElementT(LLoadElementT *load);
|
||||
|
|
Загрузка…
Ссылка в новой задаче