Bug 1342553 - Part 0.2: Support JSOP_CHECKISCALLABLE in JIT

Issue #74
This commit is contained in:
janekptacijarabaci 2018-03-25 17:00:47 +02:00 • committed by Roy Tam
commit 5bf58e6044
14 changed files with 189 additions and 43 deletions

View file

@ -13455,8 +13455,9 @@ class MCheckIsObj
{
uint8_t checkKind_;
explicit MCheckIsObj(MDefinition* toCheck, uint8_t checkKind)
: MUnaryInstruction(toCheck), checkKind_(checkKind)
MCheckIsObj(MDefinition* toCheck, uint8_t checkKind)
: MUnaryInstruction(toCheck),
checkKind_(checkKind)
{
setResultType(MIRType::Value);
setResultTypeSet(toCheck->resultTypeSet());
@ -13475,6 +13476,33 @@ class MCheckIsObj
}
};
class MCheckIsCallable
: public MUnaryInstruction,
public BoxInputsPolicy::Data
{
uint8_t checkKind_;
MCheckIsCallable(MDefinition* toCheck, uint8_t checkKind)
: MUnaryInstruction(toCheck),
checkKind_(checkKind)
{
setResultType(MIRType::Value);
setResultTypeSet(toCheck->resultTypeSet());
setGuard();
}
public:
INSTRUCTION_HEADER(CheckIsCallable)
TRIVIAL_NEW_WRAPPERS
NAMED_OPERANDS((0, checkValue))
uint8_t checkKind() const { return checkKind_; }
AliasSet getAliasSet() const override {
return AliasSet::None();
}
};
class MCheckObjCoercible
: public MUnaryInstruction,
public BoxInputsPolicy::Data