| Index: src/code-stubs.cc
|
| diff --git a/src/code-stubs.cc b/src/code-stubs.cc
|
| index 2f99e15d0d1606499bae7d1fa5f0a566494c8103..a79c25a0bb9cb60e5faf4a06015074faf88e4595 100644
|
| --- a/src/code-stubs.cc
|
| +++ b/src/code-stubs.cc
|
| @@ -2601,7 +2601,7 @@ void ToObjectStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| Node* context = assembler->Parameter(Descriptor::kContext);
|
|
|
| Variable constructor_function_index_var(assembler,
|
| - MachineRepresentation::kWord32);
|
| + MachineType::PointerRepresentation());
|
|
|
| assembler->Branch(assembler->WordIsSmi(object), &if_number, &if_notsmi);
|
|
|
| @@ -2618,26 +2618,25 @@ void ToObjectStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| instance_type, assembler->Int32Constant(FIRST_JS_RECEIVER_TYPE)),
|
| &if_jsreceiver);
|
|
|
| - Node* constructor_function_index = assembler->LoadObjectField(
|
| - map, Map::kInObjectPropertiesOrConstructorFunctionIndexOffset,
|
| - MachineType::Uint8());
|
| - assembler->GotoIf(
|
| - assembler->Word32Equal(
|
| - constructor_function_index,
|
| - assembler->Int32Constant(Map::kNoConstructorFunctionIndex)),
|
| - &if_noconstructor);
|
| + Node* constructor_function_index =
|
| + assembler->LoadMapConstructorFunctionIndex(map);
|
| + assembler->GotoIf(assembler->WordEqual(constructor_function_index,
|
| + assembler->IntPtrConstant(
|
| + Map::kNoConstructorFunctionIndex)),
|
| + &if_noconstructor);
|
| constructor_function_index_var.Bind(constructor_function_index);
|
| assembler->Goto(&if_wrapjsvalue);
|
|
|
| assembler->Bind(&if_number);
|
| constructor_function_index_var.Bind(
|
| - assembler->Int32Constant(Context::NUMBER_FUNCTION_INDEX));
|
| + assembler->IntPtrConstant(Context::NUMBER_FUNCTION_INDEX));
|
| assembler->Goto(&if_wrapjsvalue);
|
|
|
| assembler->Bind(&if_wrapjsvalue);
|
| Node* native_context = assembler->LoadNativeContext(context);
|
| Node* constructor = assembler->LoadFixedArrayElement(
|
| - native_context, constructor_function_index_var.value());
|
| + native_context, constructor_function_index_var.value(), 0,
|
| + CodeStubAssembler::INTPTR_PARAMETERS);
|
| Node* initial_map = assembler->LoadObjectField(
|
| constructor, JSFunction::kPrototypeOrInitialMapOffset);
|
| Node* js_value = assembler->Allocate(JSValue::kSize);
|
| @@ -4427,9 +4426,10 @@ void LoadApiGetterStub::GenerateAssembly(CodeStubAssembler* assembler) const {
|
| Node* holder = receiver;
|
| Node* map = assembler->LoadMap(receiver);
|
| Node* descriptors = assembler->LoadMapDescriptors(map);
|
| - Node* offset =
|
| - assembler->Int32Constant(DescriptorArray::ToValueIndex(index()));
|
| - Node* callback = assembler->LoadFixedArrayElement(descriptors, offset);
|
| + Node* value_index =
|
| + assembler->IntPtrConstant(DescriptorArray::ToValueIndex(index()));
|
| + Node* callback = assembler->LoadFixedArrayElement(
|
| + descriptors, value_index, 0, CodeStubAssembler::INTPTR_PARAMETERS);
|
| assembler->TailCallStub(CodeFactory::ApiGetter(isolate()), context, receiver,
|
| holder, callback);
|
| }
|
| @@ -5193,7 +5193,7 @@ compiler::Node* FastNewClosureStub::Generate(CodeStubAssembler* assembler,
|
| Label if_normal(assembler), if_generator(assembler), if_async(assembler),
|
| if_class_constructor(assembler), if_function_without_prototype(assembler),
|
| load_map(assembler);
|
| - Variable map_index(assembler, MachineRepresentation::kTagged);
|
| + Variable map_index(assembler, MachineType::PointerRepresentation());
|
|
|
| Node* is_not_normal = assembler->Word32And(
|
| compiler_hints,
|
| @@ -5228,8 +5228,9 @@ compiler::Node* FastNewClosureStub::Generate(CodeStubAssembler* assembler,
|
| assembler->Bind(&if_normal);
|
| {
|
| map_index.Bind(assembler->Select(
|
| - is_strict, assembler->Int32Constant(Context::STRICT_FUNCTION_MAP_INDEX),
|
| - assembler->Int32Constant(Context::SLOPPY_FUNCTION_MAP_INDEX)));
|
| + is_strict,
|
| + assembler->IntPtrConstant(Context::STRICT_FUNCTION_MAP_INDEX),
|
| + assembler->IntPtrConstant(Context::SLOPPY_FUNCTION_MAP_INDEX)));
|
| assembler->Goto(&load_map);
|
| }
|
|
|
| @@ -5237,8 +5238,8 @@ compiler::Node* FastNewClosureStub::Generate(CodeStubAssembler* assembler,
|
| {
|
| map_index.Bind(assembler->Select(
|
| is_strict,
|
| - assembler->Int32Constant(Context::STRICT_GENERATOR_FUNCTION_MAP_INDEX),
|
| - assembler->Int32Constant(
|
| + assembler->IntPtrConstant(Context::STRICT_GENERATOR_FUNCTION_MAP_INDEX),
|
| + assembler->IntPtrConstant(
|
| Context::SLOPPY_GENERATOR_FUNCTION_MAP_INDEX)));
|
| assembler->Goto(&load_map);
|
| }
|
| @@ -5247,21 +5248,21 @@ compiler::Node* FastNewClosureStub::Generate(CodeStubAssembler* assembler,
|
| {
|
| map_index.Bind(assembler->Select(
|
| is_strict,
|
| - assembler->Int32Constant(Context::STRICT_ASYNC_FUNCTION_MAP_INDEX),
|
| - assembler->Int32Constant(Context::SLOPPY_ASYNC_FUNCTION_MAP_INDEX)));
|
| + assembler->IntPtrConstant(Context::STRICT_ASYNC_FUNCTION_MAP_INDEX),
|
| + assembler->IntPtrConstant(Context::SLOPPY_ASYNC_FUNCTION_MAP_INDEX)));
|
| assembler->Goto(&load_map);
|
| }
|
|
|
| assembler->Bind(&if_class_constructor);
|
| {
|
| map_index.Bind(
|
| - assembler->Int32Constant(Context::STRICT_FUNCTION_MAP_INDEX));
|
| + assembler->IntPtrConstant(Context::STRICT_FUNCTION_MAP_INDEX));
|
| assembler->Goto(&load_map);
|
| }
|
|
|
| assembler->Bind(&if_function_without_prototype);
|
| {
|
| - map_index.Bind(assembler->Int32Constant(
|
| + map_index.Bind(assembler->IntPtrConstant(
|
| Context::STRICT_FUNCTION_WITHOUT_PROTOTYPE_MAP_INDEX));
|
| assembler->Goto(&load_map);
|
| }
|
| @@ -5272,7 +5273,8 @@ compiler::Node* FastNewClosureStub::Generate(CodeStubAssembler* assembler,
|
| // as the map of the allocated object.
|
| Node* native_context = assembler->LoadNativeContext(context);
|
| Node* map_slot_value =
|
| - assembler->LoadFixedArrayElement(native_context, map_index.value());
|
| + assembler->LoadFixedArrayElement(native_context, map_index.value(), 0,
|
| + CodeStubAssembler::INTPTR_PARAMETERS);
|
| assembler->StoreMapNoWriteBarrier(result, map_slot_value);
|
|
|
| // Initialize the rest of the function.
|
|
|