Hide some runtime functions.
R=dslomov@chromium.org Review URL: https://codereview.chromium.org/212163004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
0a0f12b841
commit
9be61ddb8a
@ -326,7 +326,7 @@ void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) {
|
||||
__ cmp(sp, Operand(ip));
|
||||
__ b(hs, &ok);
|
||||
|
||||
CallRuntimePassFunction(masm, Runtime::kTryInstallOptimizedCode);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenTryInstallOptimizedCode);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
|
||||
__ bind(&ok);
|
||||
@ -415,7 +415,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ Push(r2, r1); // r1 = constructor
|
||||
// The call will replace the stub, so the countdown is only done once.
|
||||
__ CallRuntime(Runtime::kFinalizeInstanceSize, 1);
|
||||
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
|
||||
|
||||
__ pop(r2);
|
||||
__ pop(r1);
|
||||
@ -598,9 +598,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ push(r1); // argument for Runtime_NewObject
|
||||
if (create_memento) {
|
||||
__ CallRuntime(Runtime::kNewObjectWithAllocationSite, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewObjectWithAllocationSite, 2);
|
||||
} else {
|
||||
__ CallRuntime(Runtime::kNewObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewObject, 1);
|
||||
}
|
||||
__ mov(r4, r0);
|
||||
|
||||
@ -834,7 +834,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void Builtins::Generate_CompileUnoptimized(MacroAssembler* masm) {
|
||||
CallRuntimePassFunction(masm, Runtime::kCompileUnoptimized);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenCompileUnoptimized);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
}
|
||||
|
||||
@ -848,7 +848,7 @@ static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) {
|
||||
// Whether to compile in a background thread.
|
||||
__ Push(masm->isolate()->factory()->ToBoolean(concurrent));
|
||||
|
||||
__ CallRuntime(Runtime::kCompileOptimized, 2);
|
||||
__ CallRuntime(Runtime::kHiddenCompileOptimized, 2);
|
||||
// Restore receiver.
|
||||
__ pop(r1);
|
||||
}
|
||||
@ -943,7 +943,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm,
|
||||
// registers.
|
||||
__ stm(db_w, sp, kJSCallerSaved | kCalleeSaved);
|
||||
// Pass the function and deoptimization type to the runtime system.
|
||||
__ CallRuntime(Runtime::kNotifyStubFailure, 0, save_doubles);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyStubFailure, 0, save_doubles);
|
||||
__ ldm(ia_w, sp, kJSCallerSaved | kCalleeSaved);
|
||||
}
|
||||
|
||||
@ -969,7 +969,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
|
||||
// Pass the function and deoptimization type to the runtime system.
|
||||
__ mov(r0, Operand(Smi::FromInt(static_cast<int>(type))));
|
||||
__ push(r0);
|
||||
__ CallRuntime(Runtime::kNotifyDeoptimized, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyDeoptimized, 1);
|
||||
}
|
||||
|
||||
// Get the full codegen state from the stack and untag it -> r6.
|
||||
@ -1060,7 +1060,7 @@ void Builtins::Generate_OsrAfterStackCheck(MacroAssembler* masm) {
|
||||
__ b(hs, &ok);
|
||||
{
|
||||
FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
|
||||
__ CallRuntime(Runtime::kStackGuard, 0);
|
||||
__ CallRuntime(Runtime::kHiddenStackGuard, 0);
|
||||
}
|
||||
__ Jump(masm->isolate()->builtins()->OnStackReplacement(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
|
@ -45,7 +45,7 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 1;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenNewClosureFromStubFailure)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -87,7 +87,8 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 3;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry;
|
||||
Runtime::FunctionForId(
|
||||
Runtime::kHiddenCreateArrayLiteralStubBailout)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -98,7 +99,7 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 4;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateObjectLiteral)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -246,7 +247,7 @@ static void InitializeArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -274,7 +275,7 @@ static void InitializeInternalArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -2148,7 +2149,7 @@ void ArgumentsAccessStub::GenerateNewSloppySlow(MacroAssembler* masm) {
|
||||
__ str(r3, MemOperand(sp, 1 * kPointerSize));
|
||||
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2352,7 +2353,7 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
||||
// r2 = argument count (tagged)
|
||||
__ bind(&runtime);
|
||||
__ str(r2, MemOperand(sp, 0 * kPointerSize)); // Patch argument count.
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2446,7 +2447,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
||||
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewStrictArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -3203,7 +3204,7 @@ void StringCharCodeAtGenerator::GenerateSlow(
|
||||
} else {
|
||||
ASSERT(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
|
||||
// NumberToSmi discards numbers that are not exact integers.
|
||||
__ CallRuntime(Runtime::kNumberToSmi, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNumberToSmi, 1);
|
||||
}
|
||||
// Save the conversion result before the pop instructions below
|
||||
// have a chance to overwrite it.
|
||||
|
@ -234,13 +234,13 @@ void FullCodeGenerator::Generate() {
|
||||
if (FLAG_harmony_scoping && info->scope()->is_global_scope()) {
|
||||
__ push(r1);
|
||||
__ Push(info->scope()->GetScopeInfo());
|
||||
__ CallRuntime(Runtime::kNewGlobalContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewGlobalContext, 2);
|
||||
} else if (heap_slots <= FastNewContextStub::kMaximumSlots) {
|
||||
FastNewContextStub stub(heap_slots);
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(r1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
function_in_register = false;
|
||||
// Context is returned in r0. It replaces the context passed to us.
|
||||
@ -861,7 +861,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
||||
__ mov(r0, Operand(Smi::FromInt(0))); // Indicates no initial value.
|
||||
__ Push(cp, r2, r1, r0);
|
||||
}
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -917,7 +917,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
||||
__ Push(cp, r2, r1);
|
||||
// Push initial value for function declaration.
|
||||
VisitForStackValue(declaration->fun());
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -989,7 +989,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
__ mov(r1, Operand(pairs));
|
||||
__ mov(r0, Operand(Smi::FromInt(DeclareGlobalsFlags())));
|
||||
__ Push(cp, r1, r0);
|
||||
__ CallRuntime(Runtime::kDeclareGlobals, 3);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareGlobals, 3);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -997,7 +997,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
void FullCodeGenerator::DeclareModules(Handle<FixedArray> descriptions) {
|
||||
// Call the runtime to declare the modules.
|
||||
__ Push(descriptions);
|
||||
__ CallRuntime(Runtime::kDeclareModules, 1);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareModules, 1);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1359,7 +1359,7 @@ void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
|
||||
__ LoadRoot(r1, pretenure ? Heap::kTrueValueRootIndex
|
||||
: Heap::kFalseValueRootIndex);
|
||||
__ Push(cp, r0, r1);
|
||||
__ CallRuntime(Runtime::kNewClosure, 3);
|
||||
__ CallRuntime(Runtime::kHiddenNewClosure, 3);
|
||||
}
|
||||
context()->Plug(r0);
|
||||
}
|
||||
@ -1484,7 +1484,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(Variable* var,
|
||||
__ b(ne, done);
|
||||
__ mov(r0, Operand(var->name()));
|
||||
__ push(r0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
}
|
||||
}
|
||||
__ jmp(done);
|
||||
@ -1562,7 +1562,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ b(ne, &done);
|
||||
__ mov(r0, Operand(var->name()));
|
||||
__ push(r0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
__ bind(&done);
|
||||
} else {
|
||||
// Uninitalized const bindings outside of harmony mode are unholed.
|
||||
@ -1586,7 +1586,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ bind(&slow);
|
||||
__ mov(r1, Operand(var->name()));
|
||||
__ Push(cp, r1); // Context and name.
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ bind(&done);
|
||||
context()->Plug(r0);
|
||||
}
|
||||
@ -1619,7 +1619,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ mov(r2, Operand(expr->pattern()));
|
||||
__ mov(r1, Operand(expr->flags()));
|
||||
__ Push(r4, r3, r2, r1);
|
||||
__ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4);
|
||||
__ mov(r5, r0);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -1631,7 +1631,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ mov(r0, Operand(Smi::FromInt(size)));
|
||||
__ Push(r5, r0);
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ pop(r5);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -1675,7 +1675,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
flags != ObjectLiteral::kFastElements ||
|
||||
properties_count > FastCloneShallowObjectStub::kMaximumClonedProperties) {
|
||||
__ Push(r3, r2, r1, r0);
|
||||
__ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateObjectLiteral, 4);
|
||||
} else {
|
||||
FastCloneShallowObjectStub stub(properties_count);
|
||||
__ CallStub(&stub);
|
||||
@ -1826,7 +1826,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
length > FastCloneShallowArrayStub::kMaximumClonedLength) {
|
||||
__ mov(r0, Operand(Smi::FromInt(flags)));
|
||||
__ Push(r3, r2, r1, r0);
|
||||
__ CallRuntime(Runtime::kCreateArrayLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4);
|
||||
} else {
|
||||
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) ||
|
||||
FLAG_smi_only_arrays);
|
||||
@ -2027,7 +2027,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ cmp(sp, r1);
|
||||
__ b(eq, &post_runtime);
|
||||
__ push(r0); // generator object
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ bind(&post_runtime);
|
||||
__ pop(result_register());
|
||||
@ -2093,7 +2093,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ mov(r1, cp);
|
||||
__ RecordWriteField(r0, JSGeneratorObject::kContextOffset, r1, r2,
|
||||
kLRHasBeenSaved, kDontSaveFPRegs);
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ pop(r0); // result
|
||||
EmitReturnSequence();
|
||||
@ -2145,7 +2145,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
Expression *value,
|
||||
JSGeneratorObject::ResumeMode resume_mode) {
|
||||
// The value stays in r0, and is ultimately read by the resumed generator, as
|
||||
// if the CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
|
||||
// if CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject) returned it. Or it
|
||||
// is read to throw the value when the resumed generator is already closed.
|
||||
// r1 will hold the generator object until the activation has been resumed.
|
||||
VisitForStackValue(generator);
|
||||
@ -2239,7 +2239,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
ASSERT(!result_register().is(r1));
|
||||
__ Push(r1, result_register());
|
||||
__ Push(Smi::FromInt(resume_mode));
|
||||
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3);
|
||||
__ CallRuntime(Runtime::kHiddenResumeJSGeneratorObject, 3);
|
||||
// Not reached: the runtime call returns elsewhere.
|
||||
__ stop("not-reached");
|
||||
|
||||
@ -2254,14 +2254,14 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
} else {
|
||||
// Throw the provided value.
|
||||
__ push(r0);
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
}
|
||||
__ jmp(&done);
|
||||
|
||||
// Throw error if we attempt to operate on a running generator.
|
||||
__ bind(&wrong_state);
|
||||
__ push(r1);
|
||||
__ CallRuntime(Runtime::kThrowGeneratorStateError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowGeneratorStateError, 1);
|
||||
|
||||
__ bind(&done);
|
||||
context()->Plug(result_register());
|
||||
@ -2279,7 +2279,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
||||
|
||||
__ bind(&gc_required);
|
||||
__ Push(Smi::FromInt(map->instance_size()));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ ldr(context_register(),
|
||||
MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
|
||||
@ -2493,7 +2493,7 @@ void FullCodeGenerator::EmitCallStoreContextSlot(
|
||||
__ mov(r1, Operand(name));
|
||||
__ mov(r0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(cp, r1, r0); // Context, name, strict mode.
|
||||
__ CallRuntime(Runtime::kStoreContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenStoreContextSlot, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -2511,7 +2511,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) {
|
||||
__ push(r0);
|
||||
__ mov(r0, Operand(var->name()));
|
||||
__ Push(cp, r0); // Context and name.
|
||||
__ CallRuntime(Runtime::kInitializeConstContextSlot, 3);
|
||||
__ CallRuntime(Runtime::kHiddenInitializeConstContextSlot, 3);
|
||||
} else {
|
||||
ASSERT(var->IsStackAllocated() || var->IsContextSlot());
|
||||
Label skip;
|
||||
@ -2536,7 +2536,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) {
|
||||
__ b(ne, &assign);
|
||||
__ mov(r3, Operand(var->name()));
|
||||
__ push(r3);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
// Perform the assignment.
|
||||
__ bind(&assign);
|
||||
EmitStoreToStackLocalOrContextSlot(var, location);
|
||||
@ -2769,7 +2769,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
|
||||
|
||||
// Do the runtime call.
|
||||
__ Push(r4, r3, r2, r1);
|
||||
__ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5);
|
||||
__ CallRuntime(Runtime::kHiddenResolvePossiblyDirectEval, 5);
|
||||
}
|
||||
|
||||
|
||||
@ -2785,8 +2785,8 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
Call::CallType call_type = expr->GetCallType(isolate());
|
||||
|
||||
if (call_type == Call::POSSIBLY_EVAL_CALL) {
|
||||
// In a call to eval, we first call %ResolvePossiblyDirectEval to
|
||||
// resolve the function we need to call and the receiver of the
|
||||
// In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
|
||||
// to resolve the function we need to call and the receiver of the
|
||||
// call. Then we call the resolved function using the given
|
||||
// arguments.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
@ -2843,7 +2843,7 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
ASSERT(!context_register().is(r2));
|
||||
__ mov(r2, Operand(proxy->name()));
|
||||
__ Push(context_register(), r2);
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ Push(r0, r1); // Function, receiver.
|
||||
|
||||
// If fast case code has been generated, emit code to push the
|
||||
@ -3498,7 +3498,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
|
||||
}
|
||||
|
||||
__ bind(¬_date_object);
|
||||
__ CallRuntime(Runtime::kThrowNotDateError, 0);
|
||||
__ CallRuntime(Runtime::kHiddenThrowNotDateError, 0);
|
||||
__ bind(&done);
|
||||
context()->Plug(r0);
|
||||
}
|
||||
@ -4235,7 +4235,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
|
||||
ASSERT(!context_register().is(r2));
|
||||
__ mov(r2, Operand(var->name()));
|
||||
__ Push(context_register(), r2);
|
||||
__ CallRuntime(Runtime::kDeleteContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenDeleteContextSlot, 2);
|
||||
context()->Plug(r0);
|
||||
}
|
||||
} else {
|
||||
@ -4512,7 +4512,7 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
||||
__ bind(&slow);
|
||||
__ mov(r0, Operand(proxy->name()));
|
||||
__ Push(cp, r0);
|
||||
__ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlotNoReferenceError, 2);
|
||||
PrepareForBailout(expr, TOS_REG);
|
||||
__ bind(&done);
|
||||
|
||||
|
@ -211,7 +211,7 @@ bool LCodeGen::GeneratePrologue() {
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(r1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
RecordSafepoint(Safepoint::kNoLazyDeopt);
|
||||
// Context is returned in both r0 and cp. It replaces the context
|
||||
@ -3539,7 +3539,7 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) {
|
||||
__ push(scratch0());
|
||||
__ mov(scratch0(), Operand(Smi::FromInt(instr->hydrogen()->flags())));
|
||||
__ push(scratch0());
|
||||
CallRuntime(Runtime::kDeclareGlobals, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenDeclareGlobals, 3, instr);
|
||||
}
|
||||
|
||||
|
||||
@ -3630,7 +3630,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
|
||||
// Slow case: Call the runtime system to do the number allocation.
|
||||
__ bind(&slow);
|
||||
|
||||
CallRuntimeFromDeferred(Runtime::kAllocateHeapNumber, 0, instr,
|
||||
CallRuntimeFromDeferred(Runtime::kHiddenAllocateHeapNumber, 0, instr,
|
||||
instr->context());
|
||||
// Set the pointer to the new heap number in tmp.
|
||||
if (!tmp1.is(r0)) __ mov(tmp1, Operand(r0));
|
||||
@ -4650,11 +4650,11 @@ void LCodeGen::DoDeferredNumberTagIU(LInstruction* instr,
|
||||
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ sub(r0, r0, Operand(kHeapObjectTag));
|
||||
@ -4714,11 +4714,11 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ sub(r0, r0, Operand(kHeapObjectTag));
|
||||
@ -5319,7 +5319,7 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
|
||||
__ Push(Smi::FromInt(flags));
|
||||
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
|
||||
Runtime::kHiddenAllocateInTargetSpace, 2, instr, instr->context());
|
||||
__ StoreToSafepointRegisterSlot(r0, result);
|
||||
}
|
||||
|
||||
@ -5353,7 +5353,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ mov(r4, Operand(instr->hydrogen()->pattern()));
|
||||
__ mov(r3, Operand(instr->hydrogen()->flags()));
|
||||
__ Push(r6, r5, r4, r3);
|
||||
CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
||||
CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4, instr);
|
||||
__ mov(r1, r0);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -5366,7 +5366,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ mov(r0, Operand(Smi::FromInt(size)));
|
||||
__ Push(r1, r0);
|
||||
CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
||||
CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1, instr);
|
||||
__ pop(r1);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -5390,7 +5390,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
||||
__ mov(r1, Operand(pretenure ? factory()->true_value()
|
||||
: factory()->false_value()));
|
||||
__ Push(cp, r2, r1);
|
||||
CallRuntime(Runtime::kNewClosure, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenNewClosure, 3, instr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5575,7 +5575,7 @@ void LCodeGen::DoDummyUse(LDummyUse* instr) {
|
||||
void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
LoadContextFromDeferred(instr->context());
|
||||
__ CallRuntimeSaveDoubles(Runtime::kStackGuard);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenStackGuard);
|
||||
RecordSafepointWithLazyDeopt(
|
||||
instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
|
||||
ASSERT(instr->HasEnvironment());
|
||||
|
@ -2432,7 +2432,7 @@ void MacroAssembler::CallApiFunctionAndReturn(
|
||||
{
|
||||
FrameScope frame(this, StackFrame::INTERNAL);
|
||||
CallExternalReference(
|
||||
ExternalReference(Runtime::kPromoteScheduledException, isolate()),
|
||||
ExternalReference(Runtime::kHiddenPromoteScheduledException, isolate()),
|
||||
0);
|
||||
}
|
||||
jmp(&exception_handled);
|
||||
@ -3846,9 +3846,9 @@ void MacroAssembler::Throw(BailoutReason reason) {
|
||||
// We don't actually want to generate a pile of code for this, so just
|
||||
// claim there is a stack frame, without generating one.
|
||||
FrameScope scope(this, StackFrame::NONE);
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
} else {
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
}
|
||||
// will not return here
|
||||
if (is_const_pool_blocked()) {
|
||||
|
@ -317,7 +317,7 @@ void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) {
|
||||
__ CompareRoot(masm->StackPointer(), Heap::kStackLimitRootIndex);
|
||||
__ B(hs, &ok);
|
||||
|
||||
CallRuntimePassFunction(masm, Runtime::kTryInstallOptimizedCode);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenTryInstallOptimizedCode);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
|
||||
__ Bind(&ok);
|
||||
@ -407,7 +407,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
// as argument to the runtime call.
|
||||
__ Push(constructor, init_map, constructor);
|
||||
// The call will replace the stub, so the countdown is only done once.
|
||||
__ CallRuntime(Runtime::kFinalizeInstanceSize, 1);
|
||||
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
|
||||
__ Pop(init_map, constructor);
|
||||
__ Bind(&allocate);
|
||||
}
|
||||
@ -566,7 +566,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
__ Peek(x4, 2 * kXRegSize);
|
||||
__ Push(x4);
|
||||
__ Push(constructor); // Argument for Runtime_NewObject.
|
||||
__ CallRuntime(Runtime::kNewObjectWithAllocationSite, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewObjectWithAllocationSite, 2);
|
||||
__ Mov(x4, x0);
|
||||
// If we ended up using the runtime, and we want a memento, then the
|
||||
// runtime call made it for us, and we shouldn't do create count
|
||||
@ -574,7 +574,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
__ jmp(&count_incremented);
|
||||
} else {
|
||||
__ Push(constructor); // Argument for Runtime_NewObject.
|
||||
__ CallRuntime(Runtime::kNewObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewObject, 1);
|
||||
__ Mov(x4, x0);
|
||||
}
|
||||
|
||||
@ -811,7 +811,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void Builtins::Generate_CompileUnoptimized(MacroAssembler* masm) {
|
||||
CallRuntimePassFunction(masm, Runtime::kCompileUnoptimized);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenCompileUnoptimized);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
}
|
||||
|
||||
@ -821,11 +821,11 @@ static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) {
|
||||
Register function = x1;
|
||||
|
||||
// Preserve function. At the same time, push arguments for
|
||||
// kCompileOptimized.
|
||||
// kHiddenCompileOptimized.
|
||||
__ LoadObject(x10, masm->isolate()->factory()->ToBoolean(concurrent));
|
||||
__ Push(function, function, x10);
|
||||
|
||||
__ CallRuntime(Runtime::kCompileOptimized, 2);
|
||||
__ CallRuntime(Runtime::kHiddenCompileOptimized, 2);
|
||||
|
||||
// Restore receiver.
|
||||
__ Pop(function);
|
||||
@ -935,7 +935,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm,
|
||||
// preserve the registers with parameters.
|
||||
__ PushXRegList(kSafepointSavedRegisters);
|
||||
// Pass the function and deoptimization type to the runtime system.
|
||||
__ CallRuntime(Runtime::kNotifyStubFailure, 0, save_doubles);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyStubFailure, 0, save_doubles);
|
||||
__ PopXRegList(kSafepointSavedRegisters);
|
||||
}
|
||||
|
||||
@ -965,7 +965,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
|
||||
// Pass the deoptimization type to the runtime system.
|
||||
__ Mov(x0, Smi::FromInt(static_cast<int>(type)));
|
||||
__ Push(x0);
|
||||
__ CallRuntime(Runtime::kNotifyDeoptimized, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyDeoptimized, 1);
|
||||
}
|
||||
|
||||
// Get the full codegen state from the stack and untag it.
|
||||
@ -1050,7 +1050,7 @@ void Builtins::Generate_OsrAfterStackCheck(MacroAssembler* masm) {
|
||||
__ B(hs, &ok);
|
||||
{
|
||||
FrameScope scope(masm, StackFrame::INTERNAL);
|
||||
__ CallRuntime(Runtime::kStackGuard, 0);
|
||||
__ CallRuntime(Runtime::kHiddenStackGuard, 0);
|
||||
}
|
||||
__ Jump(masm->isolate()->builtins()->OnStackReplacement(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
|
@ -46,7 +46,7 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]);
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenNewClosureFromStubFailure)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -94,7 +94,8 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]);
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry;
|
||||
Runtime::FunctionForId(
|
||||
Runtime::kHiddenCreateArrayLiteralStubBailout)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -109,7 +110,7 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = sizeof(registers) / sizeof(registers[0]);
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateObjectLiteral)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -275,7 +276,7 @@ static void InitializeArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -325,7 +326,7 @@ static void InitializeInternalArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -2248,7 +2249,7 @@ void ArgumentsAccessStub::GenerateNewSloppySlow(MacroAssembler* masm) {
|
||||
__ Poke(x10, 1 * kXRegSize);
|
||||
|
||||
__ Bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2520,7 +2521,7 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ Bind(&runtime);
|
||||
__ Push(function, recv_arg, arg_count_smi);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2653,7 +2654,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ Bind(&runtime);
|
||||
__ Push(function, params, param_count_smi);
|
||||
__ TailCallRuntime(Runtime::kNewStrictArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -3527,7 +3528,7 @@ void StringCharCodeAtGenerator::GenerateSlow(
|
||||
} else {
|
||||
ASSERT(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
|
||||
// NumberToSmi discards numbers that are not exact integers.
|
||||
__ CallRuntime(Runtime::kNumberToSmi, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNumberToSmi, 1);
|
||||
}
|
||||
// Save the conversion result before the pop instructions below
|
||||
// have a chance to overwrite it.
|
||||
|
@ -235,13 +235,13 @@ void FullCodeGenerator::Generate() {
|
||||
if (FLAG_harmony_scoping && info->scope()->is_global_scope()) {
|
||||
__ Mov(x10, Operand(info->scope()->GetScopeInfo()));
|
||||
__ Push(x1, x10);
|
||||
__ CallRuntime(Runtime::kNewGlobalContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewGlobalContext, 2);
|
||||
} else if (heap_slots <= FastNewContextStub::kMaximumSlots) {
|
||||
FastNewContextStub stub(heap_slots);
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ Push(x1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
function_in_register_x1 = false;
|
||||
// Context is returned in x0. It replaces the context passed to us.
|
||||
@ -875,7 +875,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
||||
// Pushing 0 (xzr) indicates no initial value.
|
||||
__ Push(cp, x2, x1, xzr);
|
||||
}
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -931,7 +931,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
||||
__ Push(cp, x2, x1);
|
||||
// Push initial value for function declaration.
|
||||
VisitForStackValue(declaration->fun());
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1006,7 +1006,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
__ Mov(flags, Smi::FromInt(DeclareGlobalsFlags()));
|
||||
}
|
||||
__ Push(cp, x11, flags);
|
||||
__ CallRuntime(Runtime::kDeclareGlobals, 3);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareGlobals, 3);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1014,7 +1014,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
void FullCodeGenerator::DeclareModules(Handle<FixedArray> descriptions) {
|
||||
// Call the runtime to declare the modules.
|
||||
__ Push(descriptions);
|
||||
__ CallRuntime(Runtime::kDeclareModules, 1);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareModules, 1);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1367,7 +1367,7 @@ void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
|
||||
__ LoadRoot(x10, pretenure ? Heap::kTrueValueRootIndex
|
||||
: Heap::kFalseValueRootIndex);
|
||||
__ Push(cp, x11, x10);
|
||||
__ CallRuntime(Runtime::kNewClosure, 3);
|
||||
__ CallRuntime(Runtime::kHiddenNewClosure, 3);
|
||||
}
|
||||
context()->Plug(x0);
|
||||
}
|
||||
@ -1483,7 +1483,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(Variable* var,
|
||||
} else { // LET || CONST
|
||||
__ Mov(x0, Operand(var->name()));
|
||||
__ Push(x0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
}
|
||||
}
|
||||
__ B(done);
|
||||
@ -1561,7 +1561,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
// binding in harmony mode.
|
||||
__ Mov(x0, Operand(var->name()));
|
||||
__ Push(x0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
__ Bind(&done);
|
||||
} else {
|
||||
// Uninitalized const bindings outside of harmony mode are unholed.
|
||||
@ -1586,7 +1586,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
Comment cmnt(masm_, "Lookup variable");
|
||||
__ Mov(x1, Operand(var->name()));
|
||||
__ Push(cp, x1); // Context and name.
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ Bind(&done);
|
||||
context()->Plug(x0);
|
||||
break;
|
||||
@ -1618,7 +1618,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ Mov(x2, Operand(expr->pattern()));
|
||||
__ Mov(x1, Operand(expr->flags()));
|
||||
__ Push(x4, x3, x2, x1);
|
||||
__ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4);
|
||||
__ Mov(x5, x0);
|
||||
|
||||
__ Bind(&materialized);
|
||||
@ -1630,7 +1630,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ Bind(&runtime_allocate);
|
||||
__ Mov(x10, Smi::FromInt(size));
|
||||
__ Push(x5, x10);
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ Pop(x5);
|
||||
|
||||
__ Bind(&allocated);
|
||||
@ -1676,7 +1676,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
flags != ObjectLiteral::kFastElements ||
|
||||
properties_count > max_cloned_properties) {
|
||||
__ Push(x3, x2, x1, x0);
|
||||
__ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateObjectLiteral, 4);
|
||||
} else {
|
||||
FastCloneShallowObjectStub stub(properties_count);
|
||||
__ CallStub(&stub);
|
||||
@ -1826,7 +1826,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
length > FastCloneShallowArrayStub::kMaximumClonedLength) {
|
||||
__ Mov(x0, Smi::FromInt(flags));
|
||||
__ Push(x3, x2, x1, x0);
|
||||
__ CallRuntime(Runtime::kCreateArrayLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4);
|
||||
} else {
|
||||
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) ||
|
||||
FLAG_smi_only_arrays);
|
||||
@ -2197,7 +2197,7 @@ void FullCodeGenerator::EmitCallStoreContextSlot(
|
||||
// jssp[16] : context.
|
||||
// jssp[24] : value.
|
||||
__ Push(x0, cp, x11, x10);
|
||||
__ CallRuntime(Runtime::kStoreContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenStoreContextSlot, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -2217,7 +2217,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ Push(x0);
|
||||
__ Mov(x0, Operand(var->name()));
|
||||
__ Push(cp, x0); // Context and name.
|
||||
__ CallRuntime(Runtime::kInitializeConstContextSlot, 3);
|
||||
__ CallRuntime(Runtime::kHiddenInitializeConstContextSlot, 3);
|
||||
} else {
|
||||
ASSERT(var->IsStackLocal() || var->IsContextSlot());
|
||||
Label skip;
|
||||
@ -2240,7 +2240,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ JumpIfNotRoot(x10, Heap::kTheHoleValueRootIndex, &assign);
|
||||
__ Mov(x10, Operand(var->name()));
|
||||
__ Push(x10);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
// Perform the assignment.
|
||||
__ Bind(&assign);
|
||||
EmitStoreToStackLocalOrContextSlot(var, location);
|
||||
@ -2480,7 +2480,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
|
||||
__ Push(x10, x11);
|
||||
|
||||
// Do the runtime call.
|
||||
__ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5);
|
||||
__ CallRuntime(Runtime::kHiddenResolvePossiblyDirectEval, 5);
|
||||
}
|
||||
|
||||
|
||||
@ -2496,8 +2496,8 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
Call::CallType call_type = expr->GetCallType(isolate());
|
||||
|
||||
if (call_type == Call::POSSIBLY_EVAL_CALL) {
|
||||
// In a call to eval, we first call %ResolvePossiblyDirectEval to
|
||||
// resolve the function we need to call and the receiver of the
|
||||
// In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
|
||||
// to resolve the function we need to call and the receiver of the
|
||||
// call. Then we call the resolved function using the given
|
||||
// arguments.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
@ -2557,7 +2557,7 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
__ Push(context_register());
|
||||
__ Mov(x10, Operand(proxy->name()));
|
||||
__ Push(x10);
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ Push(x0, x1); // Receiver, function.
|
||||
|
||||
// If fast case code has been generated, emit code to push the
|
||||
@ -3231,7 +3231,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
|
||||
}
|
||||
|
||||
__ Bind(¬_date_object);
|
||||
__ CallRuntime(Runtime::kThrowNotDateError, 0);
|
||||
__ CallRuntime(Runtime::kHiddenThrowNotDateError, 0);
|
||||
__ Bind(&done);
|
||||
context()->Plug(x0);
|
||||
}
|
||||
@ -3945,7 +3945,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
|
||||
// context where the variable was introduced.
|
||||
__ Mov(x2, Operand(var->name()));
|
||||
__ Push(context_register(), x2);
|
||||
__ CallRuntime(Runtime::kDeleteContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenDeleteContextSlot, 2);
|
||||
context()->Plug(x0);
|
||||
}
|
||||
} else {
|
||||
@ -4225,7 +4225,7 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
||||
__ Bind(&slow);
|
||||
__ Mov(x0, Operand(proxy->name()));
|
||||
__ Push(cp, x0);
|
||||
__ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlotNoReferenceError, 2);
|
||||
PrepareForBailout(expr, TOS_REG);
|
||||
__ Bind(&done);
|
||||
|
||||
@ -4476,7 +4476,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ Cmp(__ StackPointer(), x1);
|
||||
__ B(eq, &post_runtime);
|
||||
__ Push(x0); // generator object
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ Bind(&post_runtime);
|
||||
__ Pop(result_register());
|
||||
@ -4547,7 +4547,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ Mov(x1, cp);
|
||||
__ RecordWriteField(x0, JSGeneratorObject::kContextOffset, x1, x2,
|
||||
kLRHasBeenSaved, kDontSaveFPRegs);
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ Pop(x0); // result
|
||||
EmitReturnSequence();
|
||||
@ -4606,7 +4606,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
Register function = x4;
|
||||
|
||||
// The value stays in x0, and is ultimately read by the resumed generator, as
|
||||
// if the CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
|
||||
// if CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject) returned it. Or it
|
||||
// is read to throw the value when the resumed generator is already closed. r1
|
||||
// will hold the generator object until the activation has been resumed.
|
||||
VisitForStackValue(generator);
|
||||
@ -4688,7 +4688,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
|
||||
__ Mov(x10, Smi::FromInt(resume_mode));
|
||||
__ Push(generator_object, result_register(), x10);
|
||||
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3);
|
||||
__ CallRuntime(Runtime::kHiddenResumeJSGeneratorObject, 3);
|
||||
// Not reached: the runtime call returns elsewhere.
|
||||
__ Unreachable();
|
||||
|
||||
@ -4703,14 +4703,14 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
} else {
|
||||
// Throw the provided value.
|
||||
__ Push(value_reg);
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
}
|
||||
__ B(&done);
|
||||
|
||||
// Throw error if we attempt to operate on a running generator.
|
||||
__ Bind(&wrong_state);
|
||||
__ Push(generator_object);
|
||||
__ CallRuntime(Runtime::kThrowGeneratorStateError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowGeneratorStateError, 1);
|
||||
|
||||
__ Bind(&done);
|
||||
context()->Plug(result_register());
|
||||
@ -4731,7 +4731,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
||||
|
||||
__ Bind(&gc_required);
|
||||
__ Push(Smi::FromInt(map->instance_size()));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ Ldr(context_register(),
|
||||
MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
|
||||
|
@ -713,7 +713,7 @@ bool LCodeGen::GeneratePrologue() {
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ Push(x1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
RecordSafepoint(Safepoint::kNoLazyDeopt);
|
||||
// Context is returned in x0. It replaces the context passed to us. It's
|
||||
@ -1593,7 +1593,7 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
|
||||
__ Push(size, x10);
|
||||
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
|
||||
Runtime::kHiddenAllocateInTargetSpace, 2, instr, instr->context());
|
||||
__ StoreToSafepointRegisterSlot(x0, ToRegister(instr->result()));
|
||||
}
|
||||
|
||||
@ -2815,7 +2815,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
||||
__ Mov(x1, Operand(pretenure ? factory()->true_value()
|
||||
: factory()->false_value()));
|
||||
__ Push(cp, x2, x1);
|
||||
CallRuntime(Runtime::kNewClosure, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenNewClosure, 3, instr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3756,7 +3756,7 @@ void LCodeGen::DoDeferredMathAbsTagged(LMathAbsTagged* instr,
|
||||
}
|
||||
|
||||
{ PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
CallRuntimeFromDeferred(Runtime::kAllocateHeapNumber, 0, instr,
|
||||
CallRuntimeFromDeferred(Runtime::kHiddenAllocateHeapNumber, 0, instr,
|
||||
instr->context());
|
||||
__ StoreToSafepointRegisterSlot(x0, result);
|
||||
}
|
||||
@ -4451,11 +4451,11 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
// NumberTagU and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ StoreToSafepointRegisterSlot(x0, result);
|
||||
@ -4517,11 +4517,11 @@ void LCodeGen::DoDeferredNumberTagU(LInstruction* instr,
|
||||
|
||||
// NumberTagU and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ Ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ StoreToSafepointRegisterSlot(x0, dst);
|
||||
@ -4937,14 +4937,14 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) {
|
||||
__ LoadHeapObject(scratch1, instr->hydrogen()->pairs());
|
||||
__ Mov(scratch2, Smi::FromInt(instr->hydrogen()->flags()));
|
||||
__ Push(cp, scratch1, scratch2); // The context is the first argument.
|
||||
CallRuntime(Runtime::kDeclareGlobals, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenDeclareGlobals, 3, instr);
|
||||
}
|
||||
|
||||
|
||||
void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
LoadContextFromDeferred(instr->context());
|
||||
__ CallRuntimeSaveDoubles(Runtime::kStackGuard);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenStackGuard);
|
||||
RecordSafepointWithLazyDeopt(
|
||||
instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
|
||||
ASSERT(instr->HasEnvironment());
|
||||
@ -5635,7 +5635,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ Mov(x11, Operand(instr->hydrogen()->pattern()));
|
||||
__ Mov(x10, Operand(instr->hydrogen()->flags()));
|
||||
__ Push(x7, x12, x11, x10);
|
||||
CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
||||
CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4, instr);
|
||||
__ Mov(x1, x0);
|
||||
|
||||
__ Bind(&materialized);
|
||||
@ -5648,7 +5648,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ Bind(&runtime_allocate);
|
||||
__ Mov(x0, Smi::FromInt(size));
|
||||
__ Push(x1, x0);
|
||||
CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
||||
CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1, instr);
|
||||
__ Pop(x1);
|
||||
|
||||
__ Bind(&allocated);
|
||||
|
@ -1479,9 +1479,9 @@ void MacroAssembler::Throw(BailoutReason reason) {
|
||||
// We don't actually want to generate a pile of code for this, so just
|
||||
// claim there is a stack frame, without generating one.
|
||||
FrameScope scope(this, StackFrame::NONE);
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
} else {
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
}
|
||||
// ThrowMessage should not return here.
|
||||
Unreachable();
|
||||
@ -1740,7 +1740,8 @@ void MacroAssembler::CallApiFunctionAndReturn(
|
||||
{
|
||||
FrameScope frame(this, StackFrame::INTERNAL);
|
||||
CallExternalReference(
|
||||
ExternalReference(Runtime::kPromoteScheduledException, isolate()), 0);
|
||||
ExternalReference(
|
||||
Runtime::kHiddenPromoteScheduledException, isolate()), 0);
|
||||
}
|
||||
B(&exception_handled);
|
||||
|
||||
|
@ -1706,12 +1706,12 @@ const char* Builtins::Lookup(byte* pc) {
|
||||
|
||||
|
||||
void Builtins::Generate_InterruptCheck(MacroAssembler* masm) {
|
||||
masm->TailCallRuntime(Runtime::kInterrupt, 0, 1);
|
||||
masm->TailCallRuntime(Runtime::kHiddenInterrupt, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
void Builtins::Generate_StackCheck(MacroAssembler* masm) {
|
||||
masm->TailCallRuntime(Runtime::kStackGuard, 0, 1);
|
||||
masm->TailCallRuntime(Runtime::kHiddenStackGuard, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
|
@ -624,7 +624,7 @@ void FullCodeGenerator::AllocateModules(ZoneList<Declaration*>* declarations) {
|
||||
ASSERT(scope->interface()->Index() >= 0);
|
||||
__ Push(Smi::FromInt(scope->interface()->Index()));
|
||||
__ Push(scope->GetScopeInfo());
|
||||
__ CallRuntime(Runtime::kPushModuleContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenPushModuleContext, 2);
|
||||
StoreToFrameField(StandardFrameConstants::kContextOffset,
|
||||
context_register());
|
||||
|
||||
@ -764,7 +764,7 @@ void FullCodeGenerator::VisitModuleLiteral(ModuleLiteral* module) {
|
||||
ASSERT(interface->Index() >= 0);
|
||||
__ Push(Smi::FromInt(interface->Index()));
|
||||
__ Push(Smi::FromInt(0));
|
||||
__ CallRuntime(Runtime::kPushModuleContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenPushModuleContext, 2);
|
||||
StoreToFrameField(StandardFrameConstants::kContextOffset, context_register());
|
||||
|
||||
{
|
||||
@ -1091,7 +1091,7 @@ void FullCodeGenerator::VisitBlock(Block* stmt) {
|
||||
{ Comment cmnt(masm_, "[ Extend block context");
|
||||
__ Push(scope_->GetScopeInfo());
|
||||
PushFunctionArgumentForContextAllocation();
|
||||
__ CallRuntime(Runtime::kPushBlockContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenPushBlockContext, 2);
|
||||
|
||||
// Replace the context stored in the frame.
|
||||
StoreToFrameField(StandardFrameConstants::kContextOffset,
|
||||
@ -1123,7 +1123,7 @@ void FullCodeGenerator::VisitModuleStatement(ModuleStatement* stmt) {
|
||||
|
||||
__ Push(Smi::FromInt(stmt->proxy()->interface()->Index()));
|
||||
__ Push(Smi::FromInt(0));
|
||||
__ CallRuntime(Runtime::kPushModuleContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenPushModuleContext, 2);
|
||||
StoreToFrameField(
|
||||
StandardFrameConstants::kContextOffset, context_register());
|
||||
|
||||
@ -1262,7 +1262,7 @@ void FullCodeGenerator::VisitWithStatement(WithStatement* stmt) {
|
||||
|
||||
VisitForStackValue(stmt->expression());
|
||||
PushFunctionArgumentForContextAllocation();
|
||||
__ CallRuntime(Runtime::kPushWithContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenPushWithContext, 2);
|
||||
StoreToFrameField(StandardFrameConstants::kContextOffset, context_register());
|
||||
|
||||
Scope* saved_scope = scope();
|
||||
@ -1415,7 +1415,7 @@ void FullCodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) {
|
||||
__ Push(stmt->variable()->name());
|
||||
__ Push(result_register());
|
||||
PushFunctionArgumentForContextAllocation();
|
||||
__ CallRuntime(Runtime::kPushCatchContext, 3);
|
||||
__ CallRuntime(Runtime::kHiddenPushCatchContext, 3);
|
||||
StoreToFrameField(StandardFrameConstants::kContextOffset,
|
||||
context_register());
|
||||
}
|
||||
@ -1479,7 +1479,7 @@ void FullCodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
|
||||
// rethrow the exception if it returns.
|
||||
__ Call(&finally_entry);
|
||||
__ Push(result_register());
|
||||
__ CallRuntime(Runtime::kReThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenReThrow, 1);
|
||||
|
||||
// Finally block implementation.
|
||||
__ bind(&finally_entry);
|
||||
@ -1605,7 +1605,7 @@ void FullCodeGenerator::VisitNativeFunctionLiteral(
|
||||
void FullCodeGenerator::VisitThrow(Throw* expr) {
|
||||
Comment cmnt(masm_, "[ Throw");
|
||||
VisitForStackValue(expr->exception());
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
// Never returns here.
|
||||
}
|
||||
|
||||
|
@ -7265,7 +7265,7 @@ class HToFastProperties V8_FINAL : public HUnaryOperation {
|
||||
ASSERT(value->IsCallRuntime());
|
||||
#ifdef DEBUG
|
||||
const Runtime::Function* function = HCallRuntime::cast(value)->function();
|
||||
ASSERT(function->function_id == Runtime::kCreateObjectLiteral);
|
||||
ASSERT(function->function_id == Runtime::kHiddenCreateObjectLiteral);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -1754,7 +1754,7 @@ HValue* HGraphBuilder::BuildNumberToString(HValue* object, Type* type) {
|
||||
Add<HPushArgument>(object);
|
||||
Push(Add<HCallRuntime>(
|
||||
isolate()->factory()->empty_string(),
|
||||
Runtime::FunctionForId(Runtime::kNumberToStringSkipCache),
|
||||
Runtime::FunctionForId(Runtime::kHiddenNumberToStringSkipCache),
|
||||
1));
|
||||
}
|
||||
if_found.End();
|
||||
@ -5115,7 +5115,7 @@ void HOptimizedGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
// TODO(mvstanton): Add a flag to turn off creation of any
|
||||
// AllocationMementos for this call: we are in crankshaft and should have
|
||||
// learned enough about transition behavior to stop emitting mementos.
|
||||
Runtime::FunctionId function_id = Runtime::kCreateObjectLiteral;
|
||||
Runtime::FunctionId function_id = Runtime::kHiddenCreateObjectLiteral;
|
||||
literal = Add<HCallRuntime>(isolate()->factory()->empty_string(),
|
||||
Runtime::FunctionForId(function_id),
|
||||
4);
|
||||
@ -5272,7 +5272,7 @@ void HOptimizedGraphBuilder::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
// TODO(mvstanton): Consider a flag to turn off creation of any
|
||||
// AllocationMementos for this call: we are in crankshaft and should have
|
||||
// learned enough about transition behavior to stop emitting mementos.
|
||||
Runtime::FunctionId function_id = Runtime::kCreateArrayLiteral;
|
||||
Runtime::FunctionId function_id = Runtime::kHiddenCreateArrayLiteral;
|
||||
literal = Add<HCallRuntime>(isolate()->factory()->empty_string(),
|
||||
Runtime::FunctionForId(function_id),
|
||||
4);
|
||||
@ -6190,7 +6190,7 @@ void HOptimizedGraphBuilder::VisitThrow(Throw* expr) {
|
||||
if (!FLAG_hydrogen_track_positions) SetSourcePosition(expr->position());
|
||||
Add<HPushArgument>(value);
|
||||
Add<HCallRuntime>(isolate()->factory()->empty_string(),
|
||||
Runtime::FunctionForId(Runtime::kThrow), 1);
|
||||
Runtime::FunctionForId(Runtime::kHiddenThrow), 1);
|
||||
Add<HSimulate>(expr->id());
|
||||
|
||||
// If the throw definitely exits the function, we can finish with a dummy
|
||||
|
@ -115,7 +115,7 @@ void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) {
|
||||
__ cmp(esp, Operand::StaticVariable(stack_limit));
|
||||
__ j(above_equal, &ok, Label::kNear);
|
||||
|
||||
CallRuntimePassFunction(masm, Runtime::kTryInstallOptimizedCode);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenTryInstallOptimizedCode);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
|
||||
__ bind(&ok);
|
||||
@ -202,7 +202,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ push(edi); // constructor
|
||||
// The call will replace the stub, so the countdown is only done once.
|
||||
__ CallRuntime(Runtime::kFinalizeInstanceSize, 1);
|
||||
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
|
||||
|
||||
__ pop(edi);
|
||||
__ pop(eax);
|
||||
@ -370,9 +370,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
// edi: function (constructor)
|
||||
__ push(edi);
|
||||
if (create_memento) {
|
||||
__ CallRuntime(Runtime::kNewObjectWithAllocationSite, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewObjectWithAllocationSite, 2);
|
||||
} else {
|
||||
__ CallRuntime(Runtime::kNewObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewObject, 1);
|
||||
}
|
||||
__ mov(ebx, eax); // store result in ebx
|
||||
|
||||
@ -567,7 +567,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void Builtins::Generate_CompileUnoptimized(MacroAssembler* masm) {
|
||||
CallRuntimePassFunction(masm, Runtime::kCompileUnoptimized);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenCompileUnoptimized);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
}
|
||||
|
||||
@ -582,7 +582,7 @@ static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) {
|
||||
// Whether to compile in a background thread.
|
||||
__ Push(masm->isolate()->factory()->ToBoolean(concurrent));
|
||||
|
||||
__ CallRuntime(Runtime::kCompileOptimized, 2);
|
||||
__ CallRuntime(Runtime::kHiddenCompileOptimized, 2);
|
||||
// Restore receiver.
|
||||
__ pop(edi);
|
||||
}
|
||||
@ -686,7 +686,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm,
|
||||
// stubs that tail call the runtime on deopts passing their parameters in
|
||||
// registers.
|
||||
__ pushad();
|
||||
__ CallRuntime(Runtime::kNotifyStubFailure, 0, save_doubles);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyStubFailure, 0, save_doubles);
|
||||
__ popad();
|
||||
// Tear down internal frame.
|
||||
}
|
||||
@ -718,7 +718,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
|
||||
|
||||
// Pass deoptimization type to the runtime system.
|
||||
__ push(Immediate(Smi::FromInt(static_cast<int>(type))));
|
||||
__ CallRuntime(Runtime::kNotifyDeoptimized, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyDeoptimized, 1);
|
||||
|
||||
// Tear down internal frame.
|
||||
}
|
||||
@ -1419,7 +1419,7 @@ void Builtins::Generate_OsrAfterStackCheck(MacroAssembler* masm) {
|
||||
__ j(above_equal, &ok, Label::kNear);
|
||||
{
|
||||
FrameScope scope(masm, StackFrame::INTERNAL);
|
||||
__ CallRuntime(Runtime::kStackGuard, 0);
|
||||
__ CallRuntime(Runtime::kHiddenStackGuard, 0);
|
||||
}
|
||||
__ jmp(masm->isolate()->builtins()->OnStackReplacement(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
|
@ -50,7 +50,7 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 1;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenNewClosureFromStubFailure)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -92,7 +92,8 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 3;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry;
|
||||
Runtime::FunctionForId(
|
||||
Runtime::kHiddenCreateArrayLiteralStubBailout)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -103,7 +104,7 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 4;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateObjectLiteral)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -237,7 +238,7 @@ static void InitializeArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -265,7 +266,7 @@ static void InitializeInternalArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -1146,7 +1147,7 @@ void ArgumentsAccessStub::GenerateNewSloppySlow(MacroAssembler* masm) {
|
||||
__ mov(Operand(esp, 2 * kPointerSize), edx);
|
||||
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -1371,7 +1372,7 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
||||
__ bind(&runtime);
|
||||
__ pop(eax); // Remove saved parameter count.
|
||||
__ mov(Operand(esp, 1 * kPointerSize), ecx); // Patch argument count.
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -1470,7 +1471,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
||||
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewStrictArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -3129,7 +3130,7 @@ void StringCharCodeAtGenerator::GenerateSlow(
|
||||
} else {
|
||||
ASSERT(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
|
||||
// NumberToSmi discards numbers that are not exact integers.
|
||||
__ CallRuntime(Runtime::kNumberToSmi, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNumberToSmi, 1);
|
||||
}
|
||||
if (!index_.is(eax)) {
|
||||
// Save the conversion result before the pop instructions below
|
||||
|
@ -225,13 +225,13 @@ void FullCodeGenerator::Generate() {
|
||||
if (FLAG_harmony_scoping && info->scope()->is_global_scope()) {
|
||||
__ push(edi);
|
||||
__ Push(info->scope()->GetScopeInfo());
|
||||
__ CallRuntime(Runtime::kNewGlobalContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewGlobalContext, 2);
|
||||
} else if (heap_slots <= FastNewContextStub::kMaximumSlots) {
|
||||
FastNewContextStub stub(heap_slots);
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(edi);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
function_in_register = false;
|
||||
// Context is returned in eax. It replaces the context passed to us.
|
||||
@ -824,7 +824,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
||||
} else {
|
||||
__ push(Immediate(Smi::FromInt(0))); // Indicates no initial value.
|
||||
}
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -877,7 +877,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
||||
__ push(Immediate(variable->name()));
|
||||
__ push(Immediate(Smi::FromInt(NONE)));
|
||||
VisitForStackValue(declaration->fun());
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -947,7 +947,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
__ push(esi); // The context is the first argument.
|
||||
__ Push(pairs);
|
||||
__ Push(Smi::FromInt(DeclareGlobalsFlags()));
|
||||
__ CallRuntime(Runtime::kDeclareGlobals, 3);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareGlobals, 3);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -955,7 +955,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
void FullCodeGenerator::DeclareModules(Handle<FixedArray> descriptions) {
|
||||
// Call the runtime to declare the modules.
|
||||
__ Push(descriptions);
|
||||
__ CallRuntime(Runtime::kDeclareModules, 1);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareModules, 1);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1307,7 +1307,7 @@ void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
|
||||
__ push(Immediate(pretenure
|
||||
? isolate()->factory()->true_value()
|
||||
: isolate()->factory()->false_value()));
|
||||
__ CallRuntime(Runtime::kNewClosure, 3);
|
||||
__ CallRuntime(Runtime::kHiddenNewClosure, 3);
|
||||
}
|
||||
context()->Plug(eax);
|
||||
}
|
||||
@ -1432,7 +1432,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(Variable* var,
|
||||
__ mov(eax, isolate()->factory()->undefined_value());
|
||||
} else { // LET || CONST
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
}
|
||||
}
|
||||
__ jmp(done);
|
||||
@ -1509,7 +1509,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
// Throw a reference error when using an uninitialized let/const
|
||||
// binding in harmony mode.
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
} else {
|
||||
// Uninitalized const bindings outside of harmony mode are unholed.
|
||||
ASSERT(var->mode() == CONST_LEGACY);
|
||||
@ -1533,7 +1533,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ bind(&slow);
|
||||
__ push(esi); // Context.
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ bind(&done);
|
||||
context()->Plug(eax);
|
||||
break;
|
||||
@ -1564,7 +1564,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ push(Immediate(Smi::FromInt(expr->literal_index())));
|
||||
__ push(Immediate(expr->pattern()));
|
||||
__ push(Immediate(expr->flags()));
|
||||
__ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4);
|
||||
__ mov(ebx, eax);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -1576,7 +1576,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ push(ebx);
|
||||
__ push(Immediate(Smi::FromInt(size)));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ pop(ebx);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -1625,7 +1625,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
__ push(Immediate(Smi::FromInt(expr->literal_index())));
|
||||
__ push(Immediate(constant_properties));
|
||||
__ push(Immediate(Smi::FromInt(flags)));
|
||||
__ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateObjectLiteral, 4);
|
||||
} else {
|
||||
__ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
__ mov(eax, FieldOperand(edi, JSFunction::kLiteralsOffset));
|
||||
@ -1778,7 +1778,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
__ push(Immediate(Smi::FromInt(expr->literal_index())));
|
||||
__ push(Immediate(constant_elements));
|
||||
__ push(Immediate(Smi::FromInt(flags)));
|
||||
__ CallRuntime(Runtime::kCreateArrayLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4);
|
||||
} else {
|
||||
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) ||
|
||||
FLAG_smi_only_arrays);
|
||||
@ -1991,7 +1991,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ cmp(esp, ebx);
|
||||
__ j(equal, &post_runtime);
|
||||
__ push(eax); // generator object
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ mov(context_register(),
|
||||
Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
__ bind(&post_runtime);
|
||||
@ -2059,7 +2059,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ mov(ecx, esi);
|
||||
__ RecordWriteField(eax, JSGeneratorObject::kContextOffset, ecx, edx,
|
||||
kDontSaveFPRegs);
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ mov(context_register(),
|
||||
Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
__ pop(eax); // result
|
||||
@ -2113,7 +2113,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
Expression *value,
|
||||
JSGeneratorObject::ResumeMode resume_mode) {
|
||||
// The value stays in eax, and is ultimately read by the resumed generator, as
|
||||
// if the CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
|
||||
// if CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject) returned it. Or it
|
||||
// is read to throw the value when the resumed generator is already closed.
|
||||
// ebx will hold the generator object until the activation has been resumed.
|
||||
VisitForStackValue(generator);
|
||||
@ -2193,7 +2193,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
__ push(ebx);
|
||||
__ push(result_register());
|
||||
__ Push(Smi::FromInt(resume_mode));
|
||||
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3);
|
||||
__ CallRuntime(Runtime::kHiddenResumeJSGeneratorObject, 3);
|
||||
// Not reached: the runtime call returns elsewhere.
|
||||
__ Abort(kGeneratorFailedToResume);
|
||||
|
||||
@ -2207,14 +2207,14 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
} else {
|
||||
// Throw the provided value.
|
||||
__ push(eax);
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
}
|
||||
__ jmp(&done);
|
||||
|
||||
// Throw error if we attempt to operate on a running generator.
|
||||
__ bind(&wrong_state);
|
||||
__ push(ebx);
|
||||
__ CallRuntime(Runtime::kThrowGeneratorStateError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowGeneratorStateError, 1);
|
||||
|
||||
__ bind(&done);
|
||||
context()->Plug(result_register());
|
||||
@ -2232,7 +2232,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
||||
|
||||
__ bind(&gc_required);
|
||||
__ Push(Smi::FromInt(map->instance_size()));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ mov(context_register(),
|
||||
Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
|
||||
@ -2444,7 +2444,7 @@ void FullCodeGenerator::EmitCallStoreContextSlot(
|
||||
__ push(esi); // Context.
|
||||
__ push(Immediate(name));
|
||||
__ push(Immediate(Smi::FromInt(strict_mode)));
|
||||
__ CallRuntime(Runtime::kStoreContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenStoreContextSlot, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -2463,7 +2463,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ push(eax);
|
||||
__ push(esi);
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kInitializeConstContextSlot, 3);
|
||||
__ CallRuntime(Runtime::kHiddenInitializeConstContextSlot, 3);
|
||||
} else {
|
||||
ASSERT(var->IsStackLocal() || var->IsContextSlot());
|
||||
Label skip;
|
||||
@ -2487,7 +2487,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ cmp(edx, isolate()->factory()->the_hole_value());
|
||||
__ j(not_equal, &assign, Label::kNear);
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
__ bind(&assign);
|
||||
EmitStoreToStackLocalOrContextSlot(var, location);
|
||||
}
|
||||
@ -2722,7 +2722,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
|
||||
__ push(Immediate(Smi::FromInt(scope()->start_position())));
|
||||
|
||||
// Do the runtime call.
|
||||
__ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5);
|
||||
__ CallRuntime(Runtime::kHiddenResolvePossiblyDirectEval, 5);
|
||||
}
|
||||
|
||||
|
||||
@ -2738,8 +2738,8 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
Call::CallType call_type = expr->GetCallType(isolate());
|
||||
|
||||
if (call_type == Call::POSSIBLY_EVAL_CALL) {
|
||||
// In a call to eval, we first call %ResolvePossiblyDirectEval to
|
||||
// resolve the function we need to call and the receiver of the call.
|
||||
// In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
|
||||
// to resolve the function we need to call and the receiver of the call.
|
||||
// Then we call the resolved function using the given arguments.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
int arg_count = args->length();
|
||||
@ -2789,7 +2789,7 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
// the object holding it (returned in edx).
|
||||
__ push(context_register());
|
||||
__ push(Immediate(proxy->name()));
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ push(eax); // Function.
|
||||
__ push(edx); // Receiver.
|
||||
|
||||
@ -3453,7 +3453,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
|
||||
}
|
||||
|
||||
__ bind(¬_date_object);
|
||||
__ CallRuntime(Runtime::kThrowNotDateError, 0);
|
||||
__ CallRuntime(Runtime::kHiddenThrowNotDateError, 0);
|
||||
__ bind(&done);
|
||||
context()->Plug(result);
|
||||
}
|
||||
@ -4234,7 +4234,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
|
||||
// context where the variable was introduced.
|
||||
__ push(context_register());
|
||||
__ push(Immediate(var->name()));
|
||||
__ CallRuntime(Runtime::kDeleteContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenDeleteContextSlot, 2);
|
||||
context()->Plug(eax);
|
||||
}
|
||||
} else {
|
||||
@ -4527,7 +4527,7 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
||||
__ bind(&slow);
|
||||
__ push(esi);
|
||||
__ push(Immediate(proxy->name()));
|
||||
__ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlotNoReferenceError, 2);
|
||||
PrepareForBailout(expr, TOS_REG);
|
||||
__ bind(&done);
|
||||
|
||||
|
@ -297,7 +297,7 @@ bool LCodeGen::GeneratePrologue() {
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(edi);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
RecordSafepoint(Safepoint::kNoLazyDeopt);
|
||||
// Context is returned in eax. It replaces the context passed to us.
|
||||
@ -3739,7 +3739,7 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) {
|
||||
__ push(esi); // The context is the first argument.
|
||||
__ push(Immediate(instr->hydrogen()->pairs()));
|
||||
__ push(Immediate(Smi::FromInt(instr->hydrogen()->flags())));
|
||||
CallRuntime(Runtime::kDeclareGlobals, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenDeclareGlobals, 3, instr);
|
||||
}
|
||||
|
||||
|
||||
@ -3863,7 +3863,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
|
||||
|
||||
// Slow case: Call the runtime system to do the number allocation.
|
||||
__ bind(&slow);
|
||||
CallRuntimeFromDeferred(Runtime::kAllocateHeapNumber, 0,
|
||||
CallRuntimeFromDeferred(Runtime::kHiddenAllocateHeapNumber, 0,
|
||||
instr, instr->context());
|
||||
// Set the pointer to the new heap number in tmp.
|
||||
if (!tmp.is(eax)) __ mov(tmp, eax);
|
||||
@ -5024,11 +5024,11 @@ void LCodeGen::DoDeferredNumberTagIU(LInstruction* instr,
|
||||
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ StoreToSafepointRegisterSlot(reg, eax);
|
||||
@ -5099,11 +5099,11 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) {
|
||||
PushSafepointRegistersScope scope(this);
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ StoreToSafepointRegisterSlot(reg, eax);
|
||||
@ -5926,7 +5926,7 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
|
||||
__ push(Immediate(Smi::FromInt(flags)));
|
||||
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
|
||||
Runtime::kHiddenAllocateInTargetSpace, 2, instr, instr->context());
|
||||
__ StoreToSafepointRegisterSlot(result, eax);
|
||||
}
|
||||
|
||||
@ -5959,7 +5959,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ push(Immediate(Smi::FromInt(instr->hydrogen()->literal_index())));
|
||||
__ push(Immediate(instr->hydrogen()->pattern()));
|
||||
__ push(Immediate(instr->hydrogen()->flags()));
|
||||
CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
||||
CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4, instr);
|
||||
__ mov(ebx, eax);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -5971,7 +5971,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ push(ebx);
|
||||
__ push(Immediate(Smi::FromInt(size)));
|
||||
CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
||||
CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1, instr);
|
||||
__ pop(ebx);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -6005,7 +6005,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
||||
__ push(Immediate(instr->hydrogen()->shared_info()));
|
||||
__ push(Immediate(pretenure ? factory()->true_value()
|
||||
: factory()->false_value()));
|
||||
CallRuntime(Runtime::kNewClosure, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenNewClosure, 3, instr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6185,7 +6185,7 @@ void LCodeGen::DoDummyUse(LDummyUse* instr) {
|
||||
void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
PushSafepointRegistersScope scope(this);
|
||||
__ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kStackGuard);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenStackGuard);
|
||||
RecordSafepointWithLazyDeopt(
|
||||
instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
|
||||
ASSERT(instr->HasEnvironment());
|
||||
|
@ -2429,7 +2429,7 @@ void MacroAssembler::CallApiFunctionAndReturn(
|
||||
bind(&promote_scheduled_exception);
|
||||
{
|
||||
FrameScope frame(this, StackFrame::INTERNAL);
|
||||
CallRuntime(Runtime::kPromoteScheduledException, 0);
|
||||
CallRuntime(Runtime::kHiddenPromoteScheduledException, 0);
|
||||
}
|
||||
jmp(&exception_handled);
|
||||
|
||||
@ -3021,9 +3021,9 @@ void MacroAssembler::Throw(BailoutReason reason) {
|
||||
// We don't actually want to generate a pile of code for this, so just
|
||||
// claim there is a stack frame, without generating one.
|
||||
FrameScope scope(this, StackFrame::NONE);
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
} else {
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
}
|
||||
// will not return here
|
||||
int3();
|
||||
|
@ -332,7 +332,7 @@ void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) {
|
||||
__ LoadRoot(t0, Heap::kStackLimitRootIndex);
|
||||
__ Branch(&ok, hs, sp, Operand(t0));
|
||||
|
||||
CallRuntimePassFunction(masm, Runtime::kTryInstallOptimizedCode);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenTryInstallOptimizedCode);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
|
||||
__ bind(&ok);
|
||||
@ -427,7 +427,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ Push(a1, a2, a1); // a1 = Constructor.
|
||||
// The call will replace the stub, so the countdown is only done once.
|
||||
__ CallRuntime(Runtime::kFinalizeInstanceSize, 1);
|
||||
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
|
||||
|
||||
__ Pop(a1, a2);
|
||||
|
||||
@ -624,9 +624,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ push(a1); // Argument for Runtime_NewObject.
|
||||
if (create_memento) {
|
||||
__ CallRuntime(Runtime::kNewObjectWithAllocationSite, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewObjectWithAllocationSite, 2);
|
||||
} else {
|
||||
__ CallRuntime(Runtime::kNewObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewObject, 1);
|
||||
}
|
||||
__ mov(t4, v0);
|
||||
|
||||
@ -854,7 +854,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void Builtins::Generate_CompileUnoptimized(MacroAssembler* masm) {
|
||||
CallRuntimePassFunction(masm, Runtime::kCompileUnoptimized);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenCompileUnoptimized);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
}
|
||||
|
||||
@ -867,7 +867,7 @@ static void CallCompileOptimized(MacroAssembler* masm, bool concurrent) {
|
||||
// Whether to compile in a background thread.
|
||||
__ Push(masm->isolate()->factory()->ToBoolean(concurrent));
|
||||
|
||||
__ CallRuntime(Runtime::kCompileOptimized, 2);
|
||||
__ CallRuntime(Runtime::kHiddenCompileOptimized, 2);
|
||||
// Restore receiver.
|
||||
__ Pop(a1);
|
||||
}
|
||||
@ -976,7 +976,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm,
|
||||
// registers.
|
||||
__ MultiPush(kJSCallerSaved | kCalleeSaved);
|
||||
// Pass the function and deoptimization type to the runtime system.
|
||||
__ CallRuntime(Runtime::kNotifyStubFailure, 0, save_doubles);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyStubFailure, 0, save_doubles);
|
||||
__ MultiPop(kJSCallerSaved | kCalleeSaved);
|
||||
}
|
||||
|
||||
@ -1002,7 +1002,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
|
||||
// Pass the function and deoptimization type to the runtime system.
|
||||
__ li(a0, Operand(Smi::FromInt(static_cast<int>(type))));
|
||||
__ push(a0);
|
||||
__ CallRuntime(Runtime::kNotifyDeoptimized, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyDeoptimized, 1);
|
||||
}
|
||||
|
||||
// Get the full codegen state from the stack and untag it -> t2.
|
||||
@ -1084,7 +1084,7 @@ void Builtins::Generate_OsrAfterStackCheck(MacroAssembler* masm) {
|
||||
__ Branch(&ok, hs, sp, Operand(at));
|
||||
{
|
||||
FrameScope scope(masm, StackFrame::INTERNAL);
|
||||
__ CallRuntime(Runtime::kStackGuard, 0);
|
||||
__ CallRuntime(Runtime::kHiddenStackGuard, 0);
|
||||
}
|
||||
__ Jump(masm->isolate()->builtins()->OnStackReplacement(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
|
@ -46,7 +46,7 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 1;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenNewClosureFromStubFailure)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +88,8 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 3;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry;
|
||||
Runtime::FunctionForId(
|
||||
Runtime::kHiddenCreateArrayLiteralStubBailout)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -99,7 +100,7 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 4;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateObjectLiteral)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -247,7 +248,7 @@ static void InitializeArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -275,7 +276,7 @@ static void InitializeInternalArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -2263,7 +2264,7 @@ void ArgumentsAccessStub::GenerateNewSloppySlow(MacroAssembler* masm) {
|
||||
__ sw(a3, MemOperand(sp, 1 * kPointerSize));
|
||||
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2482,7 +2483,7 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
||||
// a2 = argument count (tagged)
|
||||
__ bind(&runtime);
|
||||
__ sw(a2, MemOperand(sp, 0 * kPointerSize)); // Patch argument count.
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -2580,7 +2581,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
||||
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewStrictArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -3364,7 +3365,7 @@ void StringCharCodeAtGenerator::GenerateSlow(
|
||||
} else {
|
||||
ASSERT(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
|
||||
// NumberToSmi discards numbers that are not exact integers.
|
||||
__ CallRuntime(Runtime::kNumberToSmi, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNumberToSmi, 1);
|
||||
}
|
||||
|
||||
// Save the conversion result before the pop instructions below
|
||||
|
@ -243,13 +243,13 @@ void FullCodeGenerator::Generate() {
|
||||
if (FLAG_harmony_scoping && info->scope()->is_global_scope()) {
|
||||
__ push(a1);
|
||||
__ Push(info->scope()->GetScopeInfo());
|
||||
__ CallRuntime(Runtime::kNewGlobalContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewGlobalContext, 2);
|
||||
} else if (heap_slots <= FastNewContextStub::kMaximumSlots) {
|
||||
FastNewContextStub stub(heap_slots);
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(a1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
function_in_register = false;
|
||||
// Context is returned in v0. It replaces the context passed to us.
|
||||
@ -877,7 +877,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
||||
__ mov(a0, zero_reg); // Smi::FromInt(0) indicates no initial value.
|
||||
__ Push(cp, a2, a1, a0);
|
||||
}
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -933,7 +933,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
||||
__ Push(cp, a2, a1);
|
||||
// Push initial value for function declaration.
|
||||
VisitForStackValue(declaration->fun());
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -1005,7 +1005,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
__ li(a1, Operand(pairs));
|
||||
__ li(a0, Operand(Smi::FromInt(DeclareGlobalsFlags())));
|
||||
__ Push(cp, a1, a0);
|
||||
__ CallRuntime(Runtime::kDeclareGlobals, 3);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareGlobals, 3);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1013,7 +1013,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
void FullCodeGenerator::DeclareModules(Handle<FixedArray> descriptions) {
|
||||
// Call the runtime to declare the modules.
|
||||
__ Push(descriptions);
|
||||
__ CallRuntime(Runtime::kDeclareModules, 1);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareModules, 1);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1372,7 +1372,7 @@ void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
|
||||
__ LoadRoot(a1, pretenure ? Heap::kTrueValueRootIndex
|
||||
: Heap::kFalseValueRootIndex);
|
||||
__ Push(cp, a0, a1);
|
||||
__ CallRuntime(Runtime::kNewClosure, 3);
|
||||
__ CallRuntime(Runtime::kHiddenNewClosure, 3);
|
||||
}
|
||||
context()->Plug(v0);
|
||||
}
|
||||
@ -1494,7 +1494,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(Variable* var,
|
||||
__ Branch(done, ne, at, Operand(zero_reg));
|
||||
__ li(a0, Operand(var->name()));
|
||||
__ push(a0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
}
|
||||
}
|
||||
__ Branch(done);
|
||||
@ -1573,7 +1573,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ Branch(&done, ne, at, Operand(zero_reg));
|
||||
__ li(a0, Operand(var->name()));
|
||||
__ push(a0);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
__ bind(&done);
|
||||
} else {
|
||||
// Uninitalized const bindings outside of harmony mode are unholed.
|
||||
@ -1598,7 +1598,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ bind(&slow);
|
||||
__ li(a1, Operand(var->name()));
|
||||
__ Push(cp, a1); // Context and name.
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ bind(&done);
|
||||
context()->Plug(v0);
|
||||
}
|
||||
@ -1630,7 +1630,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ li(a2, Operand(expr->pattern()));
|
||||
__ li(a1, Operand(expr->flags()));
|
||||
__ Push(t0, a3, a2, a1);
|
||||
__ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4);
|
||||
__ mov(t1, v0);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -1642,7 +1642,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ li(a0, Operand(Smi::FromInt(size)));
|
||||
__ Push(t1, a0);
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ pop(t1);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -1687,7 +1687,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
flags != ObjectLiteral::kFastElements ||
|
||||
properties_count > FastCloneShallowObjectStub::kMaximumClonedProperties) {
|
||||
__ Push(a3, a2, a1, a0);
|
||||
__ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateObjectLiteral, 4);
|
||||
} else {
|
||||
FastCloneShallowObjectStub stub(properties_count);
|
||||
__ CallStub(&stub);
|
||||
@ -1841,7 +1841,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
length > FastCloneShallowArrayStub::kMaximumClonedLength) {
|
||||
__ li(a0, Operand(Smi::FromInt(flags)));
|
||||
__ Push(a3, a2, a1, a0);
|
||||
__ CallRuntime(Runtime::kCreateArrayLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4);
|
||||
} else {
|
||||
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) ||
|
||||
FLAG_smi_only_arrays);
|
||||
@ -2043,7 +2043,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ Addu(a1, fp, Operand(StandardFrameConstants::kExpressionsOffset));
|
||||
__ Branch(&post_runtime, eq, sp, Operand(a1));
|
||||
__ push(v0); // generator object
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ bind(&post_runtime);
|
||||
__ pop(result_register());
|
||||
@ -2111,7 +2111,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ mov(a1, cp);
|
||||
__ RecordWriteField(a0, JSGeneratorObject::kContextOffset, a1, a2,
|
||||
kRAHasBeenSaved, kDontSaveFPRegs);
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ pop(v0); // result
|
||||
EmitReturnSequence();
|
||||
@ -2166,7 +2166,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
Expression *value,
|
||||
JSGeneratorObject::ResumeMode resume_mode) {
|
||||
// The value stays in a0, and is ultimately read by the resumed generator, as
|
||||
// if the CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
|
||||
// if CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject) returned it. Or it
|
||||
// is read to throw the value when the resumed generator is already closed.
|
||||
// a1 will hold the generator object until the activation has been resumed.
|
||||
VisitForStackValue(generator);
|
||||
@ -2248,7 +2248,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
ASSERT(!result_register().is(a1));
|
||||
__ Push(a1, result_register());
|
||||
__ Push(Smi::FromInt(resume_mode));
|
||||
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3);
|
||||
__ CallRuntime(Runtime::kHiddenResumeJSGeneratorObject, 3);
|
||||
// Not reached: the runtime call returns elsewhere.
|
||||
__ stop("not-reached");
|
||||
|
||||
@ -2263,14 +2263,14 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
} else {
|
||||
// Throw the provided value.
|
||||
__ push(a0);
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
}
|
||||
__ jmp(&done);
|
||||
|
||||
// Throw error if we attempt to operate on a running generator.
|
||||
__ bind(&wrong_state);
|
||||
__ push(a1);
|
||||
__ CallRuntime(Runtime::kThrowGeneratorStateError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowGeneratorStateError, 1);
|
||||
|
||||
__ bind(&done);
|
||||
context()->Plug(result_register());
|
||||
@ -2288,7 +2288,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
||||
|
||||
__ bind(&gc_required);
|
||||
__ Push(Smi::FromInt(map->instance_size()));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ lw(context_register(),
|
||||
MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
|
||||
@ -2506,7 +2506,7 @@ void FullCodeGenerator::EmitCallStoreContextSlot(
|
||||
__ li(a1, Operand(name));
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(v0, cp, a1, a0); // Value, context, name, strict mode.
|
||||
__ CallRuntime(Runtime::kStoreContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenStoreContextSlot, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -2524,7 +2524,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) {
|
||||
if (var->IsLookupSlot()) {
|
||||
__ li(a0, Operand(var->name()));
|
||||
__ Push(v0, cp, a0); // Context and name.
|
||||
__ CallRuntime(Runtime::kInitializeConstContextSlot, 3);
|
||||
__ CallRuntime(Runtime::kHiddenInitializeConstContextSlot, 3);
|
||||
} else {
|
||||
ASSERT(var->IsStackAllocated() || var->IsContextSlot());
|
||||
Label skip;
|
||||
@ -2549,7 +2549,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var, Token::Value op) {
|
||||
__ Branch(&assign, ne, a3, Operand(t0));
|
||||
__ li(a3, Operand(var->name()));
|
||||
__ push(a3);
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
// Perform the assignment.
|
||||
__ bind(&assign);
|
||||
EmitStoreToStackLocalOrContextSlot(var, location);
|
||||
@ -2785,7 +2785,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
|
||||
|
||||
// Do the runtime call.
|
||||
__ Push(t2, t1, t0, a1);
|
||||
__ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5);
|
||||
__ CallRuntime(Runtime::kHiddenResolvePossiblyDirectEval, 5);
|
||||
}
|
||||
|
||||
|
||||
@ -2801,8 +2801,8 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
Call::CallType call_type = expr->GetCallType(isolate());
|
||||
|
||||
if (call_type == Call::POSSIBLY_EVAL_CALL) {
|
||||
// In a call to eval, we first call %ResolvePossiblyDirectEval to
|
||||
// resolve the function we need to call and the receiver of the
|
||||
// In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
|
||||
// to resolve the function we need to call and the receiver of the
|
||||
// call. Then we call the resolved function using the given
|
||||
// arguments.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
@ -2857,7 +2857,7 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
ASSERT(!context_register().is(a2));
|
||||
__ li(a2, Operand(proxy->name()));
|
||||
__ Push(context_register(), a2);
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ Push(v0, v1); // Function, receiver.
|
||||
|
||||
// If fast case code has been generated, emit code to push the
|
||||
@ -3521,7 +3521,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
|
||||
}
|
||||
|
||||
__ bind(¬_date_object);
|
||||
__ CallRuntime(Runtime::kThrowNotDateError, 0);
|
||||
__ CallRuntime(Runtime::kHiddenThrowNotDateError, 0);
|
||||
__ bind(&done);
|
||||
context()->Plug(v0);
|
||||
}
|
||||
@ -4283,7 +4283,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
|
||||
ASSERT(!context_register().is(a2));
|
||||
__ li(a2, Operand(var->name()));
|
||||
__ Push(context_register(), a2);
|
||||
__ CallRuntime(Runtime::kDeleteContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenDeleteContextSlot, 2);
|
||||
context()->Plug(v0);
|
||||
}
|
||||
} else {
|
||||
@ -4565,7 +4565,7 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
||||
__ bind(&slow);
|
||||
__ li(a0, Operand(proxy->name()));
|
||||
__ Push(cp, a0);
|
||||
__ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlotNoReferenceError, 2);
|
||||
PrepareForBailout(expr, TOS_REG);
|
||||
__ bind(&done);
|
||||
|
||||
|
@ -207,7 +207,7 @@ bool LCodeGen::GeneratePrologue() {
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ push(a1);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
RecordSafepoint(Safepoint::kNoLazyDeopt);
|
||||
// Context is returned in both v0. It replaces the context passed to us.
|
||||
@ -3499,7 +3499,7 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) {
|
||||
__ li(scratch1(), Operand(Smi::FromInt(instr->hydrogen()->flags())));
|
||||
// The context is the first argument.
|
||||
__ Push(cp, scratch0(), scratch1());
|
||||
CallRuntime(Runtime::kDeclareGlobals, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenDeclareGlobals, 3, instr);
|
||||
}
|
||||
|
||||
|
||||
@ -3588,7 +3588,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
|
||||
// Slow case: Call the runtime system to do the number allocation.
|
||||
__ bind(&slow);
|
||||
|
||||
CallRuntimeFromDeferred(Runtime::kAllocateHeapNumber, 0, instr,
|
||||
CallRuntimeFromDeferred(Runtime::kHiddenAllocateHeapNumber, 0, instr,
|
||||
instr->context());
|
||||
// Set the pointer to the new heap number in tmp.
|
||||
if (!tmp1.is(v0))
|
||||
@ -4672,11 +4672,11 @@ void LCodeGen::DoDeferredNumberTagIU(LInstruction* instr,
|
||||
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ Subu(v0, v0, kHeapObjectTag);
|
||||
@ -4737,11 +4737,11 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
// NumberTagI and NumberTagD use the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ Subu(v0, v0, kHeapObjectTag);
|
||||
@ -5351,7 +5351,7 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
|
||||
__ Push(Smi::FromInt(flags));
|
||||
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
|
||||
Runtime::kHiddenAllocateInTargetSpace, 2, instr, instr->context());
|
||||
__ StoreToSafepointRegisterSlot(v0, result);
|
||||
}
|
||||
|
||||
@ -5385,7 +5385,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ li(t1, Operand(instr->hydrogen()->pattern()));
|
||||
__ li(t0, Operand(instr->hydrogen()->flags()));
|
||||
__ Push(t3, t2, t1, t0);
|
||||
CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
||||
CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4, instr);
|
||||
__ mov(a1, v0);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -5398,7 +5398,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ li(a0, Operand(Smi::FromInt(size)));
|
||||
__ Push(a1, a0);
|
||||
CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
||||
CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1, instr);
|
||||
__ pop(a1);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -5432,7 +5432,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
||||
__ li(a1, Operand(pretenure ? factory()->true_value()
|
||||
: factory()->false_value()));
|
||||
__ Push(cp, a2, a1);
|
||||
CallRuntime(Runtime::kNewClosure, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenNewClosure, 3, instr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5656,7 +5656,7 @@ void LCodeGen::DoDummyUse(LDummyUse* instr) {
|
||||
void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
PushSafepointRegistersScope scope(this, Safepoint::kWithRegisters);
|
||||
LoadContextFromDeferred(instr->context());
|
||||
__ CallRuntimeSaveDoubles(Runtime::kStackGuard);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenStackGuard);
|
||||
RecordSafepointWithLazyDeopt(
|
||||
instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
|
||||
ASSERT(instr->HasEnvironment());
|
||||
|
@ -3986,7 +3986,7 @@ void MacroAssembler::CallApiFunctionAndReturn(
|
||||
{
|
||||
FrameScope frame(this, StackFrame::INTERNAL);
|
||||
CallExternalReference(
|
||||
ExternalReference(Runtime::kPromoteScheduledException, isolate()),
|
||||
ExternalReference(Runtime::kHiddenPromoteScheduledException, isolate()),
|
||||
0);
|
||||
}
|
||||
jmp(&exception_handled);
|
||||
@ -5451,9 +5451,9 @@ void MacroAssembler::Throw(BailoutReason reason) {
|
||||
// We don't actually want to generate a pile of code for this, so just
|
||||
// claim there is a stack frame, without generating one.
|
||||
FrameScope scope(this, StackFrame::NONE);
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
} else {
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
}
|
||||
// will not return here
|
||||
if (is_trampoline_pool_blocked()) {
|
||||
|
@ -1738,7 +1738,7 @@ void Parser::Declare(Declaration* declaration, bool resolve, bool* ok) {
|
||||
// same variable if it is declared several times. This is not a
|
||||
// semantic issue as long as we keep the source order, but it may be
|
||||
// a performance issue since it may lead to repeated
|
||||
// Runtime::DeclareContextSlot() calls.
|
||||
// RuntimeHidden_DeclareContextSlot calls.
|
||||
declaration_scope->AddDeclaration(declaration);
|
||||
|
||||
if (mode == CONST_LEGACY && declaration_scope->is_global_scope()) {
|
||||
@ -2216,7 +2216,7 @@ Block* Parser::ParseVariableDeclarations(
|
||||
// the number of arguments (1 or 2).
|
||||
initialize = factory()->NewCallRuntime(
|
||||
isolate()->factory()->InitializeConstGlobal_string(),
|
||||
Runtime::FunctionForId(Runtime::kInitializeConstGlobal),
|
||||
Runtime::FunctionForId(Runtime::kHiddenInitializeConstGlobal),
|
||||
arguments, pos);
|
||||
} else {
|
||||
// Add strict mode.
|
||||
@ -3432,7 +3432,7 @@ FunctionLiteral* Parser::ParseFunctionLiteral(
|
||||
new(zone()) ZoneList<Expression*>(0, zone());
|
||||
CallRuntime* allocation = factory()->NewCallRuntime(
|
||||
isolate()->factory()->empty_string(),
|
||||
Runtime::FunctionForId(Runtime::kCreateJSGeneratorObject),
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateJSGeneratorObject),
|
||||
arguments, pos);
|
||||
VariableProxy* init_proxy = factory()->NewVariableProxy(
|
||||
function_state_->generator_object_variable());
|
||||
|
122
src/runtime.cc
122
src/runtime.cc
@ -468,7 +468,7 @@ static Handle<Object> CreateLiteralBoilerplate(
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateObjectLiteral) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CreateObjectLiteral) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
CONVERT_ARG_HANDLE_CHECKED(FixedArray, literals, 0);
|
||||
@ -570,7 +570,7 @@ static MaybeObject* CreateArrayLiteralImpl(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateArrayLiteral) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CreateArrayLiteral) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
CONVERT_ARG_HANDLE_CHECKED(FixedArray, literals, 0);
|
||||
@ -583,7 +583,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateArrayLiteral) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateArrayLiteralStubBailout) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CreateArrayLiteralStubBailout) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
CONVERT_ARG_HANDLE_CHECKED(FixedArray, literals, 0);
|
||||
@ -2131,6 +2131,8 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetAccessorProperty) {
|
||||
CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3);
|
||||
CONVERT_SMI_ARG_CHECKED(attribute, 4);
|
||||
CONVERT_SMI_ARG_CHECKED(access_control, 5);
|
||||
RUNTIME_ASSERT(getter->IsUndefined() || getter->IsFunctionTemplateInfo());
|
||||
RUNTIME_ASSERT(setter->IsUndefined() || setter->IsFunctionTemplateInfo());
|
||||
JSObject::DefineAccessor(object,
|
||||
name,
|
||||
InstantiateAccessorComponent(isolate, getter),
|
||||
@ -2154,7 +2156,7 @@ static Failure* ThrowRedeclarationError(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareGlobals) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_DeclareGlobals) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
Handle<GlobalObject> global = Handle<GlobalObject>(
|
||||
@ -2249,7 +2251,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareGlobals) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareContextSlot) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_DeclareContextSlot) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
|
||||
@ -2408,7 +2410,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeVarGlobal) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstGlobal) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_InitializeConstGlobal) {
|
||||
SealHandleScope shs(isolate);
|
||||
// All constants are declared with an initial value. The name
|
||||
// of the constant is the first argument and the initial value
|
||||
@ -2485,7 +2487,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstGlobal) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_InitializeConstContextSlot) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_InitializeConstContextSlot) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
|
||||
@ -2803,7 +2805,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetDefaultReceiver) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_MaterializeRegExpLiteral) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_MaterializeRegExpLiteral) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
CONVERT_ARG_HANDLE_CHECKED(FixedArray, literals, 0);
|
||||
@ -3121,7 +3123,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SetExpectedNumberOfProperties) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSGeneratorObject) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CreateJSGeneratorObject) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
|
||||
@ -3147,7 +3149,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CreateJSGeneratorObject) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_SuspendJSGeneratorObject) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_SuspendJSGeneratorObject) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_ARG_CHECKED(JSGeneratorObject, generator_object, 0);
|
||||
@ -3198,7 +3200,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_SuspendJSGeneratorObject) {
|
||||
// inlined into GeneratorNext and GeneratorThrow. EmitGeneratorResumeResume is
|
||||
// called in any case, as it needs to reconstruct the stack frame and make space
|
||||
// for arguments and operands.
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ResumeJSGeneratorObject) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ResumeJSGeneratorObject) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
CONVERT_ARG_CHECKED(JSGeneratorObject, generator_object, 0);
|
||||
@ -3246,7 +3248,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ResumeJSGeneratorObject) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowGeneratorStateError) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ThrowGeneratorStateError) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
|
||||
@ -6924,7 +6926,7 @@ RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NumberToString) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToStringSkipCache) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NumberToStringSkipCache) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -6949,24 +6951,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToInteger) {
|
||||
}
|
||||
|
||||
|
||||
// ES6 draft 9.1.11
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToPositiveInteger) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
CONVERT_DOUBLE_ARG_CHECKED(number, 0);
|
||||
|
||||
// We do not include 0 so that we don't have to treat +0 / -0 cases.
|
||||
if (number > 0 && number <= Smi::kMaxValue) {
|
||||
return Smi::FromInt(static_cast<int>(number));
|
||||
}
|
||||
if (number <= 0) {
|
||||
return Smi::FromInt(0);
|
||||
}
|
||||
return isolate->heap()->NumberFromDouble(DoubleToInteger(number));
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToIntegerMapMinusZero) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
@ -7011,7 +6995,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToJSInt32) {
|
||||
|
||||
// Converts a Number to a Smi, if possible. Returns NaN if the number is not
|
||||
// a small integer.
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToSmi) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NumberToSmi) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -7030,7 +7014,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NumberToSmi) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_AllocateHeapNumber) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_AllocateHeapNumber) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
return isolate->heap()->AllocateHeapNumber(0);
|
||||
@ -8020,7 +8004,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DateSetValue) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewArgumentsFast) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewArgumentsFast) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
|
||||
@ -8115,7 +8099,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewArgumentsFast) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewStrictArgumentsFast) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewStrictArgumentsFast) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
|
||||
@ -8148,7 +8132,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewStrictArgumentsFast) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewClosureFromStubFailure) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewClosureFromStubFailure) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_ARG_HANDLE_CHECKED(SharedFunctionInfo, shared, 0);
|
||||
@ -8162,7 +8146,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewClosureFromStubFailure) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewClosure) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewClosure) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
CONVERT_ARG_HANDLE_CHECKED(Context, context, 0);
|
||||
@ -8428,7 +8412,7 @@ static MaybeObject* Runtime_NewObjectHelper(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewObject) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewObject) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -8439,7 +8423,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewObject) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewObjectWithAllocationSite) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewObjectWithAllocationSite) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
|
||||
@ -8456,7 +8440,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewObjectWithAllocationSite) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_FinalizeInstanceSize) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_FinalizeInstanceSize) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -8467,7 +8451,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_FinalizeInstanceSize) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileUnoptimized) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CompileUnoptimized) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -8496,7 +8480,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileUnoptimized) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_CompileOptimized) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_CompileOptimized) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
Handle<JSFunction> function = args.at<JSFunction>(0);
|
||||
@ -8559,7 +8543,7 @@ class ActivationsFinder : public ThreadVisitor {
|
||||
};
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyStubFailure) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NotifyStubFailure) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
Deoptimizer* deoptimizer = Deoptimizer::Grab(isolate);
|
||||
@ -8569,7 +8553,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyStubFailure) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NotifyDeoptimized) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NotifyDeoptimized) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
RUNTIME_ASSERT(args[0]->IsSmi());
|
||||
@ -9021,7 +9005,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_GetConstructorDelegate) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewGlobalContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewGlobalContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
|
||||
@ -9040,7 +9024,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewGlobalContext) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_NewFunctionContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_NewFunctionContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -9050,7 +9034,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_NewFunctionContext) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_PushWithContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_PushWithContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
JSReceiver* extension_object;
|
||||
@ -9094,7 +9078,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushWithContext) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_PushCatchContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_PushCatchContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 3);
|
||||
String* name = String::cast(args[0]);
|
||||
@ -9120,7 +9104,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushCatchContext) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_PushBlockContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_PushBlockContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
ScopeInfo* scope_info = ScopeInfo::cast(args[0]);
|
||||
@ -9152,7 +9136,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_IsJSModule) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_PushModuleContext) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_PushModuleContext) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
CONVERT_SMI_ARG_CHECKED(index, 0);
|
||||
@ -9187,7 +9171,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_PushModuleContext) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareModules) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_DeclareModules) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_ARG_HANDLE_CHECKED(FixedArray, descriptions, 0);
|
||||
@ -9240,7 +9224,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DeclareModules) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_DeleteContextSlot) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_DeleteContextSlot) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
|
||||
@ -9426,17 +9410,17 @@ static ObjectPair LoadContextSlotHelper(Arguments args,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(ObjectPair, Runtime_LoadContextSlot) {
|
||||
RUNTIME_FUNCTION(ObjectPair, RuntimeHidden_LoadContextSlot) {
|
||||
return LoadContextSlotHelper(args, isolate, true);
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(ObjectPair, Runtime_LoadContextSlotNoReferenceError) {
|
||||
RUNTIME_FUNCTION(ObjectPair, RuntimeHidden_LoadContextSlotNoReferenceError) {
|
||||
return LoadContextSlotHelper(args, isolate, false);
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_StoreContextSlot) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_StoreContextSlot) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 4);
|
||||
|
||||
@ -9521,7 +9505,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StoreContextSlot) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_Throw) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_Throw) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -9529,7 +9513,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_Throw) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ReThrow) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ReThrow) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -9537,14 +9521,14 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ReThrow) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_PromoteScheduledException) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_PromoteScheduledException) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT_EQ(0, args.length());
|
||||
return isolate->PromoteScheduledException();
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowReferenceError) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ThrowReferenceError) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
|
||||
@ -9556,7 +9540,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowReferenceError) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowNotDateError) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ThrowNotDateError) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
return isolate->Throw(*isolate->factory()->NewTypeError(
|
||||
@ -9564,7 +9548,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowNotDateError) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowMessage) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ThrowMessage) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_SMI_ARG_CHECKED(message_id, 0);
|
||||
@ -9577,7 +9561,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ThrowMessage) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_StackGuard) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_StackGuard) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
|
||||
@ -9590,7 +9574,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_StackGuard) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_TryInstallOptimizedCode) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_TryInstallOptimizedCode) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
|
||||
@ -9607,7 +9591,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_TryInstallOptimizedCode) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_Interrupt) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_Interrupt) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 0);
|
||||
return Execution::HandleStackGuardInterrupt(isolate);
|
||||
@ -9907,7 +9891,7 @@ static ObjectPair CompileGlobalEval(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(ObjectPair, Runtime_ResolvePossiblyDirectEval) {
|
||||
RUNTIME_FUNCTION(ObjectPair, RuntimeHidden_ResolvePossiblyDirectEval) {
|
||||
HandleScope scope(isolate);
|
||||
ASSERT(args.length() == 5);
|
||||
|
||||
@ -9958,7 +9942,7 @@ static MaybeObject* Allocate(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_AllocateInNewSpace) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_AllocateInNewSpace) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 1);
|
||||
CONVERT_SMI_ARG_CHECKED(size, 0);
|
||||
@ -9966,7 +9950,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_AllocateInNewSpace) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_AllocateInTargetSpace) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_AllocateInTargetSpace) {
|
||||
SealHandleScope shs(isolate);
|
||||
ASSERT(args.length() == 2);
|
||||
CONVERT_SMI_ARG_CHECKED(size, 0);
|
||||
@ -15024,7 +15008,7 @@ static MaybeObject* ArrayConstructorCommon(Isolate* isolate,
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayConstructor) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_ArrayConstructor) {
|
||||
HandleScope scope(isolate);
|
||||
// If we get 2 arguments then they are the stub parameters (constructor, type
|
||||
// info). If we get 4, then the first one is a pointer to the arguments
|
||||
@ -15061,7 +15045,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayConstructor) {
|
||||
}
|
||||
|
||||
|
||||
RUNTIME_FUNCTION(MaybeObject*, Runtime_InternalArrayConstructor) {
|
||||
RUNTIME_FUNCTION(MaybeObject*, RuntimeHidden_InternalArrayConstructor) {
|
||||
HandleScope scope(isolate);
|
||||
Arguments empty_args(0, NULL);
|
||||
bool no_caller_args = args.length() == 1;
|
||||
|
134
src/runtime.h
134
src/runtime.h
@ -83,13 +83,6 @@ namespace internal {
|
||||
F(Apply, 5, 1) \
|
||||
F(GetFunctionDelegate, 1, 1) \
|
||||
F(GetConstructorDelegate, 1, 1) \
|
||||
F(NewArgumentsFast, 3, 1) \
|
||||
F(NewStrictArgumentsFast, 3, 1) \
|
||||
F(CompileUnoptimized, 1, 1) \
|
||||
F(CompileOptimized, 2, 1) \
|
||||
F(TryInstallOptimizedCode, 1, 1) \
|
||||
F(NotifyDeoptimized, 1, 1) \
|
||||
F(NotifyStubFailure, 0, 1) \
|
||||
F(DeoptimizeFunction, 1, 1) \
|
||||
F(ClearFunctionTypeFeedback, 1, 1) \
|
||||
F(RunningInSimulator, 0, 1) \
|
||||
@ -101,8 +94,6 @@ namespace internal {
|
||||
F(UnblockConcurrentRecompilation, 0, 1) \
|
||||
F(CompileForOnStackReplacement, 1, 1) \
|
||||
F(SetAllocationTimeout, -1 /* 2 || 3 */, 1) \
|
||||
F(AllocateInNewSpace, 1, 1) \
|
||||
F(AllocateInTargetSpace, 2, 1) \
|
||||
F(SetNativeFlag, 1, 1) \
|
||||
F(SetInlineBuiltinFlag, 1, 1) \
|
||||
F(StoreArrayLiteralElement, 5, 1) \
|
||||
@ -130,14 +121,10 @@ namespace internal {
|
||||
F(URIEscape, 1, 1) \
|
||||
F(URIUnescape, 1, 1) \
|
||||
\
|
||||
F(NumberToStringSkipCache, 1, 1) \
|
||||
F(NumberToInteger, 1, 1) \
|
||||
F(NumberToPositiveInteger, 1, 1) \
|
||||
F(NumberToIntegerMapMinusZero, 1, 1) \
|
||||
F(NumberToJSUint32, 1, 1) \
|
||||
F(NumberToJSInt32, 1, 1) \
|
||||
F(NumberToSmi, 1, 1) \
|
||||
F(AllocateHeapNumber, 0, 1) \
|
||||
\
|
||||
/* Arithmetic operations */ \
|
||||
F(NumberAdd, 2, 1) \
|
||||
@ -258,16 +245,12 @@ namespace internal {
|
||||
F(DateSetValue, 3, 1) \
|
||||
F(DateCacheVersion, 0, 1) \
|
||||
\
|
||||
/* Numbers */ \
|
||||
\
|
||||
/* Globals */ \
|
||||
F(CompileString, 2, 1) \
|
||||
F(GlobalPrint, 1, 1) \
|
||||
\
|
||||
/* Eval */ \
|
||||
F(GlobalReceiver, 1, 1) \
|
||||
F(IsAttachedGlobal, 1, 1) \
|
||||
F(ResolvePossiblyDirectEval, 5, 2) \
|
||||
\
|
||||
F(SetProperty, -1 /* 4 or 5 */, 1) \
|
||||
F(DefineOrRedefineDataProperty, 4, 1) \
|
||||
@ -281,24 +264,10 @@ namespace internal {
|
||||
F(GetArrayKeys, 2, 1) \
|
||||
F(MoveArrayContents, 2, 1) \
|
||||
F(EstimateNumberOfElements, 1, 1) \
|
||||
F(ArrayConstructor, -1, 1) \
|
||||
F(InternalArrayConstructor, -1, 1) \
|
||||
\
|
||||
/* Getters and Setters */ \
|
||||
F(LookupAccessor, 3, 1) \
|
||||
\
|
||||
/* Literals */ \
|
||||
F(MaterializeRegExpLiteral, 4, 1)\
|
||||
F(CreateObjectLiteral, 4, 1) \
|
||||
F(CreateArrayLiteral, 4, 1) \
|
||||
F(CreateArrayLiteralStubBailout, 3, 1) \
|
||||
\
|
||||
/* Harmony generators */ \
|
||||
F(CreateJSGeneratorObject, 0, 1) \
|
||||
F(SuspendJSGeneratorObject, 1, 1) \
|
||||
F(ResumeJSGeneratorObject, 3, 1) \
|
||||
F(ThrowGeneratorStateError, 1, 1) \
|
||||
\
|
||||
/* ES5 */ \
|
||||
F(ObjectFreeze, 1, 1) \
|
||||
\
|
||||
@ -397,44 +366,15 @@ namespace internal {
|
||||
F(DataViewSetFloat64, 4, 1) \
|
||||
\
|
||||
/* Statements */ \
|
||||
F(NewClosure, 3, 1) \
|
||||
F(NewClosureFromStubFailure, 1, 1) \
|
||||
F(NewObject, 1, 1) \
|
||||
F(NewObjectWithAllocationSite, 2, 1) \
|
||||
F(NewObjectFromBound, 1, 1) \
|
||||
F(FinalizeInstanceSize, 1, 1) \
|
||||
F(Throw, 1, 1) \
|
||||
F(ReThrow, 1, 1) \
|
||||
F(ThrowReferenceError, 1, 1) \
|
||||
F(ThrowNotDateError, 0, 1) \
|
||||
F(ThrowMessage, 1, 1) \
|
||||
F(StackGuard, 0, 1) \
|
||||
F(Interrupt, 0, 1) \
|
||||
F(PromoteScheduledException, 0, 1) \
|
||||
\
|
||||
/* Contexts */ \
|
||||
F(NewGlobalContext, 2, 1) \
|
||||
F(NewFunctionContext, 1, 1) \
|
||||
F(PushWithContext, 2, 1) \
|
||||
F(PushCatchContext, 3, 1) \
|
||||
F(PushBlockContext, 2, 1) \
|
||||
F(PushModuleContext, 2, 1) \
|
||||
F(DeleteContextSlot, 2, 1) \
|
||||
F(LoadContextSlot, 2, 2) \
|
||||
F(LoadContextSlotNoReferenceError, 2, 2) \
|
||||
F(StoreContextSlot, 4, 1) \
|
||||
\
|
||||
/* Declarations and initialization */ \
|
||||
F(DeclareGlobals, 3, 1) \
|
||||
F(DeclareModules, 1, 1) \
|
||||
F(DeclareContextSlot, 4, 1) \
|
||||
F(InitializeVarGlobal, -1 /* 2 or 3 */, 1) \
|
||||
F(InitializeConstGlobal, 2, 1) \
|
||||
F(InitializeConstContextSlot, 3, 1) \
|
||||
F(OptimizeObjectForAddingMultipleProperties, 2, 1) \
|
||||
\
|
||||
/* Debugging */ \
|
||||
F(DebugPrint, 1, 1) \
|
||||
F(GlobalPrint, 1, 1) \
|
||||
F(DebugTrace, 0, 1) \
|
||||
F(TraceEnter, 0, 1) \
|
||||
F(TraceExit, 1, 1) \
|
||||
@ -624,7 +564,77 @@ namespace internal {
|
||||
F(StringCompare, 2, 1) \
|
||||
F(StringCharCodeAt, 2, 1) \
|
||||
F(Log, 3, 1) \
|
||||
F(GetFromCache, 2, 1)
|
||||
F(GetFromCache, 2, 1) \
|
||||
\
|
||||
/* Compilation */ \
|
||||
F(CompileUnoptimized, 1, 1) \
|
||||
F(CompileOptimized, 2, 1) \
|
||||
F(TryInstallOptimizedCode, 1, 1) \
|
||||
F(NotifyDeoptimized, 1, 1) \
|
||||
F(NotifyStubFailure, 0, 1) \
|
||||
\
|
||||
/* Utilities */ \
|
||||
F(AllocateInNewSpace, 1, 1) \
|
||||
F(AllocateInTargetSpace, 2, 1) \
|
||||
F(AllocateHeapNumber, 0, 1) \
|
||||
F(NumberToSmi, 1, 1) \
|
||||
F(NumberToStringSkipCache, 1, 1) \
|
||||
\
|
||||
F(NewArgumentsFast, 3, 1) \
|
||||
F(NewStrictArgumentsFast, 3, 1) \
|
||||
\
|
||||
/* Harmony generators */ \
|
||||
F(CreateJSGeneratorObject, 0, 1) \
|
||||
F(SuspendJSGeneratorObject, 1, 1) \
|
||||
F(ResumeJSGeneratorObject, 3, 1) \
|
||||
F(ThrowGeneratorStateError, 1, 1) \
|
||||
\
|
||||
/* Arrays */ \
|
||||
F(ArrayConstructor, -1, 1) \
|
||||
F(InternalArrayConstructor, -1, 1) \
|
||||
\
|
||||
/* Literals */ \
|
||||
F(MaterializeRegExpLiteral, 4, 1)\
|
||||
F(CreateObjectLiteral, 4, 1) \
|
||||
F(CreateArrayLiteral, 4, 1) \
|
||||
F(CreateArrayLiteralStubBailout, 3, 1) \
|
||||
\
|
||||
/* Statements */ \
|
||||
F(NewClosure, 3, 1) \
|
||||
F(NewClosureFromStubFailure, 1, 1) \
|
||||
F(NewObject, 1, 1) \
|
||||
F(NewObjectWithAllocationSite, 2, 1) \
|
||||
F(FinalizeInstanceSize, 1, 1) \
|
||||
F(Throw, 1, 1) \
|
||||
F(ReThrow, 1, 1) \
|
||||
F(ThrowReferenceError, 1, 1) \
|
||||
F(ThrowNotDateError, 0, 1) \
|
||||
F(ThrowMessage, 1, 1) \
|
||||
F(StackGuard, 0, 1) \
|
||||
F(Interrupt, 0, 1) \
|
||||
F(PromoteScheduledException, 0, 1) \
|
||||
\
|
||||
/* Contexts */ \
|
||||
F(NewGlobalContext, 2, 1) \
|
||||
F(NewFunctionContext, 1, 1) \
|
||||
F(PushWithContext, 2, 1) \
|
||||
F(PushCatchContext, 3, 1) \
|
||||
F(PushBlockContext, 2, 1) \
|
||||
F(PushModuleContext, 2, 1) \
|
||||
F(DeleteContextSlot, 2, 1) \
|
||||
F(LoadContextSlot, 2, 2) \
|
||||
F(LoadContextSlotNoReferenceError, 2, 2) \
|
||||
F(StoreContextSlot, 4, 1) \
|
||||
\
|
||||
/* Declarations and initialization */ \
|
||||
F(DeclareGlobals, 3, 1) \
|
||||
F(DeclareModules, 1, 1) \
|
||||
F(DeclareContextSlot, 4, 1) \
|
||||
F(InitializeConstGlobal, 2, 1) \
|
||||
F(InitializeConstContextSlot, 3, 1) \
|
||||
\
|
||||
/* Eval */ \
|
||||
F(ResolvePossiblyDirectEval, 5, 2)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// INLINE_FUNCTION_LIST defines all inlined functions accessed
|
||||
|
@ -508,11 +508,12 @@ void ExternalReferenceTable::PopulateTable(Isolate* isolate) {
|
||||
UNCLASSIFIED,
|
||||
52,
|
||||
"cpu_features");
|
||||
Add(ExternalReference(Runtime::kAllocateInNewSpace, isolate).address(),
|
||||
Add(ExternalReference(Runtime::kHiddenAllocateInNewSpace, isolate).address(),
|
||||
UNCLASSIFIED,
|
||||
53,
|
||||
"Runtime::AllocateInNewSpace");
|
||||
Add(ExternalReference(Runtime::kAllocateInTargetSpace, isolate).address(),
|
||||
Add(ExternalReference(
|
||||
Runtime::kHiddenAllocateInTargetSpace, isolate).address(),
|
||||
UNCLASSIFIED,
|
||||
54,
|
||||
"Runtime::AllocateInTargetSpace");
|
||||
|
@ -114,7 +114,7 @@ void Builtins::Generate_InOptimizationQueue(MacroAssembler* masm) {
|
||||
__ CompareRoot(rsp, Heap::kStackLimitRootIndex);
|
||||
__ j(above_equal, &ok);
|
||||
|
||||
CallRuntimePassFunction(masm, Runtime::kTryInstallOptimizedCode);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenTryInstallOptimizedCode);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
|
||||
__ bind(&ok);
|
||||
@ -204,7 +204,7 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
|
||||
__ Push(rdi); // constructor
|
||||
// The call will replace the stub, so the countdown is only done once.
|
||||
__ CallRuntime(Runtime::kFinalizeInstanceSize, 1);
|
||||
__ CallRuntime(Runtime::kHiddenFinalizeInstanceSize, 1);
|
||||
|
||||
__ Pop(rdi);
|
||||
__ Pop(rax);
|
||||
@ -373,9 +373,9 @@ static void Generate_JSConstructStubHelper(MacroAssembler* masm,
|
||||
__ movp(rdi, Operand(rsp, offset));
|
||||
__ Push(rdi);
|
||||
if (create_memento) {
|
||||
__ CallRuntime(Runtime::kNewObjectWithAllocationSite, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewObjectWithAllocationSite, 2);
|
||||
} else {
|
||||
__ CallRuntime(Runtime::kNewObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewObject, 1);
|
||||
}
|
||||
__ movp(rbx, rax); // store result in rbx
|
||||
|
||||
@ -628,7 +628,7 @@ void Builtins::Generate_JSConstructEntryTrampoline(MacroAssembler* masm) {
|
||||
|
||||
|
||||
void Builtins::Generate_CompileUnoptimized(MacroAssembler* masm) {
|
||||
CallRuntimePassFunction(masm, Runtime::kCompileUnoptimized);
|
||||
CallRuntimePassFunction(masm, Runtime::kHiddenCompileUnoptimized);
|
||||
GenerateTailCallToReturnedCode(masm);
|
||||
}
|
||||
|
||||
@ -643,7 +643,7 @@ static void CallCompileOptimized(MacroAssembler* masm,
|
||||
// Whether to compile in a background thread.
|
||||
__ Push(masm->isolate()->factory()->ToBoolean(concurrent));
|
||||
|
||||
__ CallRuntime(Runtime::kCompileOptimized, 2);
|
||||
__ CallRuntime(Runtime::kHiddenCompileOptimized, 2);
|
||||
// Restore receiver.
|
||||
__ Pop(rdi);
|
||||
}
|
||||
@ -744,7 +744,7 @@ static void Generate_NotifyStubFailureHelper(MacroAssembler* masm,
|
||||
// stubs that tail call the runtime on deopts passing their parameters in
|
||||
// registers.
|
||||
__ Pushad();
|
||||
__ CallRuntime(Runtime::kNotifyStubFailure, 0, save_doubles);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyStubFailure, 0, save_doubles);
|
||||
__ Popad();
|
||||
// Tear down internal frame.
|
||||
}
|
||||
@ -773,7 +773,7 @@ static void Generate_NotifyDeoptimizedHelper(MacroAssembler* masm,
|
||||
// Pass the deoptimization type to the runtime system.
|
||||
__ Push(Smi::FromInt(static_cast<int>(type)));
|
||||
|
||||
__ CallRuntime(Runtime::kNotifyDeoptimized, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNotifyDeoptimized, 1);
|
||||
// Tear down internal frame.
|
||||
}
|
||||
|
||||
@ -1486,7 +1486,7 @@ void Builtins::Generate_OsrAfterStackCheck(MacroAssembler* masm) {
|
||||
__ j(above_equal, &ok);
|
||||
{
|
||||
FrameScope scope(masm, StackFrame::INTERNAL);
|
||||
__ CallRuntime(Runtime::kStackGuard, 0);
|
||||
__ CallRuntime(Runtime::kHiddenStackGuard, 0);
|
||||
}
|
||||
__ jmp(masm->isolate()->builtins()->OnStackReplacement(),
|
||||
RelocInfo::CODE_TARGET);
|
||||
|
@ -46,7 +46,7 @@ void FastNewClosureStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 1;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kNewClosureFromStubFailure)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenNewClosureFromStubFailure)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -88,7 +88,8 @@ void FastCloneShallowArrayStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 3;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateArrayLiteralStubBailout)->entry;
|
||||
Runtime::FunctionForId(
|
||||
Runtime::kHiddenCreateArrayLiteralStubBailout)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -99,7 +100,7 @@ void FastCloneShallowObjectStub::InitializeInterfaceDescriptor(
|
||||
descriptor->register_param_count_ = 4;
|
||||
descriptor->register_params_ = registers;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kCreateObjectLiteral)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenCreateObjectLiteral)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -233,7 +234,7 @@ static void InitializeArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -261,7 +262,7 @@ static void InitializeInternalArrayConstructorDescriptor(
|
||||
descriptor->hint_stack_parameter_count_ = constant_stack_parameter_count;
|
||||
descriptor->function_mode_ = JS_FUNCTION_STUB_MODE;
|
||||
descriptor->deoptimization_handler_ =
|
||||
Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
|
||||
Runtime::FunctionForId(Runtime::kHiddenInternalArrayConstructor)->entry;
|
||||
}
|
||||
|
||||
|
||||
@ -1203,7 +1204,7 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
||||
__ bind(&runtime);
|
||||
__ Integer32ToSmi(rcx, rcx);
|
||||
__ movp(args.GetArgumentOperand(2), rcx); // Patch argument count.
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -1230,7 +1231,7 @@ void ArgumentsAccessStub::GenerateNewSloppySlow(MacroAssembler* masm) {
|
||||
__ movp(args.GetArgumentOperand(1), rdx);
|
||||
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -1331,7 +1332,7 @@ void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
||||
|
||||
// Do the runtime call to allocate the arguments object.
|
||||
__ bind(&runtime);
|
||||
__ TailCallRuntime(Runtime::kNewStrictArgumentsFast, 3, 1);
|
||||
__ TailCallRuntime(Runtime::kHiddenNewStrictArgumentsFast, 3, 1);
|
||||
}
|
||||
|
||||
|
||||
@ -3009,7 +3010,7 @@ void StringCharCodeAtGenerator::GenerateSlow(
|
||||
} else {
|
||||
ASSERT(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
|
||||
// NumberToSmi discards numbers that are not exact integers.
|
||||
__ CallRuntime(Runtime::kNumberToSmi, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNumberToSmi, 1);
|
||||
}
|
||||
if (!index_.is(rax)) {
|
||||
// Save the conversion result before the pop instructions below
|
||||
|
@ -224,13 +224,13 @@ void FullCodeGenerator::Generate() {
|
||||
if (FLAG_harmony_scoping && info->scope()->is_global_scope()) {
|
||||
__ Push(rdi);
|
||||
__ Push(info->scope()->GetScopeInfo());
|
||||
__ CallRuntime(Runtime::kNewGlobalContext, 2);
|
||||
__ CallRuntime(Runtime::kHiddenNewGlobalContext, 2);
|
||||
} else if (heap_slots <= FastNewContextStub::kMaximumSlots) {
|
||||
FastNewContextStub stub(heap_slots);
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ Push(rdi);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
function_in_register = false;
|
||||
// Context is returned in rax. It replaces the context passed to us.
|
||||
@ -838,7 +838,7 @@ void FullCodeGenerator::VisitVariableDeclaration(
|
||||
} else {
|
||||
__ Push(Smi::FromInt(0)); // Indicates no initial value.
|
||||
}
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -892,7 +892,7 @@ void FullCodeGenerator::VisitFunctionDeclaration(
|
||||
__ Push(variable->name());
|
||||
__ Push(Smi::FromInt(NONE));
|
||||
VisitForStackValue(declaration->fun());
|
||||
__ CallRuntime(Runtime::kDeclareContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareContextSlot, 4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -962,7 +962,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
__ Push(rsi); // The context is the first argument.
|
||||
__ Push(pairs);
|
||||
__ Push(Smi::FromInt(DeclareGlobalsFlags()));
|
||||
__ CallRuntime(Runtime::kDeclareGlobals, 3);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareGlobals, 3);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -970,7 +970,7 @@ void FullCodeGenerator::DeclareGlobals(Handle<FixedArray> pairs) {
|
||||
void FullCodeGenerator::DeclareModules(Handle<FixedArray> descriptions) {
|
||||
// Call the runtime to declare the modules.
|
||||
__ Push(descriptions);
|
||||
__ CallRuntime(Runtime::kDeclareModules, 1);
|
||||
__ CallRuntime(Runtime::kHiddenDeclareModules, 1);
|
||||
// Return value is ignored.
|
||||
}
|
||||
|
||||
@ -1333,7 +1333,7 @@ void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
|
||||
__ Push(pretenure
|
||||
? isolate()->factory()->true_value()
|
||||
: isolate()->factory()->false_value());
|
||||
__ CallRuntime(Runtime::kNewClosure, 3);
|
||||
__ CallRuntime(Runtime::kHiddenNewClosure, 3);
|
||||
}
|
||||
context()->Plug(rax);
|
||||
}
|
||||
@ -1458,7 +1458,7 @@ void FullCodeGenerator::EmitDynamicLookupFastCase(Variable* var,
|
||||
__ LoadRoot(rax, Heap::kUndefinedValueRootIndex);
|
||||
} else { // LET || CONST
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
}
|
||||
}
|
||||
__ jmp(done);
|
||||
@ -1535,7 +1535,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
// Throw a reference error when using an uninitialized let/const
|
||||
// binding in harmony mode.
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
} else {
|
||||
// Uninitalized const bindings outside of harmony mode are unholed.
|
||||
ASSERT(var->mode() == CONST_LEGACY);
|
||||
@ -1559,7 +1559,7 @@ void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy) {
|
||||
__ bind(&slow);
|
||||
__ Push(rsi); // Context.
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ bind(&done);
|
||||
context()->Plug(rax);
|
||||
break;
|
||||
@ -1590,7 +1590,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ Push(Smi::FromInt(expr->literal_index()));
|
||||
__ Push(expr->pattern());
|
||||
__ Push(expr->flags());
|
||||
__ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4);
|
||||
__ movp(rbx, rax);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -1602,7 +1602,7 @@ void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ Push(rbx);
|
||||
__ Push(Smi::FromInt(size));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ Pop(rbx);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -1651,7 +1651,7 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
|
||||
__ Push(Smi::FromInt(expr->literal_index()));
|
||||
__ Push(constant_properties);
|
||||
__ Push(Smi::FromInt(flags));
|
||||
__ CallRuntime(Runtime::kCreateObjectLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateObjectLiteral, 4);
|
||||
} else {
|
||||
__ movp(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
|
||||
__ movp(rax, FieldOperand(rdi, JSFunction::kLiteralsOffset));
|
||||
@ -1804,7 +1804,7 @@ void FullCodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
|
||||
__ Push(Smi::FromInt(expr->literal_index()));
|
||||
__ Push(constant_elements);
|
||||
__ Push(Smi::FromInt(flags));
|
||||
__ CallRuntime(Runtime::kCreateArrayLiteral, 4);
|
||||
__ CallRuntime(Runtime::kHiddenCreateArrayLiteral, 4);
|
||||
} else {
|
||||
ASSERT(IsFastSmiOrObjectElementsKind(constant_elements_kind) ||
|
||||
FLAG_smi_only_arrays);
|
||||
@ -2016,7 +2016,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ cmpp(rsp, rbx);
|
||||
__ j(equal, &post_runtime);
|
||||
__ Push(rax); // generator object
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ movp(context_register(),
|
||||
Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
__ bind(&post_runtime);
|
||||
@ -2085,7 +2085,7 @@ void FullCodeGenerator::VisitYield(Yield* expr) {
|
||||
__ movp(rcx, rsi);
|
||||
__ RecordWriteField(rax, JSGeneratorObject::kContextOffset, rcx, rdx,
|
||||
kDontSaveFPRegs);
|
||||
__ CallRuntime(Runtime::kSuspendJSGeneratorObject, 1);
|
||||
__ CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject, 1);
|
||||
__ movp(context_register(),
|
||||
Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
__ Pop(rax); // result
|
||||
@ -2139,7 +2139,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
Expression *value,
|
||||
JSGeneratorObject::ResumeMode resume_mode) {
|
||||
// The value stays in rax, and is ultimately read by the resumed generator, as
|
||||
// if the CallRuntime(Runtime::kSuspendJSGeneratorObject) returned it. Or it
|
||||
// if CallRuntime(Runtime::kHiddenSuspendJSGeneratorObject) returned it. Or it
|
||||
// is read to throw the value when the resumed generator is already closed.
|
||||
// rbx will hold the generator object until the activation has been resumed.
|
||||
VisitForStackValue(generator);
|
||||
@ -2220,7 +2220,7 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
__ Push(rbx);
|
||||
__ Push(result_register());
|
||||
__ Push(Smi::FromInt(resume_mode));
|
||||
__ CallRuntime(Runtime::kResumeJSGeneratorObject, 3);
|
||||
__ CallRuntime(Runtime::kHiddenResumeJSGeneratorObject, 3);
|
||||
// Not reached: the runtime call returns elsewhere.
|
||||
__ Abort(kGeneratorFailedToResume);
|
||||
|
||||
@ -2234,14 +2234,14 @@ void FullCodeGenerator::EmitGeneratorResume(Expression *generator,
|
||||
} else {
|
||||
// Throw the provided value.
|
||||
__ Push(rax);
|
||||
__ CallRuntime(Runtime::kThrow, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrow, 1);
|
||||
}
|
||||
__ jmp(&done);
|
||||
|
||||
// Throw error if we attempt to operate on a running generator.
|
||||
__ bind(&wrong_state);
|
||||
__ Push(rbx);
|
||||
__ CallRuntime(Runtime::kThrowGeneratorStateError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowGeneratorStateError, 1);
|
||||
|
||||
__ bind(&done);
|
||||
context()->Plug(result_register());
|
||||
@ -2259,7 +2259,7 @@ void FullCodeGenerator::EmitCreateIteratorResult(bool done) {
|
||||
|
||||
__ bind(&gc_required);
|
||||
__ Push(Smi::FromInt(map->instance_size()));
|
||||
__ CallRuntime(Runtime::kAllocateInNewSpace, 1);
|
||||
__ CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1);
|
||||
__ movp(context_register(),
|
||||
Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
|
||||
@ -2438,7 +2438,7 @@ void FullCodeGenerator::EmitCallStoreContextSlot(
|
||||
__ Push(rsi); // Context.
|
||||
__ Push(name);
|
||||
__ Push(Smi::FromInt(strict_mode));
|
||||
__ CallRuntime(Runtime::kStoreContextSlot, 4);
|
||||
__ CallRuntime(Runtime::kHiddenStoreContextSlot, 4);
|
||||
}
|
||||
|
||||
|
||||
@ -2457,7 +2457,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ Push(rax);
|
||||
__ Push(rsi);
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kInitializeConstContextSlot, 3);
|
||||
__ CallRuntime(Runtime::kHiddenInitializeConstContextSlot, 3);
|
||||
} else {
|
||||
ASSERT(var->IsStackLocal() || var->IsContextSlot());
|
||||
Label skip;
|
||||
@ -2481,7 +2481,7 @@ void FullCodeGenerator::EmitVariableAssignment(Variable* var,
|
||||
__ CompareRoot(rdx, Heap::kTheHoleValueRootIndex);
|
||||
__ j(not_equal, &assign, Label::kNear);
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kThrowReferenceError, 1);
|
||||
__ CallRuntime(Runtime::kHiddenThrowReferenceError, 1);
|
||||
__ bind(&assign);
|
||||
EmitStoreToStackLocalOrContextSlot(var, location);
|
||||
}
|
||||
@ -2708,7 +2708,7 @@ void FullCodeGenerator::EmitResolvePossiblyDirectEval(int arg_count) {
|
||||
__ Push(Smi::FromInt(scope()->start_position()));
|
||||
|
||||
// Do the runtime call.
|
||||
__ CallRuntime(Runtime::kResolvePossiblyDirectEval, 5);
|
||||
__ CallRuntime(Runtime::kHiddenResolvePossiblyDirectEval, 5);
|
||||
}
|
||||
|
||||
|
||||
@ -2724,8 +2724,8 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
Call::CallType call_type = expr->GetCallType(isolate());
|
||||
|
||||
if (call_type == Call::POSSIBLY_EVAL_CALL) {
|
||||
// In a call to eval, we first call %ResolvePossiblyDirectEval to
|
||||
// resolve the function we need to call and the receiver of the call.
|
||||
// In a call to eval, we first call RuntimeHidden_ResolvePossiblyDirectEval
|
||||
// to resolve the function we need to call and the receiver of the call.
|
||||
// Then we call the resolved function using the given arguments.
|
||||
ZoneList<Expression*>* args = expr->arguments();
|
||||
int arg_count = args->length();
|
||||
@ -2775,7 +2775,7 @@ void FullCodeGenerator::VisitCall(Call* expr) {
|
||||
// the object holding it (returned in rdx).
|
||||
__ Push(context_register());
|
||||
__ Push(proxy->name());
|
||||
__ CallRuntime(Runtime::kLoadContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlot, 2);
|
||||
__ Push(rax); // Function.
|
||||
__ Push(rdx); // Receiver.
|
||||
|
||||
@ -3434,7 +3434,7 @@ void FullCodeGenerator::EmitDateField(CallRuntime* expr) {
|
||||
}
|
||||
|
||||
__ bind(¬_date_object);
|
||||
__ CallRuntime(Runtime::kThrowNotDateError, 0);
|
||||
__ CallRuntime(Runtime::kHiddenThrowNotDateError, 0);
|
||||
__ bind(&done);
|
||||
context()->Plug(rax);
|
||||
}
|
||||
@ -4232,7 +4232,7 @@ void FullCodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
|
||||
// context where the variable was introduced.
|
||||
__ Push(context_register());
|
||||
__ Push(var->name());
|
||||
__ CallRuntime(Runtime::kDeleteContextSlot, 2);
|
||||
__ CallRuntime(Runtime::kHiddenDeleteContextSlot, 2);
|
||||
context()->Plug(rax);
|
||||
}
|
||||
} else {
|
||||
@ -4519,7 +4519,7 @@ void FullCodeGenerator::VisitForTypeofValue(Expression* expr) {
|
||||
__ bind(&slow);
|
||||
__ Push(rsi);
|
||||
__ Push(proxy->name());
|
||||
__ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
|
||||
__ CallRuntime(Runtime::kHiddenLoadContextSlotNoReferenceError, 2);
|
||||
PrepareForBailout(expr, TOS_REG);
|
||||
__ bind(&done);
|
||||
|
||||
|
@ -223,7 +223,7 @@ bool LCodeGen::GeneratePrologue() {
|
||||
__ CallStub(&stub);
|
||||
} else {
|
||||
__ Push(rdi);
|
||||
__ CallRuntime(Runtime::kNewFunctionContext, 1);
|
||||
__ CallRuntime(Runtime::kHiddenNewFunctionContext, 1);
|
||||
}
|
||||
RecordSafepoint(Safepoint::kNoLazyDeopt);
|
||||
// Context is returned in rax. It replaces the context passed to us.
|
||||
@ -3330,7 +3330,7 @@ void LCodeGen::DoDeclareGlobals(LDeclareGlobals* instr) {
|
||||
__ Push(rsi); // The context is the first argument.
|
||||
__ Push(instr->hydrogen()->pairs());
|
||||
__ Push(Smi::FromInt(instr->hydrogen()->flags()));
|
||||
CallRuntime(Runtime::kDeclareGlobals, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenDeclareGlobals, 3, instr);
|
||||
}
|
||||
|
||||
|
||||
@ -3462,7 +3462,7 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
|
||||
// Slow case: Call the runtime system to do the number allocation.
|
||||
__ bind(&slow);
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateHeapNumber, 0, instr, instr->context());
|
||||
Runtime::kHiddenAllocateHeapNumber, 0, instr, instr->context());
|
||||
// Set the pointer to the new heap number in tmp.
|
||||
if (!tmp.is(rax)) __ movp(tmp, rax);
|
||||
// Restore input_reg after call to runtime.
|
||||
@ -4548,11 +4548,11 @@ void LCodeGen::DoDeferredNumberTagU(LNumberTagU* instr) {
|
||||
|
||||
// NumberTagU uses the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ StoreToSafepointRegisterSlot(reg, rax);
|
||||
@ -4604,11 +4604,11 @@ void LCodeGen::DoDeferredNumberTagD(LNumberTagD* instr) {
|
||||
PushSafepointRegistersScope scope(this);
|
||||
// NumberTagD uses the context from the frame, rather than
|
||||
// the environment's HContext or HInlinedContext value.
|
||||
// They only call Runtime::kAllocateHeapNumber.
|
||||
// They only call Runtime::kHiddenAllocateHeapNumber.
|
||||
// The corresponding HChange instructions are added in a phase that does
|
||||
// not have easy access to the local context.
|
||||
__ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenAllocateHeapNumber);
|
||||
RecordSafepointWithRegisters(
|
||||
instr->pointer_map(), 0, Safepoint::kNoLazyDeopt);
|
||||
__ movp(kScratchRegister, rax);
|
||||
@ -5160,7 +5160,7 @@ void LCodeGen::DoDeferredAllocate(LAllocate* instr) {
|
||||
__ Push(Smi::FromInt(flags));
|
||||
|
||||
CallRuntimeFromDeferred(
|
||||
Runtime::kAllocateInTargetSpace, 2, instr, instr->context());
|
||||
Runtime::kHiddenAllocateInTargetSpace, 2, instr, instr->context());
|
||||
__ StoreToSafepointRegisterSlot(result, rax);
|
||||
}
|
||||
|
||||
@ -5192,7 +5192,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ Push(Smi::FromInt(instr->hydrogen()->literal_index()));
|
||||
__ Push(instr->hydrogen()->pattern());
|
||||
__ Push(instr->hydrogen()->flags());
|
||||
CallRuntime(Runtime::kMaterializeRegExpLiteral, 4, instr);
|
||||
CallRuntime(Runtime::kHiddenMaterializeRegExpLiteral, 4, instr);
|
||||
__ movp(rbx, rax);
|
||||
|
||||
__ bind(&materialized);
|
||||
@ -5204,7 +5204,7 @@ void LCodeGen::DoRegExpLiteral(LRegExpLiteral* instr) {
|
||||
__ bind(&runtime_allocate);
|
||||
__ Push(rbx);
|
||||
__ Push(Smi::FromInt(size));
|
||||
CallRuntime(Runtime::kAllocateInNewSpace, 1, instr);
|
||||
CallRuntime(Runtime::kHiddenAllocateInNewSpace, 1, instr);
|
||||
__ Pop(rbx);
|
||||
|
||||
__ bind(&allocated);
|
||||
@ -5238,7 +5238,7 @@ void LCodeGen::DoFunctionLiteral(LFunctionLiteral* instr) {
|
||||
__ Push(instr->hydrogen()->shared_info());
|
||||
__ PushRoot(pretenure ? Heap::kTrueValueRootIndex :
|
||||
Heap::kFalseValueRootIndex);
|
||||
CallRuntime(Runtime::kNewClosure, 3, instr);
|
||||
CallRuntime(Runtime::kHiddenNewClosure, 3, instr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5433,7 +5433,7 @@ void LCodeGen::DoDummyUse(LDummyUse* instr) {
|
||||
void LCodeGen::DoDeferredStackCheck(LStackCheck* instr) {
|
||||
PushSafepointRegistersScope scope(this);
|
||||
__ movp(rsi, Operand(rbp, StandardFrameConstants::kContextOffset));
|
||||
__ CallRuntimeSaveDoubles(Runtime::kStackGuard);
|
||||
__ CallRuntimeSaveDoubles(Runtime::kHiddenStackGuard);
|
||||
RecordSafepointWithLazyDeopt(instr, RECORD_SAFEPOINT_WITH_REGISTERS, 0);
|
||||
ASSERT(instr->HasEnvironment());
|
||||
LEnvironment* env = instr->environment();
|
||||
|
@ -800,7 +800,7 @@ void MacroAssembler::CallApiFunctionAndReturn(
|
||||
bind(&promote_scheduled_exception);
|
||||
{
|
||||
FrameScope frame(this, StackFrame::INTERNAL);
|
||||
CallRuntime(Runtime::kPromoteScheduledException, 0);
|
||||
CallRuntime(Runtime::kHiddenPromoteScheduledException, 0);
|
||||
}
|
||||
jmp(&exception_handled);
|
||||
|
||||
@ -3307,9 +3307,9 @@ void MacroAssembler::Throw(BailoutReason reason) {
|
||||
// We don't actually want to generate a pile of code for this, so just
|
||||
// claim there is a stack frame, without generating one.
|
||||
FrameScope scope(this, StackFrame::NONE);
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
} else {
|
||||
CallRuntime(Runtime::kThrowMessage, 1);
|
||||
CallRuntime(Runtime::kHiddenThrowMessage, 1);
|
||||
}
|
||||
// Control will not return here.
|
||||
int3();
|
||||
|
@ -116,7 +116,6 @@ function testArgumentTypes(name, argc) {
|
||||
|
||||
var knownProblems = {
|
||||
"Abort": true,
|
||||
"ThrowMessage": true,
|
||||
|
||||
// Avoid calling the concat operation, because weird lengths
|
||||
// may lead to out-of-memory. Ditto for StringBuilderJoin.
|
||||
@ -141,32 +140,8 @@ var knownProblems = {
|
||||
"DisableAccessChecks": true,
|
||||
"EnableAccessChecks": true,
|
||||
|
||||
// These functions should not be callable as runtime functions.
|
||||
"NewFunctionContext": true,
|
||||
"NewArgumentsFast": true,
|
||||
"NewStrictArgumentsFast": true,
|
||||
"PushWithContext": true,
|
||||
"PushCatchContext": true,
|
||||
"PushBlockContext": true,
|
||||
"PushModuleContext": true,
|
||||
"CompileUnoptimized": true,
|
||||
"CompileOptimized": true,
|
||||
"CompileOptimizedConcurrent": true,
|
||||
"NotifyDeoptimized": true,
|
||||
"NotifyStubFailure": true,
|
||||
"NotifyOSR": true,
|
||||
"CreateObjectLiteralBoilerplate": true,
|
||||
"CloneLiteralBoilerplate": true,
|
||||
"CloneShallowLiteralBoilerplate": true,
|
||||
"CreateArrayLiteralBoilerplate": true,
|
||||
// IS_VAR is special.
|
||||
"IS_VAR": true,
|
||||
"ResolvePossiblyDirectEval": true,
|
||||
"DeclareGlobals": true,
|
||||
"ArrayConstructor": true,
|
||||
"InternalArrayConstructor": true,
|
||||
|
||||
"PromoteScheduledException": true,
|
||||
"DeleteHandleScopeExtensions": true,
|
||||
|
||||
// Vararg with minimum number > 0.
|
||||
"Call": true,
|
||||
|
@ -116,7 +116,6 @@ function testArgumentTypes(name, argc) {
|
||||
|
||||
var knownProblems = {
|
||||
"Abort": true,
|
||||
"ThrowMessage": true,
|
||||
|
||||
// Avoid calling the concat operation, because weird lengths
|
||||
// may lead to out-of-memory. Ditto for StringBuilderJoin.
|
||||
@ -141,33 +140,8 @@ var knownProblems = {
|
||||
"DisableAccessChecks": true,
|
||||
"EnableAccessChecks": true,
|
||||
|
||||
// These functions should not be callable as runtime functions.
|
||||
"NewFunctionContext": true,
|
||||
"NewArgumentsFast": true,
|
||||
"NewStrictArgumentsFast": true,
|
||||
"PushWithContext": true,
|
||||
"PushCatchContext": true,
|
||||
"PushBlockContext": true,
|
||||
"PushModuleContext": true,
|
||||
"CompileUnoptimized": true,
|
||||
"CompileOptimized": true,
|
||||
"CompileOptimizedConcurrent": true,
|
||||
"NotifyDeoptimized": true,
|
||||
"NotifyStubFailure": true,
|
||||
"NotifyOSR": true,
|
||||
"CreateObjectLiteralBoilerplate": true,
|
||||
"CloneLiteralBoilerplate": true,
|
||||
"CloneShallowLiteralBoilerplate": true,
|
||||
"CreateArrayLiteralBoilerplate": true,
|
||||
// IS_VAR is special.
|
||||
"IS_VAR": true,
|
||||
"ResolvePossiblyDirectEval": true,
|
||||
"DeclareGlobals": true,
|
||||
"ArrayConstructor": true,
|
||||
"InternalArrayConstructor": true,
|
||||
"SetAccessorProperty": true,
|
||||
|
||||
"PromoteScheduledException": true,
|
||||
"DeleteHandleScopeExtensions": true,
|
||||
|
||||
// Vararg with minimum number > 0.
|
||||
"Call": true,
|
||||
|
@ -116,7 +116,6 @@ function testArgumentTypes(name, argc) {
|
||||
|
||||
var knownProblems = {
|
||||
"Abort": true,
|
||||
"ThrowMessage": true,
|
||||
|
||||
// Avoid calling the concat operation, because weird lengths
|
||||
// may lead to out-of-memory. Ditto for StringBuilderJoin.
|
||||
@ -141,32 +140,8 @@ var knownProblems = {
|
||||
"DisableAccessChecks": true,
|
||||
"EnableAccessChecks": true,
|
||||
|
||||
// These functions should not be callable as runtime functions.
|
||||
"NewFunctionContext": true,
|
||||
"NewArgumentsFast": true,
|
||||
"NewStrictArgumentsFast": true,
|
||||
"PushWithContext": true,
|
||||
"PushCatchContext": true,
|
||||
"PushBlockContext": true,
|
||||
"PushModuleContext": true,
|
||||
"CompileUnoptimized": true,
|
||||
"CompileOptimized": true,
|
||||
"CompileOptimizedConcurrent": true,
|
||||
"NotifyDeoptimized": true,
|
||||
"NotifyStubFailure": true,
|
||||
"NotifyOSR": true,
|
||||
"CreateObjectLiteralBoilerplate": true,
|
||||
"CloneLiteralBoilerplate": true,
|
||||
"CloneShallowLiteralBoilerplate": true,
|
||||
"CreateArrayLiteralBoilerplate": true,
|
||||
// IS_VAR is special.
|
||||
"IS_VAR": true,
|
||||
"ResolvePossiblyDirectEval": true,
|
||||
"DeclareGlobals": true,
|
||||
"ArrayConstructor": true,
|
||||
"InternalArrayConstructor": true,
|
||||
|
||||
"PromoteScheduledException": true,
|
||||
"DeleteHandleScopeExtensions": true,
|
||||
|
||||
// Vararg with minimum number > 0.
|
||||
"Call": true,
|
||||
@ -212,7 +187,7 @@ var knownProblems = {
|
||||
"_GeneratorThrow": true,
|
||||
|
||||
// Only applicable to DataViews.
|
||||
"_DataViewInitialize":true,
|
||||
"_DataViewInitialize": true,
|
||||
};
|
||||
|
||||
var currentlyUncallable = {
|
||||
|
@ -116,7 +116,6 @@ function testArgumentTypes(name, argc) {
|
||||
|
||||
var knownProblems = {
|
||||
"Abort": true,
|
||||
"ThrowMessage": true,
|
||||
|
||||
// Avoid calling the concat operation, because weird lengths
|
||||
// may lead to out-of-memory. Ditto for StringBuilderJoin.
|
||||
@ -141,32 +140,8 @@ var knownProblems = {
|
||||
"DisableAccessChecks": true,
|
||||
"EnableAccessChecks": true,
|
||||
|
||||
// These functions should not be callable as runtime functions.
|
||||
"NewFunctionContext": true,
|
||||
"NewArgumentsFast": true,
|
||||
"NewStrictArgumentsFast": true,
|
||||
"PushWithContext": true,
|
||||
"PushCatchContext": true,
|
||||
"PushBlockContext": true,
|
||||
"PushModuleContext": true,
|
||||
"CompileUnoptimized": true,
|
||||
"CompileOptimized": true,
|
||||
"CompileOptimizedConcurrent": true,
|
||||
"NotifyDeoptimized": true,
|
||||
"NotifyStubFailure": true,
|
||||
"NotifyOSR": true,
|
||||
"CreateObjectLiteralBoilerplate": true,
|
||||
"CloneLiteralBoilerplate": true,
|
||||
"CloneShallowLiteralBoilerplate": true,
|
||||
"CreateArrayLiteralBoilerplate": true,
|
||||
// IS_VAR is special.
|
||||
"IS_VAR": true,
|
||||
"ResolvePossiblyDirectEval": true,
|
||||
"DeclareGlobals": true,
|
||||
"ArrayConstructor": true,
|
||||
"InternalArrayConstructor": true,
|
||||
|
||||
"PromoteScheduledException": true,
|
||||
"DeleteHandleScopeExtensions": true,
|
||||
|
||||
// Vararg with minimum number > 0.
|
||||
"Call": true,
|
||||
|
Loading…
Reference in New Issue
Block a user