Bug 988475 - Rename IonFrame_* enum to JitFrame_*. r=nbp

--HG--
extra : rebase_source : 597e04cf1c6bcd2a177d1bc1386d222f8cb62a6d
This commit is contained in:
Jan de Mooij 2014-03-27 10:11:55 -04:00
parent 8f72b31966
commit 74d82bcb98
32 changed files with 194 additions and 194 deletions

View File

@ -6521,7 +6521,7 @@ GenerateFFIIonExit(ModuleCompiler &m, const ModuleCompiler::ExitDescriptor &exit
masm.reserveStack(stackDec - extraBytes);
// 1. Descriptor
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed() + extraBytes, IonFrame_Entry);
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed() + extraBytes, JitFrame_Entry);
masm.storePtr(ImmWord(uintptr_t(descriptor)), Address(StackPointer, 0));
// 2. Callee

View File

@ -50,7 +50,7 @@ SnapshotIterator::SnapshotIterator(const IonBailoutIterator &iter)
void
IonBailoutIterator::dump() const
{
if (type_ == IonFrame_OptimizedJS) {
if (type_ == JitFrame_IonJS) {
InlineFrameIterator frames(GetJSContextFromJitCode(), this);
for (;;) {
frames.dump();
@ -150,7 +150,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
const OsiIndex *osiIndex = frame.osiIndex();
current_ = (uint8_t *) frame.fp();
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = frame.frameSize();
snapshotOffset_ = osiIndex->snapshotOffset();
}

View File

@ -317,23 +317,23 @@ struct BaselineStackBuilder
BufferPointer<IonJSFrameLayout> topFrame = topFrameAddress();
FrameType type = topFrame->prevType();
// For OptimizedJS and Entry frames, the "saved" frame pointer in the baseline
// For IonJS and Entry frames, the "saved" frame pointer in the baseline
// frame is meaningless, since Ion saves all registers before calling other ion
// frames, and the entry frame saves all registers too.
if (type == IonFrame_OptimizedJS || type == IonFrame_Entry)
if (type == JitFrame_IonJS || type == JitFrame_Entry)
return nullptr;
// BaselineStub - Baseline calling into Ion.
// PrevFramePtr needs to point to the BaselineStubFrame's saved frame pointer.
// STACK_START_ADDR + IonJSFrameLayout::Size() + PREV_FRAME_SIZE
// - IonBaselineStubFrameLayout::reverseOffsetOfSavedFramePtr()
if (type == IonFrame_BaselineStub) {
if (type == JitFrame_BaselineStub) {
size_t offset = IonJSFrameLayout::Size() + topFrame->prevFrameLocalSize() +
IonBaselineStubFrameLayout::reverseOffsetOfSavedFramePtr();
return virtualPointerAtStackOffset(offset);
}
JS_ASSERT(type == IonFrame_Rectifier);
JS_ASSERT(type == JitFrame_Rectifier);
// Rectifier - behaviour depends on the frame preceding the rectifier frame, and
// whether the arch is x86 or not. The x86 rectifier frame saves the frame pointer,
// so we can calculate it directly. For other archs, the previous frame pointer
@ -350,11 +350,11 @@ struct BaselineStackBuilder
BufferPointer<IonRectifierFrameLayout> priorFrame =
pointerAtStackOffset<IonRectifierFrameLayout>(priorOffset);
FrameType priorType = priorFrame->prevType();
JS_ASSERT(priorType == IonFrame_OptimizedJS || priorType == IonFrame_BaselineStub);
JS_ASSERT(priorType == JitFrame_IonJS || priorType == JitFrame_BaselineStub);
// If the frame preceding the rectifier is an OptimizedJS frame, then once again
// If the frame preceding the rectifier is an IonJS frame, then once again
// the frame pointer does not matter.
if (priorType == IonFrame_OptimizedJS)
if (priorType == JitFrame_IonJS)
return nullptr;
// Otherwise, the frame preceding the rectifier is a BaselineStub frame.
@ -1045,7 +1045,7 @@ InitFromBailout(JSContext *cx, HandleScript caller, jsbytecode *callerPC,
// Write out descriptor of BaselineJS frame.
size_t baselineFrameDescr = MakeFrameDescriptor((uint32_t) builder.framePushed(),
IonFrame_BaselineJS);
JitFrame_BaselineJS);
if (!builder.writeWord(baselineFrameDescr, "Descriptor"))
return false;
@ -1134,7 +1134,7 @@ InitFromBailout(JSContext *cx, HandleScript caller, jsbytecode *callerPC,
// Calculate frame size for descriptor.
size_t baselineStubFrameSize = builder.framePushed() - startOfBaselineStubFrame;
size_t baselineStubFrameDescr = MakeFrameDescriptor((uint32_t) baselineStubFrameSize,
IonFrame_BaselineStub);
JitFrame_BaselineStub);
// Push actual argc
if (!builder.writeWord(actualArgc, "ActualArgc"))
@ -1228,7 +1228,7 @@ InitFromBailout(JSContext *cx, HandleScript caller, jsbytecode *callerPC,
// Calculate frame size for descriptor.
size_t rectifierFrameSize = builder.framePushed() - startOfRectifierFrame;
size_t rectifierFrameDescr = MakeFrameDescriptor((uint32_t) rectifierFrameSize,
IonFrame_Rectifier);
JitFrame_Rectifier);
// Push actualArgc
if (!builder.writeWord(actualArgc, "ActualArgc"))
@ -1265,16 +1265,16 @@ jit::BailoutIonToBaseline(JSContext *cx, JitActivation *activation, IonBailoutIt
#endif
// The caller of the top frame must be one of the following:
// OptimizedJS - Ion calling into Ion.
// IonJS - Ion calling into Ion.
// BaselineStub - Baseline calling into Ion.
// Entry - Interpreter or other calling into Ion.
// Rectifier - Arguments rectifier calling into Ion.
JS_ASSERT(iter.isOptimizedJS());
JS_ASSERT(iter.isIonJS());
FrameType prevFrameType = iter.prevType();
JS_ASSERT(prevFrameType == IonFrame_OptimizedJS ||
prevFrameType == IonFrame_BaselineStub ||
prevFrameType == IonFrame_Entry ||
prevFrameType == IonFrame_Rectifier);
JS_ASSERT(prevFrameType == JitFrame_IonJS ||
prevFrameType == JitFrame_BaselineStub ||
prevFrameType == JitFrame_Entry ||
prevFrameType == JitFrame_Rectifier);
// All incoming frames are going to look like this:
//
@ -1523,7 +1523,7 @@ jit::FinishBailoutToBaseline(BaselineBailoutInfo *bailoutInfo)
uint32_t frameno = 0;
while (frameno < numFrames) {
JS_ASSERT(!iter.isOptimizedJS());
JS_ASSERT(!iter.isIonJS());
if (iter.isBaselineJS()) {
BaselineFrame *frame = iter.baselineFrame();

View File

@ -751,10 +751,10 @@ IsTopFrameConstructing(JSContext *cx)
JS_ASSERT(cx->currentlyRunningInJit());
JitActivationIterator activations(cx->runtime());
IonFrameIterator iter(activations);
JS_ASSERT(iter.type() == IonFrame_Exit);
JS_ASSERT(iter.type() == JitFrame_Exit);
++iter;
JS_ASSERT(iter.type() == IonFrame_BaselineStub);
JS_ASSERT(iter.type() == JitFrame_BaselineStub);
++iter;
JS_ASSERT(iter.isBaselineJS());

View File

@ -932,10 +932,10 @@ MarkActiveBaselineScripts(JSRuntime *rt, const JitActivationIterator &activation
{
for (jit::IonFrameIterator iter(activation); !iter.done(); ++iter) {
switch (iter.type()) {
case IonFrame_BaselineJS:
case JitFrame_BaselineJS:
iter.script()->baselineScript()->setActive();
break;
case IonFrame_OptimizedJS: {
case JitFrame_IonJS: {
// Keep the baseline script around, since bailouts from the ion
// jitcode might need to re-enter into the baseline jitcode.
iter.script()->baselineScript()->setActive();

View File

@ -2114,7 +2114,7 @@ CodeGenerator::visitCallGeneric(LCallGeneric *call)
masm.freeStack(unusedStack);
// Construct the IonFramePrefix.
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed(), JitFrame_IonJS);
masm.Push(Imm32(call->numActualArgs()));
masm.Push(calleereg);
masm.Push(Imm32(descriptor));
@ -2235,7 +2235,7 @@ CodeGenerator::visitCallKnown(LCallKnown *call)
masm.freeStack(unusedStack);
// Construct the IonFramePrefix.
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(masm.framePushed(), JitFrame_IonJS);
masm.Push(Imm32(call->numActualArgs()));
masm.Push(calleereg);
masm.Push(Imm32(descriptor));
@ -2442,7 +2442,7 @@ CodeGenerator::visitApplyArgsGeneric(LApplyArgsGeneric *apply)
// Create the frame descriptor.
unsigned pushed = masm.framePushed();
masm.addPtr(Imm32(pushed), copyreg);
masm.makeFrameDescriptor(copyreg, IonFrame_OptimizedJS);
masm.makeFrameDescriptor(copyreg, JitFrame_IonJS);
masm.Push(argcreg);
masm.Push(calleereg);

View File

@ -2464,42 +2464,42 @@ InvalidateActivation(FreeOp *fop, uint8_t *ionTop, bool invalidateAll)
size_t frameno = 1;
for (IonFrameIterator it(ionTop, SequentialExecution); !it.done(); ++it, ++frameno) {
JS_ASSERT_IF(frameno == 1, it.type() == IonFrame_Exit);
JS_ASSERT_IF(frameno == 1, it.type() == JitFrame_Exit);
#ifdef DEBUG
switch (it.type()) {
case IonFrame_Exit:
case JitFrame_Exit:
IonSpew(IonSpew_Invalidate, "#%d exit frame @ %p", frameno, it.fp());
break;
case IonFrame_BaselineJS:
case IonFrame_OptimizedJS:
case JitFrame_BaselineJS:
case JitFrame_IonJS:
{
JS_ASSERT(it.isScripted());
const char *type = it.isOptimizedJS() ? "Optimized" : "Baseline";
const char *type = it.isIonJS() ? "Optimized" : "Baseline";
IonSpew(IonSpew_Invalidate, "#%d %s JS frame @ %p, %s:%d (fun: %p, script: %p, pc %p)",
frameno, type, it.fp(), it.script()->filename(), it.script()->lineno(),
it.maybeCallee(), (JSScript *)it.script(), it.returnAddressToFp());
break;
}
case IonFrame_BaselineStub:
case JitFrame_BaselineStub:
IonSpew(IonSpew_Invalidate, "#%d baseline stub frame @ %p", frameno, it.fp());
break;
case IonFrame_Rectifier:
case JitFrame_Rectifier:
IonSpew(IonSpew_Invalidate, "#%d rectifier frame @ %p", frameno, it.fp());
break;
case IonFrame_Unwound_OptimizedJS:
case IonFrame_Unwound_BaselineStub:
case JitFrame_Unwound_IonJS:
case JitFrame_Unwound_BaselineStub:
MOZ_ASSUME_UNREACHABLE("invalid");
case IonFrame_Unwound_Rectifier:
case JitFrame_Unwound_Rectifier:
IonSpew(IonSpew_Invalidate, "#%d unwound rectifier frame @ %p", frameno, it.fp());
break;
case IonFrame_Entry:
case JitFrame_Entry:
IonSpew(IonSpew_Invalidate, "#%d entry frame @ %p", frameno, it.fp());
break;
}
#endif
if (!it.isOptimizedJS())
if (!it.isIonJS())
continue;
// See if the frame has already been invalidated.

View File

@ -26,40 +26,40 @@ namespace jit {
enum FrameType
{
// A JS frame is analagous to a js::InterpreterFrame, representing one scripted
// functon activation. OptimizedJS frames are used by the optimizing compiler.
IonFrame_OptimizedJS,
// functon activation. IonJS frames are used by the optimizing compiler.
JitFrame_IonJS,
// JS frame used by the baseline JIT.
IonFrame_BaselineJS,
JitFrame_BaselineJS,
// Frame pushed for baseline JIT stubs that make non-tail calls, so that the
// return address -> ICEntry mapping works.
IonFrame_BaselineStub,
JitFrame_BaselineStub,
// The entry frame is the initial prologue block transitioning from the VM
// into the Ion world.
IonFrame_Entry,
JitFrame_Entry,
// A rectifier frame sits in between two JS frames, adapting argc != nargs
// mismatches in calls.
IonFrame_Rectifier,
JitFrame_Rectifier,
// An unwound JS frame is a JS frame signalling that its callee frame has been
// turned into an exit frame (see EnsureExitFrame). Used by Ion bailouts and
// Baseline exception unwinding.
IonFrame_Unwound_OptimizedJS,
JitFrame_Unwound_IonJS,
// Like Unwound_OptimizedJS, but the caller is a baseline stub frame.
IonFrame_Unwound_BaselineStub,
// Like Unwound_IonJS, but the caller is a baseline stub frame.
JitFrame_Unwound_BaselineStub,
// An unwound rectifier frame is a rectifier frame signalling that its callee
// frame has been turned into an exit frame (see EnsureExitFrame).
IonFrame_Unwound_Rectifier,
JitFrame_Unwound_Rectifier,
// An exit frame is necessary for transitioning from a JS frame into C++.
// From within C++, an exit frame is always the last frame in any
// JitActivation.
IonFrame_Exit
JitFrame_Exit
};
enum ReadFrameArgsBehavior {
@ -99,7 +99,7 @@ class IonFrameIterator
public:
explicit IonFrameIterator(uint8_t *top, ExecutionMode mode)
: current_(top),
type_(IonFrame_Exit),
type_(JitFrame_Exit),
returnAddressToFp_(nullptr),
frameSize_(0),
cachedSafepointIndex_(nullptr),
@ -141,16 +141,16 @@ class IonFrameIterator
bool checkInvalidation() const;
bool isScripted() const {
return type_ == IonFrame_BaselineJS || type_ == IonFrame_OptimizedJS;
return type_ == JitFrame_BaselineJS || type_ == JitFrame_IonJS;
}
bool isBaselineJS() const {
return type_ == IonFrame_BaselineJS;
return type_ == JitFrame_BaselineJS;
}
bool isOptimizedJS() const {
return type_ == IonFrame_OptimizedJS;
bool isIonJS() const {
return type_ == JitFrame_IonJS;
}
bool isBaselineStub() const {
return type_ == IonFrame_BaselineStub;
return type_ == JitFrame_BaselineStub;
}
bool isNative() const;
bool isOOLNative() const;
@ -158,7 +158,7 @@ class IonFrameIterator
bool isOOLProxy() const;
bool isDOMExit() const;
bool isEntry() const {
return type_ == IonFrame_Entry;
return type_ == JitFrame_Entry;
}
bool isFunctionFrame() const;
@ -186,14 +186,14 @@ class IonFrameIterator
// Returns the stack space used by the current frame, in bytes. This does
// not include the size of its fixed header.
size_t frameSize() const {
JS_ASSERT(type_ != IonFrame_Exit);
JS_ASSERT(type_ != JitFrame_Exit);
return frameSize_;
}
// Functions used to iterate on frames. When prevType is IonFrame_Entry,
// Functions used to iterate on frames. When prevType is JitFrame_Entry,
// the current frame is the last frame.
inline bool done() const {
return type_ == IonFrame_Entry;
return type_ == JitFrame_Entry;
}
IonFrameIterator &operator++();

View File

@ -54,17 +54,17 @@ IonFrameIterator::prevType() const
inline bool
IonFrameIterator::isFakeExitFrame() const
{
bool res = (prevType() == IonFrame_Unwound_Rectifier ||
prevType() == IonFrame_Unwound_OptimizedJS ||
prevType() == IonFrame_Unwound_BaselineStub);
JS_ASSERT_IF(res, type() == IonFrame_Exit || type() == IonFrame_BaselineJS);
bool res = (prevType() == JitFrame_Unwound_Rectifier ||
prevType() == JitFrame_Unwound_IonJS ||
prevType() == JitFrame_Unwound_BaselineStub);
JS_ASSERT_IF(res, type() == JitFrame_Exit || type() == JitFrame_BaselineJS);
return res;
}
inline IonExitFrameLayout *
IonFrameIterator::exitFrame() const
{
JS_ASSERT(type() == IonFrame_Exit);
JS_ASSERT(type() == JitFrame_Exit);
JS_ASSERT(!isFakeExitFrame());
return (IonExitFrameLayout *) fp();
}
@ -73,7 +73,7 @@ inline BaselineFrame *
GetTopBaselineFrame(JSContext *cx)
{
IonFrameIterator iter(cx);
JS_ASSERT(iter.type() == IonFrame_Exit);
JS_ASSERT(iter.type() == JitFrame_Exit);
++iter;
if (iter.isBaselineStub())
++iter;

View File

@ -73,7 +73,7 @@ ReadFrameBooleanSlot(IonJSFrameLayout *fp, int32_t slot)
IonFrameIterator::IonFrameIterator(JSContext *cx)
: current_(cx->mainThread().ionTop),
type_(IonFrame_Exit),
type_(JitFrame_Exit),
returnAddressToFp_(nullptr),
frameSize_(0),
cachedSafepointIndex_(nullptr),
@ -84,7 +84,7 @@ IonFrameIterator::IonFrameIterator(JSContext *cx)
IonFrameIterator::IonFrameIterator(const ActivationIterator &activations)
: current_(activations.jitTop()),
type_(IonFrame_Exit),
type_(JitFrame_Exit),
returnAddressToFp_(nullptr),
frameSize_(0),
cachedSafepointIndex_(nullptr),
@ -95,7 +95,7 @@ IonFrameIterator::IonFrameIterator(const ActivationIterator &activations)
IonFrameIterator::IonFrameIterator(IonJSFrameLayout *fp, ExecutionMode mode)
: current_((uint8_t *)fp),
type_(IonFrame_OptimizedJS),
type_(JitFrame_IonJS),
returnAddressToFp_(fp->returnAddress()),
frameSize_(fp->prevFrameLocalSize()),
mode_(mode)
@ -160,7 +160,7 @@ IonFrameIterator::maybeCallee() const
bool
IonFrameIterator::isNative() const
{
if (type_ != IonFrame_Exit || isFakeExitFrame())
if (type_ != JitFrame_Exit || isFakeExitFrame())
return false;
return exitFrame()->footer()->jitCode() == nullptr;
}
@ -168,7 +168,7 @@ IonFrameIterator::isNative() const
bool
IonFrameIterator::isOOLNative() const
{
if (type_ != IonFrame_Exit)
if (type_ != JitFrame_Exit)
return false;
return exitFrame()->footer()->jitCode() == ION_FRAME_OOL_NATIVE;
}
@ -176,7 +176,7 @@ IonFrameIterator::isOOLNative() const
bool
IonFrameIterator::isOOLPropertyOp() const
{
if (type_ != IonFrame_Exit)
if (type_ != JitFrame_Exit)
return false;
return exitFrame()->footer()->jitCode() == ION_FRAME_OOL_PROPERTY_OP;
}
@ -184,7 +184,7 @@ IonFrameIterator::isOOLPropertyOp() const
bool
IonFrameIterator::isOOLProxy() const
{
if (type_ != IonFrame_Exit)
if (type_ != JitFrame_Exit)
return false;
return exitFrame()->footer()->jitCode() == ION_FRAME_OOL_PROXY;
}
@ -192,7 +192,7 @@ IonFrameIterator::isOOLProxy() const
bool
IonFrameIterator::isDOMExit() const
{
if (type_ != IonFrame_Exit)
if (type_ != JitFrame_Exit)
return false;
return exitFrame()->isDomExit();
}
@ -254,19 +254,19 @@ static inline size_t
SizeOfFramePrefix(FrameType type)
{
switch (type) {
case IonFrame_Entry:
case JitFrame_Entry:
return IonEntryFrameLayout::Size();
case IonFrame_BaselineJS:
case IonFrame_OptimizedJS:
case IonFrame_Unwound_OptimizedJS:
case JitFrame_BaselineJS:
case JitFrame_IonJS:
case JitFrame_Unwound_IonJS:
return IonJSFrameLayout::Size();
case IonFrame_BaselineStub:
case JitFrame_BaselineStub:
return IonBaselineStubFrameLayout::Size();
case IonFrame_Rectifier:
case JitFrame_Rectifier:
return IonRectifierFrameLayout::Size();
case IonFrame_Unwound_Rectifier:
case JitFrame_Unwound_Rectifier:
return IonUnwoundRectifierFrameLayout::Size();
case IonFrame_Exit:
case JitFrame_Exit:
return IonExitFrameLayout::Size();
default:
MOZ_ASSUME_UNREACHABLE("unknown frame type");
@ -281,9 +281,9 @@ IonFrameIterator::prevFp() const
// needed because the descriptor size of JS-to-JS frame which is just after
// a Rectifier frame should not change. (cf EnsureExitFrame function)
if (isFakeExitFrame()) {
JS_ASSERT(SizeOfFramePrefix(IonFrame_BaselineJS) ==
SizeOfFramePrefix(IonFrame_OptimizedJS));
currentSize = SizeOfFramePrefix(IonFrame_OptimizedJS);
JS_ASSERT(SizeOfFramePrefix(JitFrame_BaselineJS) ==
SizeOfFramePrefix(JitFrame_IonJS));
currentSize = SizeOfFramePrefix(JitFrame_IonJS);
}
currentSize += current()->prevFrameLocalSize();
return current_ + currentSize;
@ -292,15 +292,15 @@ IonFrameIterator::prevFp() const
IonFrameIterator &
IonFrameIterator::operator++()
{
JS_ASSERT(type_ != IonFrame_Entry);
JS_ASSERT(type_ != JitFrame_Entry);
frameSize_ = prevFrameLocalSize();
cachedSafepointIndex_ = nullptr;
// If the next frame is the entry frame, just exit. Don't update current_,
// since the entry and first frames overlap.
if (current()->prevType() == IonFrame_Entry) {
type_ = IonFrame_Entry;
if (current()->prevType() == JitFrame_Entry) {
type_ = JitFrame_Entry;
return *this;
}
@ -308,10 +308,10 @@ IonFrameIterator::operator++()
// next frame.
uint8_t *prev = prevFp();
type_ = current()->prevType();
if (type_ == IonFrame_Unwound_OptimizedJS)
type_ = IonFrame_OptimizedJS;
else if (type_ == IonFrame_Unwound_BaselineStub)
type_ = IonFrame_BaselineStub;
if (type_ == JitFrame_Unwound_IonJS)
type_ = JitFrame_IonJS;
else if (type_ == JitFrame_Unwound_BaselineStub)
type_ = JitFrame_BaselineStub;
returnAddressToFp_ = current()->returnAddress();
current_ = prev;
return *this;
@ -585,7 +585,7 @@ HandleException(ResumeFromException *rfe)
IonFrameIterator iter(cx);
while (!iter.isEntry()) {
bool overrecursed = false;
if (iter.isOptimizedJS()) {
if (iter.isIonJS()) {
// Search each inlined frame for live iterator objects, and close
// them.
InlineFrameIterator frames(cx, &iter);
@ -718,36 +718,36 @@ HandleParallelFailure(ResumeFromException *rfe)
void
EnsureExitFrame(IonCommonFrameLayout *frame)
{
if (frame->prevType() == IonFrame_Unwound_OptimizedJS ||
frame->prevType() == IonFrame_Unwound_BaselineStub ||
frame->prevType() == IonFrame_Unwound_Rectifier)
if (frame->prevType() == JitFrame_Unwound_IonJS ||
frame->prevType() == JitFrame_Unwound_BaselineStub ||
frame->prevType() == JitFrame_Unwound_Rectifier)
{
// Already an exit frame, nothing to do.
return;
}
if (frame->prevType() == IonFrame_Entry) {
if (frame->prevType() == JitFrame_Entry) {
// The previous frame type is the entry frame, so there's no actual
// need for an exit frame.
return;
}
if (frame->prevType() == IonFrame_Rectifier) {
if (frame->prevType() == JitFrame_Rectifier) {
// The rectifier code uses the frame descriptor to discard its stack,
// so modifying its descriptor size here would be dangerous. Instead,
// we change the frame type, and teach the stack walking code how to
// deal with this edge case. bug 717297 would obviate the need
frame->changePrevType(IonFrame_Unwound_Rectifier);
frame->changePrevType(JitFrame_Unwound_Rectifier);
return;
}
if (frame->prevType() == IonFrame_BaselineStub) {
frame->changePrevType(IonFrame_Unwound_BaselineStub);
if (frame->prevType() == JitFrame_BaselineStub) {
frame->changePrevType(JitFrame_Unwound_BaselineStub);
return;
}
JS_ASSERT(frame->prevType() == IonFrame_OptimizedJS);
frame->changePrevType(IonFrame_Unwound_OptimizedJS);
JS_ASSERT(frame->prevType() == JitFrame_IonJS);
frame->changePrevType(JitFrame_Unwound_IonJS);
}
CalleeToken
@ -945,7 +945,7 @@ MarkBaselineStubFrame(JSTracer *trc, const IonFrameIterator &frame)
// Mark the ICStub pointer stored in the stub frame. This is necessary
// so that we don't destroy the stub code after unlinking the stub.
JS_ASSERT(frame.type() == IonFrame_BaselineStub);
JS_ASSERT(frame.type() == JitFrame_BaselineStub);
IonBaselineStubFrameLayout *layout = (IonBaselineStubFrameLayout *)frame.fp();
if (ICStub *stub = layout->maybeStubPtr()) {
@ -1158,24 +1158,24 @@ MarkJitActivation(JSTracer *trc, const JitActivationIterator &activations)
for (IonFrameIterator frames(activations); !frames.done(); ++frames) {
switch (frames.type()) {
case IonFrame_Exit:
case JitFrame_Exit:
MarkJitExitFrame(trc, frames);
break;
case IonFrame_BaselineJS:
case JitFrame_BaselineJS:
frames.baselineFrame()->trace(trc, frames);
break;
case IonFrame_BaselineStub:
case JitFrame_BaselineStub:
MarkBaselineStubFrame(trc, frames);
break;
case IonFrame_OptimizedJS:
case JitFrame_IonJS:
MarkIonJSFrame(trc, frames);
break;
case IonFrame_Unwound_OptimizedJS:
case JitFrame_Unwound_IonJS:
MOZ_ASSUME_UNREACHABLE("invalid");
case IonFrame_Rectifier:
case JitFrame_Rectifier:
MarkRectifierFrame(trc, frames);
break;
case IonFrame_Unwound_Rectifier:
case JitFrame_Unwound_Rectifier:
break;
default:
MOZ_ASSUME_UNREACHABLE("unexpected frame type");
@ -1197,7 +1197,7 @@ UpdateJitActivationsForMinorGC(JSRuntime *rt, JSTracer *trc)
JS_ASSERT(trc->runtime->isHeapMinorCollecting());
for (JitActivationIterator activations(rt); !activations.done(); ++activations) {
for (IonFrameIterator frames(activations); !frames.done(); ++frames) {
if (frames.type() == IonFrame_OptimizedJS)
if (frames.type() == JitFrame_IonJS)
UpdateIonJSFrameForMinorGC(trc, frames);
}
}
@ -1223,19 +1223,19 @@ GetPcScript(JSContext *cx, JSScript **scriptRes, jsbytecode **pcRes)
// If the previous frame is a rectifier frame (maybe unwound),
// skip past it.
if (it.prevType() == IonFrame_Rectifier || it.prevType() == IonFrame_Unwound_Rectifier) {
if (it.prevType() == JitFrame_Rectifier || it.prevType() == JitFrame_Unwound_Rectifier) {
++it;
JS_ASSERT(it.prevType() == IonFrame_BaselineStub ||
it.prevType() == IonFrame_BaselineJS ||
it.prevType() == IonFrame_OptimizedJS);
JS_ASSERT(it.prevType() == JitFrame_BaselineStub ||
it.prevType() == JitFrame_BaselineJS ||
it.prevType() == JitFrame_IonJS);
}
// If the previous frame is a stub frame, skip the exit frame so that
// returnAddress below gets the return address into the BaselineJS
// frame.
if (it.prevType() == IonFrame_BaselineStub || it.prevType() == IonFrame_Unwound_BaselineStub) {
if (it.prevType() == JitFrame_BaselineStub || it.prevType() == JitFrame_Unwound_BaselineStub) {
++it;
JS_ASSERT(it.prevType() == IonFrame_BaselineJS);
JS_ASSERT(it.prevType() == JitFrame_BaselineJS);
}
uint8_t *retAddr = it.returnAddress();
@ -1257,7 +1257,7 @@ GetPcScript(JSContext *cx, JSScript **scriptRes, jsbytecode **pcRes)
++it; // Skip exit frame.
jsbytecode *pc = nullptr;
if (it.isOptimizedJS()) {
if (it.isIonJS()) {
InlineFrameIterator ifi(cx, &it);
*scriptRes = ifi.script();
pc = ifi.pc();
@ -1494,7 +1494,7 @@ SnapshotIterator::allocationValue(const RValueAllocation &alloc)
IonScript *
IonFrameIterator::ionScript() const
{
JS_ASSERT(type() == IonFrame_OptimizedJS);
JS_ASSERT(type() == JitFrame_IonJS);
IonScript *ionScript = nullptr;
if (checkInvalidation(&ionScript))
@ -1659,7 +1659,7 @@ IonFrameIterator::isConstructing() const
++parent;
} while (!parent.done() && !parent.isScripted());
if (parent.isOptimizedJS()) {
if (parent.isIonJS()) {
// In the case of a JS frame, look up the pc from the snapshot.
InlineFrameIterator inlinedParent(GetJSContextFromJitCode(), &parent);
@ -1832,19 +1832,19 @@ void
IonFrameIterator::dump() const
{
switch (type_) {
case IonFrame_Entry:
case JitFrame_Entry:
fprintf(stderr, " Entry frame\n");
fprintf(stderr, " Frame size: %u\n", unsigned(current()->prevFrameLocalSize()));
break;
case IonFrame_BaselineJS:
case JitFrame_BaselineJS:
dumpBaseline();
break;
case IonFrame_BaselineStub:
case IonFrame_Unwound_BaselineStub:
case JitFrame_BaselineStub:
case JitFrame_Unwound_BaselineStub:
fprintf(stderr, " Baseline stub frame\n");
fprintf(stderr, " Frame size: %u\n", unsigned(current()->prevFrameLocalSize()));
break;
case IonFrame_OptimizedJS:
case JitFrame_IonJS:
{
InlineFrameIterator frames(GetJSContextFromJitCode(), this);
for (;;) {
@ -1855,15 +1855,15 @@ IonFrameIterator::dump() const
}
break;
}
case IonFrame_Rectifier:
case IonFrame_Unwound_Rectifier:
case JitFrame_Rectifier:
case JitFrame_Unwound_Rectifier:
fprintf(stderr, " Rectifier frame\n");
fprintf(stderr, " Frame size: %u\n", unsigned(current()->prevFrameLocalSize()));
break;
case IonFrame_Unwound_OptimizedJS:
case JitFrame_Unwound_IonJS:
fprintf(stderr, "Warning! Unwound JS frames are not observable.\n");
break;
case IonFrame_Exit:
case JitFrame_Exit:
break;
};
fputc('\n', stderr);

View File

@ -283,7 +283,7 @@ inline JSScript *
GetTopIonJSScript(uint8_t *ionTop, void **returnAddrOut, ExecutionMode mode)
{
IonFrameIterator iter(ionTop, mode);
JS_ASSERT(iter.type() == IonFrame_Exit);
JS_ASSERT(iter.type() == JitFrame_Exit);
++iter;
JS_ASSERT(iter.returnAddressToFp() != nullptr);

View File

@ -1000,7 +1000,7 @@ MacroAssembler::generateBailoutTail(Register scratch, Register bailoutInfo)
// Enter exit frame for the FinishBailoutToBaseline call.
loadPtr(Address(bailoutInfo, offsetof(BaselineBailoutInfo, resumeFramePtr)), temp);
load32(Address(temp, BaselineFrame::reverseOffsetOfFrameSize()), temp);
makeFrameDescriptor(temp, IonFrame_BaselineJS);
makeFrameDescriptor(temp, JitFrame_BaselineJS);
push(temp);
push(Address(bailoutInfo, offsetof(BaselineBailoutInfo, resumeAddr)));
enterFakeExitFrame();

View File

@ -1020,7 +1020,7 @@ Recompile(JSContext *cx)
JitActivationIterator activations(cx->runtime());
IonFrameIterator iter(activations);
JS_ASSERT(iter.type() == IonFrame_Exit);
JS_ASSERT(iter.type() == JitFrame_Exit);
++iter;
bool isConstructing = iter.isConstructing();

View File

@ -77,7 +77,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
uint8_t *fp = sp + bailout->frameSize();
current_ = fp;
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - sp;
topIonScript_ = script()->ionScript();
@ -113,7 +113,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
const OsiIndex *osiIndex = topIonScript_->getOsiIndex(returnAddressToFp_);
current_ = (uint8_t*) bailout->fp();
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - bailout->sp();
snapshotOffset_ = osiIndex->snapshotOffset();
}

View File

@ -100,7 +100,7 @@ EmitTailCallVM(JitCode *target, MacroAssembler &masm, uint32_t argSize)
// the stub calls), but the VMWrapper code being called expects the return address to also
// be pushed on the stack.
JS_ASSERT(BaselineTailCallReg == lr);
masm.makeFrameDescriptor(r0, IonFrame_BaselineJS);
masm.makeFrameDescriptor(r0, JitFrame_BaselineJS);
masm.push(r0);
masm.push(lr);
masm.branch(target);
@ -115,7 +115,7 @@ EmitCreateStubFrameDescriptor(MacroAssembler &masm, Register reg)
masm.ma_add(Imm32(sizeof(void *) * 2), reg);
masm.ma_sub(BaselineStackReg, reg);
masm.makeFrameDescriptor(reg, IonFrame_BaselineStub);
masm.makeFrameDescriptor(reg, JitFrame_BaselineStub);
}
inline void
@ -146,7 +146,7 @@ EmitEnterStubFrame(MacroAssembler &masm, Register scratch)
// if needed.
// Push frame descriptor and return address.
masm.makeFrameDescriptor(scratch, IonFrame_BaselineJS);
masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS);
masm.push(scratch);
masm.push(BaselineTailCallReg);

View File

@ -1713,7 +1713,7 @@ bool
MacroAssemblerARMCompat::buildFakeExitFrame(const Register &scratch, uint32_t *offset)
{
DebugOnly<uint32_t> initialDepth = framePushed();
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor)); // descriptor_
@ -1739,7 +1739,7 @@ bool
MacroAssemblerARMCompat::buildOOLFakeExitFrame(void *fakeReturnAddr)
{
DebugOnly<uint32_t> initialDepth = framePushed();
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor)); // descriptor_
@ -1753,7 +1753,7 @@ MacroAssemblerARMCompat::buildOOLFakeExitFrame(void *fakeReturnAddr)
void
MacroAssemblerARMCompat::callWithExitFrame(JitCode *target)
{
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor)); // descriptor
addPendingJump(m_buffer.nextOffset(), ImmPtr(target->raw()), Relocation::JITCODE);
@ -1771,7 +1771,7 @@ void
MacroAssemblerARMCompat::callWithExitFrame(JitCode *target, Register dynStack)
{
ma_add(Imm32(framePushed()), dynStack);
makeFrameDescriptor(dynStack, IonFrame_OptimizedJS);
makeFrameDescriptor(dynStack, JitFrame_IonJS);
Push(dynStack); // descriptor
addPendingJump(m_buffer.nextOffset(), ImmPtr(target->raw()), Relocation::JITCODE);

View File

@ -176,7 +176,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
}
masm.ma_sub(r8, sp, r8);
masm.makeFrameDescriptor(r8, IonFrame_Entry);
masm.makeFrameDescriptor(r8, JitFrame_Entry);
masm.startDataTransferM(IsStore, sp, IB, NoWriteBack);
// [sp] = return address (written later)
@ -253,7 +253,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
// Enter exit frame.
masm.addPtr(Imm32(BaselineFrame::Size() + BaselineFrame::FramePointerOffset), scratch);
masm.makeFrameDescriptor(scratch, IonFrame_BaselineJS);
masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS);
masm.push(scratch);
masm.push(Imm32(0)); // Fake return address.
masm.enterFakeExitFrame();
@ -451,7 +451,7 @@ JitRuntime::generateArgumentsRectifier(JSContext *cx, ExecutionMode mode, void *
masm.ma_lsl(Imm32(3), r6, r6);
// Construct sizeDescriptor.
masm.makeFrameDescriptor(r6, IonFrame_Rectifier);
masm.makeFrameDescriptor(r6, JitFrame_Rectifier);
// Construct IonJSFrameLayout.
masm.ma_push(r0); // actual arguments.

View File

@ -99,7 +99,7 @@ EmitTailCallVM(JitCode *target, MacroAssembler &masm, uint32_t argSize)
// keep it there through the stub calls), but the VMWrapper code being
// called expects the return address to also be pushed on the stack.
MOZ_ASSERT(BaselineTailCallReg == ra);
masm.makeFrameDescriptor(t6, IonFrame_BaselineJS);
masm.makeFrameDescriptor(t6, JitFrame_BaselineJS);
masm.subPtr(Imm32(sizeof(IonCommonFrameLayout)), StackPointer);
masm.storePtr(t6, Address(StackPointer, IonCommonFrameLayout::offsetOfDescriptor()));
masm.storePtr(ra, Address(StackPointer, IonCommonFrameLayout::offsetOfReturnAddress()));
@ -116,7 +116,7 @@ EmitCreateStubFrameDescriptor(MacroAssembler &masm, Register reg)
masm.addPtr(Imm32(sizeof(intptr_t) * 2), reg);
masm.subPtr(BaselineStackReg, reg);
masm.makeFrameDescriptor(reg, IonFrame_BaselineStub);
masm.makeFrameDescriptor(reg, JitFrame_BaselineStub);
}
inline void
@ -153,7 +153,7 @@ EmitEnterStubFrame(MacroAssembler &masm, Register scratch)
// BaselineStubFrame if needed.
// Push frame descriptor and return address.
masm.makeFrameDescriptor(scratch, IonFrame_BaselineJS);
masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS);
masm.subPtr(Imm32(STUB_FRAME_SIZE), StackPointer);
masm.storePtr(scratch, Address(StackPointer, offsetof(BaselineStubFrame, descriptor)));
masm.storePtr(BaselineTailCallReg, Address(StackPointer,

View File

@ -1458,7 +1458,7 @@ MacroAssemblerMIPSCompat::buildFakeExitFrame(const Register &scratch, uint32_t *
CodeLabel cl;
ma_li(scratch, cl.dest());
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor));
Push(scratch);
@ -1473,7 +1473,7 @@ bool
MacroAssemblerMIPSCompat::buildOOLFakeExitFrame(void *fakeReturnAddr)
{
DebugOnly<uint32_t> initialDepth = framePushed();
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor)); // descriptor_
Push(ImmPtr(fakeReturnAddr));
@ -1484,7 +1484,7 @@ MacroAssemblerMIPSCompat::buildOOLFakeExitFrame(void *fakeReturnAddr)
void
MacroAssemblerMIPSCompat::callWithExitFrame(JitCode *target)
{
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor)); // descriptor
addPendingJump(m_buffer.nextOffset(), ImmPtr(target->raw()), Relocation::JITCODE);
@ -1496,7 +1496,7 @@ void
MacroAssemblerMIPSCompat::callWithExitFrame(JitCode *target, Register dynStack)
{
ma_addu(dynStack, dynStack, Imm32(framePushed()));
makeFrameDescriptor(dynStack, IonFrame_OptimizedJS);
makeFrameDescriptor(dynStack, JitFrame_IonJS);
Push(dynStack); // descriptor
addPendingJump(m_buffer.nextOffset(), ImmPtr(target->raw()), Relocation::JITCODE);

View File

@ -57,12 +57,12 @@ BaselineCompilerShared::callVM(const VMFunction &fun, CallVMPhase phase)
uint32_t frameFullSize = frameBaseSize + (frameVals * sizeof(Value));
if (phase == POST_INITIALIZE) {
masm.store32(Imm32(frameFullSize), frameSizeAddress);
uint32_t descriptor = MakeFrameDescriptor(frameFullSize + argSize, IonFrame_BaselineJS);
uint32_t descriptor = MakeFrameDescriptor(frameFullSize + argSize, JitFrame_BaselineJS);
masm.push(Imm32(descriptor));
} else if (phase == PRE_INITIALIZE) {
masm.store32(Imm32(frameBaseSize), frameSizeAddress);
uint32_t descriptor = MakeFrameDescriptor(frameBaseSize + argSize, IonFrame_BaselineJS);
uint32_t descriptor = MakeFrameDescriptor(frameBaseSize + argSize, JitFrame_BaselineJS);
masm.push(Imm32(descriptor));
} else {
@ -85,7 +85,7 @@ BaselineCompilerShared::callVM(const VMFunction &fun, CallVMPhase phase)
masm.bind(&afterWrite);
masm.store32(BaselineTailCallReg, frameSizeAddress);
masm.add32(Imm32(argSize), BaselineTailCallReg);
masm.makeFrameDescriptor(BaselineTailCallReg, IonFrame_BaselineJS);
masm.makeFrameDescriptor(BaselineTailCallReg, JitFrame_BaselineJS);
masm.push(BaselineTailCallReg);
}

View File

@ -664,7 +664,7 @@ class MacroAssemblerX86Shared : public Assembler
CodeLabel cl;
mov(cl.dest(), scratch);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor));
Push(scratch);
@ -676,7 +676,7 @@ class MacroAssemblerX86Shared : public Assembler
}
void callWithExitFrame(JitCode *target) {
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor));
call(target);
}
@ -698,7 +698,7 @@ class MacroAssemblerX86Shared : public Assembler
protected:
bool buildOOLFakeExitFrame(void *fakeReturnAddr) {
uint32_t descriptor = MakeFrameDescriptor(framePushed(), IonFrame_OptimizedJS);
uint32_t descriptor = MakeFrameDescriptor(framePushed(), JitFrame_IonJS);
Push(Imm32(descriptor));
Push(ImmPtr(fakeReturnAddr));
return true;

View File

@ -54,7 +54,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
uint8_t *fp = sp + bailout->frameSize();
current_ = fp;
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - sp;
topIonScript_ = script()->ionScript();
snapshotOffset_ = bailout->snapshotOffset();
@ -70,7 +70,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
const OsiIndex *osiIndex = topIonScript_->getOsiIndex(returnAddressToFp_);
current_ = (uint8_t*) bailout->fp();
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - bailout->sp();
snapshotOffset_ = osiIndex->snapshotOffset();
}

View File

@ -84,7 +84,7 @@ EmitTailCallVM(JitCode *target, MacroAssembler &masm, uint32_t argSize)
masm.store32(rdx, Address(BaselineFrameReg, BaselineFrame::reverseOffsetOfFrameSize()));
// Push frame descriptor and perform the tail call.
masm.makeFrameDescriptor(ScratchReg, IonFrame_BaselineJS);
masm.makeFrameDescriptor(ScratchReg, JitFrame_BaselineJS);
masm.push(ScratchReg);
masm.push(BaselineTailCallReg);
masm.jmp(target);
@ -99,7 +99,7 @@ EmitCreateStubFrameDescriptor(MacroAssembler &masm, Register reg)
masm.addq(Imm32(sizeof(void *) * 2), reg);
masm.subq(BaselineStackReg, reg);
masm.makeFrameDescriptor(reg, IonFrame_BaselineStub);
masm.makeFrameDescriptor(reg, JitFrame_BaselineStub);
}
inline void
@ -130,7 +130,7 @@ EmitEnterStubFrame(MacroAssembler &masm, Register)
// if needed.
// Push frame descriptor and return address.
masm.makeFrameDescriptor(ScratchReg, IonFrame_BaselineJS);
masm.makeFrameDescriptor(ScratchReg, JitFrame_BaselineJS);
masm.push(ScratchReg);
masm.push(BaselineTailCallReg);

View File

@ -1221,7 +1221,7 @@ class MacroAssemblerX64 : public MacroAssemblerX86Shared
void callWithExitFrame(JitCode *target, Register dynStack) {
addPtr(Imm32(framePushed()), dynStack);
makeFrameDescriptor(dynStack, IonFrame_OptimizedJS);
makeFrameDescriptor(dynStack, JitFrame_IonJS);
Push(dynStack);
call(target);
}

View File

@ -139,7 +139,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
masm.subq(rsp, r14);
// Create a frame descriptor.
masm.makeFrameDescriptor(r14, IonFrame_Entry);
masm.makeFrameDescriptor(r14, JitFrame_Entry);
masm.push(r14);
CodeLabel returnLabel;
@ -201,7 +201,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
// Enter exit frame.
masm.addPtr(Imm32(BaselineFrame::Size() + BaselineFrame::FramePointerOffset), valuesSize);
masm.makeFrameDescriptor(valuesSize, IonFrame_BaselineJS);
masm.makeFrameDescriptor(valuesSize, JitFrame_BaselineJS);
masm.push(valuesSize);
masm.push(Imm32(0)); // Fake return address.
masm.enterFakeExitFrame();
@ -401,7 +401,7 @@ JitRuntime::generateArgumentsRectifier(JSContext *cx, ExecutionMode mode, void *
// Construct descriptor.
masm.subq(rsp, r9);
masm.makeFrameDescriptor(r9, IonFrame_Rectifier);
masm.makeFrameDescriptor(r9, JitFrame_Rectifier);
// Construct IonJSFrameLayout.
masm.push(rdx); // numActualArgs

View File

@ -74,7 +74,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
uint8_t *fp = sp + bailout->frameSize();
current_ = fp;
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - sp;
topIonScript_ = script()->ionScript();
@ -110,7 +110,7 @@ IonBailoutIterator::IonBailoutIterator(const JitActivationIterator &activations,
const OsiIndex *osiIndex = topIonScript_->getOsiIndex(returnAddressToFp_);
current_ = (uint8_t*) bailout->fp();
type_ = IonFrame_OptimizedJS;
type_ = JitFrame_IonJS;
topFrameSize_ = current_ - bailout->sp();
snapshotOffset_ = osiIndex->snapshotOffset();
}

View File

@ -87,7 +87,7 @@ EmitTailCallVM(JitCode *target, MacroAssembler &masm, uint32_t argSize)
masm.store32(ebx, Address(BaselineFrameReg, BaselineFrame::reverseOffsetOfFrameSize()));
// Push frame descriptor and perform the tail call.
masm.makeFrameDescriptor(eax, IonFrame_BaselineJS);
masm.makeFrameDescriptor(eax, JitFrame_BaselineJS);
masm.push(eax);
masm.push(BaselineTailCallReg);
masm.jmp(target);
@ -102,7 +102,7 @@ EmitCreateStubFrameDescriptor(MacroAssembler &masm, Register reg)
masm.addl(Imm32(sizeof(void *) * 2), reg);
masm.subl(BaselineStackReg, reg);
masm.makeFrameDescriptor(reg, IonFrame_BaselineStub);
masm.makeFrameDescriptor(reg, JitFrame_BaselineStub);
}
inline void
@ -135,7 +135,7 @@ EmitEnterStubFrame(MacroAssembler &masm, Register scratch)
// if needed.
// Push frame descriptor and return address.
masm.makeFrameDescriptor(scratch, IonFrame_BaselineJS);
masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS);
masm.push(scratch);
masm.push(BaselineTailCallReg);

View File

@ -1067,7 +1067,7 @@ class MacroAssemblerX86 : public MacroAssemblerX86Shared
void callWithExitFrame(JitCode *target, Register dynStack) {
addPtr(Imm32(framePushed()), dynStack);
makeFrameDescriptor(dynStack, IonFrame_OptimizedJS);
makeFrameDescriptor(dynStack, JitFrame_IonJS);
Push(dynStack);
call(target);
}

View File

@ -132,7 +132,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
*****************************************************************/
// Create a frame descriptor.
masm.subl(esp, esi);
masm.makeFrameDescriptor(esi, IonFrame_Entry);
masm.makeFrameDescriptor(esi, JitFrame_Entry);
masm.push(esi);
CodeLabel returnLabel;
@ -193,7 +193,7 @@ JitRuntime::generateEnterJIT(JSContext *cx, EnterJitType type)
// Enter exit frame.
masm.addPtr(Imm32(BaselineFrame::Size() + BaselineFrame::FramePointerOffset), scratch);
masm.makeFrameDescriptor(scratch, IonFrame_BaselineJS);
masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS);
masm.push(scratch);
masm.push(Imm32(0)); // Fake return address.
masm.enterFakeExitFrame();
@ -401,7 +401,7 @@ JitRuntime::generateArgumentsRectifier(JSContext *cx, ExecutionMode mode, void *
// Construct descriptor, accounting for pushed frame pointer above
masm.lea(Operand(FramePointer, sizeof(void*)), ebx);
masm.subl(esp, ebx);
masm.makeFrameDescriptor(ebx, IonFrame_Rectifier);
masm.makeFrameDescriptor(ebx, JitFrame_Rectifier);
// Construct IonJSFrameLayout.
masm.push(edx); // number of actual arguments

View File

@ -338,7 +338,7 @@ FrameIter::unaliasedForEachActual(JSContext *cx, Op op)
return;
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS()) {
if (data_.ionFrames_.isIonJS()) {
ionInlineFrames_.unaliasedForEachActual(cx, op, jit::ReadFrame_Actuals);
} else {
JS_ASSERT(data_.ionFrames_.isBaselineJS());

View File

@ -659,7 +659,7 @@ FrameIter::Data::Data(const FrameIter::Data &other)
FrameIter::FrameIter(JSContext *cx, SavedOption savedOption)
: data_(cx, savedOption, CURRENT_CONTEXT, nullptr)
#ifdef JS_ION
, ionInlineFrames_(cx, (js::jit::IonFrameIterator*) nullptr)
, ionInlineFrames_(cx, (js::jit::IonFrameIterator*) nullptr)
#endif
{
settleOnActivation();
@ -669,7 +669,7 @@ FrameIter::FrameIter(JSContext *cx, ContextOption contextOption,
SavedOption savedOption, JSPrincipals *principals)
: data_(cx, savedOption, contextOption, principals)
#ifdef JS_ION
, ionInlineFrames_(cx, (js::jit::IonFrameIterator*) nullptr)
, ionInlineFrames_(cx, (js::jit::IonFrameIterator*) nullptr)
#endif
{
settleOnActivation();
@ -678,8 +678,8 @@ FrameIter::FrameIter(JSContext *cx, ContextOption contextOption,
FrameIter::FrameIter(const FrameIter &other)
: data_(other.data_)
#ifdef JS_ION
, ionInlineFrames_(other.data_.cx_,
data_.ionFrames_.isScripted() ? &other.ionInlineFrames_ : nullptr)
, ionInlineFrames_(other.data_.cx_,
data_.ionFrames_.isScripted() ? &other.ionInlineFrames_ : nullptr)
#endif
{
}
@ -687,7 +687,7 @@ FrameIter::FrameIter(const FrameIter &other)
FrameIter::FrameIter(const Data &data)
: data_(data)
#ifdef JS_ION
, ionInlineFrames_(data.cx_, data_.ionFrames_.isOptimizedJS() ? &data_.ionFrames_ : nullptr)
, ionInlineFrames_(data.cx_, data_.ionFrames_.isIonJS() ? &data_.ionFrames_ : nullptr)
#endif
{
JS_ASSERT(data.cx_);
@ -697,7 +697,7 @@ FrameIter::FrameIter(const Data &data)
void
FrameIter::nextJitFrame()
{
if (data_.ionFrames_.isOptimizedJS()) {
if (data_.ionFrames_.isIonJS()) {
ionInlineFrames_.resetOn(&data_.ionFrames_);
data_.pc_ = ionInlineFrames_.pc();
} else {
@ -711,7 +711,7 @@ FrameIter::popJitFrame()
{
JS_ASSERT(data_.state_ == JIT);
if (data_.ionFrames_.isOptimizedJS() && ionInlineFrames_.more()) {
if (data_.ionFrames_.isIonJS() && ionInlineFrames_.more()) {
++ionInlineFrames_;
data_.pc_ = ionInlineFrames_.pc();
return;
@ -795,7 +795,7 @@ FrameIter::copyData() const
* not copied.
*/
JS_ASSERT(data_.state_ != ASMJS);
JS_ASSERT(data_.ionFrames_.type() != jit::IonFrame_OptimizedJS);
JS_ASSERT(data_.ionFrames_.type() != jit::JitFrame_IonJS);
#endif
return data_.cx_->new_<Data>(data_);
}
@ -1044,7 +1044,7 @@ FrameIter::isConstructing() const
break;
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS())
if (data_.ionFrames_.isIonJS())
return ionInlineFrames_.isConstructing();
JS_ASSERT(data_.ionFrames_.isBaselineJS());
return data_.ionFrames_.isConstructing();
@ -1140,7 +1140,7 @@ FrameIter::callee() const
#ifdef JS_ION
if (data_.ionFrames_.isBaselineJS())
return data_.ionFrames_.callee();
JS_ASSERT(data_.ionFrames_.isOptimizedJS());
JS_ASSERT(data_.ionFrames_.isIonJS());
return ionInlineFrames_.callee();
#else
break;
@ -1181,7 +1181,7 @@ FrameIter::numActualArgs() const
return interpFrame()->numActualArgs();
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS())
if (data_.ionFrames_.isIonJS())
return ionInlineFrames_.numActualArgs();
JS_ASSERT(data_.ionFrames_.isBaselineJS());
@ -1228,7 +1228,7 @@ FrameIter::scopeChain() const
break;
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS())
if (data_.ionFrames_.isIonJS())
return ionInlineFrames_.scopeChain();
return data_.ionFrames_.baselineFrame()->scopeChain();
#else
@ -1313,7 +1313,7 @@ FrameIter::thisv() const
break;
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS())
if (data_.ionFrames_.isIonJS())
return ObjectValue(*ionInlineFrames_.thisObject());
return data_.ionFrames_.baselineFrame()->thisValue();
#else
@ -1375,7 +1375,7 @@ FrameIter::numFrameSlots() const
break;
case JIT: {
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS()) {
if (data_.ionFrames_.isIonJS()) {
return ionInlineFrames_.snapshotIterator().allocations() -
ionInlineFrames_.script()->nfixed();
}
@ -1401,7 +1401,7 @@ FrameIter::frameSlotValue(size_t index) const
break;
case JIT:
#ifdef JS_ION
if (data_.ionFrames_.isOptimizedJS()) {
if (data_.ionFrames_.isIonJS()) {
jit::SnapshotIterator si(ionInlineFrames_.snapshotIterator());
index += ionInlineFrames_.script()->nfixed();
return si.maybeReadAllocByIndex(index);

View File

@ -1748,7 +1748,7 @@ FrameIter::script() const
return interpFrame()->script();
#ifdef JS_ION
JS_ASSERT(data_.state_ == JIT);
if (data_.ionFrames_.isOptimizedJS())
if (data_.ionFrames_.isIonJS())
return ionInlineFrames_.script();
return data_.ionFrames_.script();
#else
@ -1760,7 +1760,7 @@ inline bool
FrameIter::isIon() const
{
#ifdef JS_ION
return isJit() && data_.ionFrames_.isOptimizedJS();
return isJit() && data_.ionFrames_.isIonJS();
#else
return false;
#endif