зеркало из https://github.com/mozilla/gecko-dev.git
Bug 860531 - Change AliasSet of MCallGetIntrinsicValue to None. (r=dvander)
This commit is contained in:
Родитель
2d54e77b8d
Коммит
57c72db790
|
@ -5737,7 +5737,6 @@ IonBuilder::jsop_intrinsic(HandlePropertyName name)
|
||||||
|
|
||||||
RootedScript scriptRoot(cx, script());
|
RootedScript scriptRoot(cx, script());
|
||||||
types::StackTypeSet *barrier = oracle->propertyReadBarrier(scriptRoot, pc);
|
types::StackTypeSet *barrier = oracle->propertyReadBarrier(scriptRoot, pc);
|
||||||
monitorResult(ins, barrier, types);
|
|
||||||
return pushTypeBarrier(ins, types, barrier);
|
return pushTypeBarrier(ins, types, barrier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5908,6 +5908,9 @@ class MCallGetIntrinsicValue : public MNullaryInstruction
|
||||||
PropertyName *name() const {
|
PropertyName *name() const {
|
||||||
return name_;
|
return name_;
|
||||||
}
|
}
|
||||||
|
AliasSet getAliasSet() const {
|
||||||
|
return AliasSet::None();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class MCallsiteCloneCache
|
class MCallsiteCloneCache
|
||||||
|
|
|
@ -517,7 +517,17 @@ OperatorInI(JSContext *cx, uint32_t index, HandleObject obj, JSBool *out)
|
||||||
bool
|
bool
|
||||||
GetIntrinsicValue(JSContext *cx, HandlePropertyName name, MutableHandleValue rval)
|
GetIntrinsicValue(JSContext *cx, HandlePropertyName name, MutableHandleValue rval)
|
||||||
{
|
{
|
||||||
return cx->global()->getIntrinsicValue(cx, name, rval);
|
if (!cx->global()->getIntrinsicValue(cx, name, rval))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// This function is called when we try to compile a cold getintrinsic
|
||||||
|
// op. MCallGetIntrinsicValue has an AliasSet of None for optimization
|
||||||
|
// purposes, as its side effect is not observable from JS. We are
|
||||||
|
// guaranteed to bail out after this function, but because of its AliasSet,
|
||||||
|
// type info will not be reflowed. Manually monitor here.
|
||||||
|
types::TypeScript::Monitor(cx, rval);
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
Загрузка…
Ссылка в новой задаче