From c07fe2b7cd5816ad1ef4744d28f32bf563bd39e3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Mon, 9 Dec 2013 19:39:44 -0800 Subject: [PATCH] Bug 948241 - IonMonkey: Use FixedList in MAsmJSCall. r=luke --- js/src/jit/MIR.cpp | 14 +++++--------- js/src/jit/MIR.h | 18 ++++++++---------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/js/src/jit/MIR.cpp b/js/src/jit/MIR.cpp index dee3d2d0253f..aad9234a367f 100644 --- a/js/src/jit/MIR.cpp +++ b/js/src/jit/MIR.cpp @@ -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; } diff --git a/js/src/jit/MIR.h b/js/src/jit/MIR.h index bbc5866aef1f..1cf9adfa4365 100644 --- a/js/src/jit/MIR.h +++ b/js/src/jit/MIR.h @@ -9484,10 +9484,8 @@ class MAsmJSCall MOZ_FINAL : public MInstruction }; Callee callee_; - size_t numOperands_; - MUse *operands_; - size_t numArgs_; - AnyRegister *argRegs_; + FixedList operands_; + FixedList 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_;