Part 3: Support JSOP_SETFUNNAME in Baseline and Ion

Issue #87
This commit is contained in:
janekptacijarabaci 2018-03-19 15:59:22 +01:00 committed by Roy Tam
commit 7bfe087f0c
12 changed files with 122 additions and 0 deletions

View file

@ -9,6 +9,8 @@
#include "mozilla/Casting.h"
#include "mozilla/SizePrintfMacros.h"
#include "jsfun.h"
#include "jit/BaselineIC.h"
#include "jit/BaselineJIT.h"
#include "jit/FixedList.h"
@ -1681,6 +1683,29 @@ BaselineCompiler::emit_JSOP_LAMBDA_ARROW()
return true;
}
typedef bool (*SetFunNameFn)(JSContext*, HandleFunction, HandleValue, FunctionPrefixKind);
static const VMFunction SetFunNameInfo =
FunctionInfo<SetFunNameFn>(js::SetFunctionNameIfNoOwnName, "SetFunName");
bool
BaselineCompiler::emit_JSOP_SETFUNNAME()
{
frame.popRegsAndSync(2);
frame.push(R0);
frame.syncStack(0);
FunctionPrefixKind prefixKind = FunctionPrefixKind(GET_UINT8(pc));
masm.unboxObject(R0, R0.scratchReg());
prepareVMCall();
pushArg(Imm32(int32_t(prefixKind)));
pushArg(R1);
pushArg(R0.scratchReg());
return callVM(SetFunNameInfo);
}
void
BaselineCompiler::storeValue(const StackValue* source, const Address& dest,
const ValueOperand& scratch)