mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Bug 948241 - IonMonkey: Use FixedList in MAsmJSCall. r=luke
This commit is contained in:
parent
4cc0699530
commit
c07fe2b7cd
@ -2767,21 +2767,17 @@ MAsmJSCall::New(TempAllocator &alloc, Callee callee, const Args &args, MIRType r
|
||||
call->callee_ = callee;
|
||||
call->setResultType(resultType);
|
||||
|
||||
call->numArgs_ = args.length();
|
||||
call->argRegs_ = (AnyRegister *)GetIonContext()->temp->allocate(call->numArgs_ * sizeof(AnyRegister));
|
||||
if (!call->argRegs_)
|
||||
if (!call->argRegs_.init(alloc, args.length()))
|
||||
return nullptr;
|
||||
for (size_t i = 0; i < call->numArgs_; i++)
|
||||
for (size_t i = 0; i < call->argRegs_.length(); i++)
|
||||
call->argRegs_[i] = args[i].reg;
|
||||
|
||||
call->numOperands_ = call->numArgs_ + (callee.which() == Callee::Dynamic ? 1 : 0);
|
||||
call->operands_ = (MUse *)GetIonContext()->temp->allocate(call->numOperands_ * sizeof(MUse));
|
||||
if (!call->operands_)
|
||||
if (!call->operands_.init(alloc, call->argRegs_.length() + (callee.which() == Callee::Dynamic ? 1 : 0)))
|
||||
return nullptr;
|
||||
for (size_t i = 0; i < call->numArgs_; i++)
|
||||
for (size_t i = 0; i < call->argRegs_.length(); i++)
|
||||
call->setOperand(i, args[i].def);
|
||||
if (callee.which() == Callee::Dynamic)
|
||||
call->setOperand(call->numArgs_, callee.dynamic());
|
||||
call->setOperand(call->argRegs_.length(), callee.dynamic());
|
||||
|
||||
return call;
|
||||
}
|
||||
|
@ -9484,10 +9484,8 @@ class MAsmJSCall MOZ_FINAL : public MInstruction
|
||||
};
|
||||
|
||||
Callee callee_;
|
||||
size_t numOperands_;
|
||||
MUse *operands_;
|
||||
size_t numArgs_;
|
||||
AnyRegister *argRegs_;
|
||||
FixedList<MUse> operands_;
|
||||
FixedList<AnyRegister> argRegs_;
|
||||
size_t spIncrement_;
|
||||
|
||||
protected:
|
||||
@ -9513,17 +9511,17 @@ class MAsmJSCall MOZ_FINAL : public MInstruction
|
||||
MIRType resultType, size_t spIncrement);
|
||||
|
||||
size_t numOperands() const {
|
||||
return numOperands_;
|
||||
return operands_.length();
|
||||
}
|
||||
MDefinition *getOperand(size_t index) const {
|
||||
JS_ASSERT(index < numOperands_);
|
||||
JS_ASSERT(index < numOperands());
|
||||
return operands_[index].producer();
|
||||
}
|
||||
size_t numArgs() const {
|
||||
return numArgs_;
|
||||
return argRegs_.length();
|
||||
}
|
||||
AnyRegister registerForArg(size_t index) const {
|
||||
JS_ASSERT(index < numArgs_);
|
||||
JS_ASSERT(index < numArgs());
|
||||
return argRegs_[index];
|
||||
}
|
||||
Callee callee() const {
|
||||
@ -9531,8 +9529,8 @@ class MAsmJSCall MOZ_FINAL : public MInstruction
|
||||
}
|
||||
size_t dynamicCalleeOperandIndex() const {
|
||||
JS_ASSERT(callee_.which() == Callee::Dynamic);
|
||||
JS_ASSERT(numArgs_ == numOperands_ - 1);
|
||||
return numArgs_;
|
||||
JS_ASSERT(numArgs() == numOperands() - 1);
|
||||
return numArgs();
|
||||
}
|
||||
size_t spIncrement() const {
|
||||
return spIncrement_;
|
||||
|
Loading…
Reference in New Issue
Block a user