Lines Matching refs:HValue
50 virtual HValue* BuildCodeStub() = 0;
66 HValue* GetArgumentsLength() { in GetArgumentsLength()
76 HLoadNamedField* BuildLoadNamedField(HValue* object, FieldIndex index);
77 void BuildStoreNamedField(HValue* object, HValue* value, FieldIndex index,
81 HValue* BuildPushElement(HValue* object, HValue* argc,
82 HValue* argument_elements, ElementsKind kind);
84 HValue* UnmappedCase(HValue* elements, HValue* key, HValue* value);
85 HValue* EmitKeyedSloppyArguments(HValue* receiver, HValue* key,
86 HValue* value);
88 HValue* BuildToString(HValue* input, bool convert);
89 HValue* BuildToPrimitive(HValue* input, HValue* input_map);
93 HValue* arguments_length_;
156 HValue* return_value = BuildCodeStub(); in BuildGraph()
166 stack_pop_count->ClearFlag(HValue::kCanOverflow); in BuildGraph()
191 virtual HValue* BuildCodeStub() { in BuildCodeStub()
199 virtual HValue* BuildCodeInitializedStub() { in BuildCodeInitializedStub()
204 virtual HValue* BuildCodeUninitializedStub() { in BuildCodeUninitializedStub()
206 HValue* undefined = graph()->GetConstantUndefined(); in BuildCodeUninitializedStub()
208 builder.IfNot<HCompareObjectEqAndBranch, HValue*>(undefined, undefined); in BuildCodeUninitializedStub()
286 HValue* CodeStubGraphBuilder<NumberToStringStub>::BuildCodeStub() { in BuildCodeStub()
288 HValue* number = GetParameter(NumberToStringStub::kNumber); in BuildCodeStub()
300 HValue* CodeStubGraphBuilder<TypeofStub>::BuildCodeStub() { in BuildCodeStub()
303 HValue* object = GetParameter(TypeofStub::kObject); in BuildCodeStub()
306 HValue* smi_check = is_smi.If<HIsSmiAndBranch>(object); in BuildCodeStub()
317 HValue* map = AddLoadMap(object, smi_check); in BuildCodeStub()
318 HValue* instance_type = Add<HLoadNamedField>( in BuildCodeStub()
345 HValue* bit_field = Add<HLoadNamedField>( in BuildCodeStub()
347 HValue* bit_field_masked = AddUncasted<HBitwise>( in BuildCodeStub()
407 HValue* CodeStubGraphBuilder<FastCloneRegExpStub>::BuildCodeStub() { in BuildCodeStub()
408 HValue* closure = GetParameter(0); in BuildCodeStub()
409 HValue* literal_index = GetParameter(1); in BuildCodeStub()
415 HValue* literals_array = Add<HLoadNamedField>( in BuildCodeStub()
428 HValue* result = in BuildCodeStub()
463 HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() { in BuildCodeStub()
465 HValue* undefined = graph()->GetConstantUndefined(); in BuildCodeStub()
467 HValue* closure = GetParameter(0); in BuildCodeStub()
468 HValue* literal_index = GetParameter(1); in BuildCodeStub()
479 HValue* literals_array = Add<HLoadNamedField>( in BuildCodeStub()
486 checker.IfNot<HCompareObjectEqAndBranch, HValue*>(allocation_site, in BuildCodeStub()
494 HValue* elements = AddLoadElements(boilerplate); in BuildCodeStub()
495 HValue* capacity = AddLoadFixedArrayLength(elements); in BuildCodeStub()
542 HValue* CodeStubGraphBuilder<CreateAllocationSiteStub>::BuildCodeStub() { in BuildCodeStub()
547 HValue* size = Add<HConstant>(AllocationSite::kSize); in BuildCodeStub()
557 HValue* initial_elements_kind = Add<HConstant>(GetInitialFastElementsKind()); in BuildCodeStub()
591 HValue* site_list = Add<HConstant>( in BuildCodeStub()
593 HValue* site = Add<HLoadNamedField>(site_list, nullptr, in BuildCodeStub()
621 HValue* CodeStubGraphBuilder<CreateWeakCellStub>::BuildCodeStub() { in BuildCodeStub()
626 HValue* size = Add<HConstant>(WeakCell::kSize); in BuildCodeStub()
652 HValue* CodeStubGraphBuilder<LoadScriptContextFieldStub>::BuildCodeStub() { in BuildCodeStub()
656 HValue* script_context = BuildGetScriptContext(context_index); in BuildCodeStub()
668 HValue* CodeStubGraphBuilder<StoreScriptContextFieldStub>::BuildCodeStub() { in BuildCodeStub()
672 HValue* script_context = BuildGetScriptContext(context_index); in BuildCodeStub()
684 HValue* CodeStubGraphBuilderBase::BuildPushElement(HValue* object, HValue* argc, in BuildPushElement()
685 HValue* argument_elements, in BuildPushElement()
690 HValue* start = graph()->GetConstant0(); in BuildPushElement()
691 HValue* key = builder.BeginBody(start, argc, Token::LT); in BuildPushElement()
708 HValue* length = Add<HLoadNamedField>(object, nullptr, in BuildPushElement()
710 HValue* new_length = AddUncasted<HAdd>(length, argc); in BuildPushElement()
711 HValue* max_key = AddUncasted<HSub>(new_length, graph()->GetConstant1()); in BuildPushElement()
713 HValue* elements = Add<HLoadNamedField>(object, nullptr, in BuildPushElement()
719 HValue* start = graph()->GetConstant0(); in BuildPushElement()
720 HValue* key = builder.BeginBody(start, argc, Token::LT); in BuildPushElement()
722 HValue* argument = Add<HAccessArgumentsAt>(argument_elements, argc, key); in BuildPushElement()
723 HValue* index = AddUncasted<HAdd>(key, length); in BuildPushElement()
731 HValue* CodeStubGraphBuilder<FastArrayPushStub>::BuildCodeStub() { in BuildCodeStub()
733 HValue* argc = GetArgumentsLength(); in BuildCodeStub()
738 HValue* map = Add<HLoadNamedField>(object, nullptr, HObjectAccess::ForMap()); in BuildCodeStub()
744 HValue* bit_field2 = in BuildCodeStub()
746 HValue* mask = in BuildCodeStub()
749 HValue* bits = AddUncasted<HBitwise>(Token::BIT_AND, bit_field2, mask); in BuildCodeStub()
760 HValue* bit_field3 = in BuildCodeStub()
762 HValue* mask = Add<HConstant>(static_cast<int>(Map::DictionaryMap::kMask)); in BuildCodeStub()
763 HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask); in BuildCodeStub()
774 HValue* descriptors = in BuildCodeStub()
776 HValue* details = Add<HLoadKeyed>( in BuildCodeStub()
779 HValue* mask = in BuildCodeStub()
781 HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, details, mask); in BuildCodeStub()
788 HValue* null = Add<HLoadRoot>(Heap::kNullValueRootIndex); in BuildCodeStub()
789 HValue* empty = Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex); in BuildCodeStub()
794 HValue* parent_map = environment()->Pop(); in BuildCodeStub()
795 HValue* prototype = Add<HLoadNamedField>(parent_map, nullptr, in BuildCodeStub()
804 HValue* prototype_map = in BuildCodeStub()
806 HValue* instance_type = Add<HLoadNamedField>( in BuildCodeStub()
815 HValue* elements = Add<HLoadNamedField>( in BuildCodeStub()
826 HValue* bit_field2 = in BuildCodeStub()
828 HValue* kind = BuildDecodeField<Map::ElementsKindBits>(bit_field2); in BuildCodeStub()
843 HValue* new_length = BuildPushElement(object, argc, argument_elements, in BuildCodeStub()
854 HValue* new_length = BuildPushElement(object, argc, argument_elements, in BuildCodeStub()
865 HValue* new_length = BuildPushElement(object, argc, argument_elements, in BuildCodeStub()
882 HValue* CodeStubGraphBuilder<FastFunctionBindStub>::BuildCodeStub() { in BuildCodeStub()
884 HValue* argc = GetArgumentsLength(); in BuildCodeStub()
889 HValue* map = Add<HLoadNamedField>(object, nullptr, HObjectAccess::ForMap()); in BuildCodeStub()
895 HValue* bit_field3 = in BuildCodeStub()
897 HValue* mask = Add<HConstant>(static_cast<int>(Map::DictionaryMap::kMask)); in BuildCodeStub()
898 HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask); in BuildCodeStub()
909 HValue* descriptors = in BuildCodeStub()
912 HValue* descriptors_length = Add<HLoadNamedField>( in BuildCodeStub()
922 HValue* maybe_length = Add<HLoadKeyed>( in BuildCodeStub()
929 HValue* maybe_length_accessor = Add<HLoadKeyed>( in BuildCodeStub()
939 HValue* maybe_name = Add<HLoadKeyed>( in BuildCodeStub()
946 HValue* maybe_name_accessor = Add<HLoadKeyed>( in BuildCodeStub()
957 HValue* bit_field = in BuildCodeStub()
959 HValue* mask = Add<HConstant>(static_cast<int>(1 << Map::kIsConstructor)); in BuildCodeStub()
960 HValue* bits = AddUncasted<HBitwise>(Token::BIT_AND, bit_field, mask); in BuildCodeStub()
962 HValue* native_context = BuildGetNativeContext(); in BuildCodeStub()
967 HValue* map = Add<HLoadNamedField>( in BuildCodeStub()
975 HValue* map = Add<HLoadNamedField>( in BuildCodeStub()
983 HValue* bound_function_map = environment()->Pop(); in BuildCodeStub()
987 HValue* prototype = in BuildCodeStub()
989 HValue* expected_prototype = Add<HLoadNamedField>( in BuildCodeStub()
1006 HValue* elements_length = AddUncasted<HSub>(argc, graph()->GetConstant1()); in BuildCodeStub()
1007 HValue* elements = in BuildCodeStub()
1011 HValue* start = graph()->GetConstant1(); in BuildCodeStub()
1012 HValue* key = builder.BeginBody(start, argc, Token::LT); in BuildCodeStub()
1014 HValue* argument = Add<HAccessArgumentsAt>(argument_elements, argc, key); in BuildCodeStub()
1015 HValue* index = AddUncasted<HSub>(key, graph()->GetConstant1()); in BuildCodeStub()
1023 HValue* elements = environment()->Pop(); in BuildCodeStub()
1037 HValue* receiver = environment()->Pop(); in BuildCodeStub()
1040 HValue* size = Add<HConstant>(JSBoundFunction::kSize); in BuildCodeStub()
1041 HValue* bound_function = in BuildCodeStub()
1046 HValue* empty_fixed_array = Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex); in BuildCodeStub()
1067 HValue* CodeStubGraphBuilder<GrowArrayElementsStub>::BuildCodeStub() { in BuildCodeStub()
1073 HValue* object = GetParameter(GrowArrayElementsDescriptor::kObjectIndex); in BuildCodeStub()
1074 HValue* key = GetParameter(GrowArrayElementsDescriptor::kKeyIndex); in BuildCodeStub()
1076 HValue* elements = AddLoadElements(object); in BuildCodeStub()
1077 HValue* current_capacity = Add<HLoadNamedField>( in BuildCodeStub()
1080 HValue* length = in BuildCodeStub()
1082 ? Add<HLoadNamedField>(object, static_cast<HValue*>(NULL), in BuildCodeStub()
1097 HValue* CodeStubGraphBuilder<LoadFastElementStub>::BuildCodeStub() { in BuildCodeStub()
1117 HValue* object, FieldIndex index) { in BuildLoadNamedField()
1138 HValue* CodeStubGraphBuilder<LoadFieldStub>::BuildCodeStub() { in BuildCodeStub()
1149 HValue* CodeStubGraphBuilder<LoadConstantStub>::BuildCodeStub() { in BuildCodeStub()
1150 HValue* map = AddLoadMap(GetParameter(0), NULL); in BuildCodeStub()
1153 HValue* descriptors = Add<HLoadNamedField>(map, nullptr, descriptors_access); in BuildCodeStub()
1163 HValue* CodeStubGraphBuilderBase::UnmappedCase(HValue* elements, HValue* key, in UnmappedCase()
1164 HValue* value) { in UnmappedCase()
1165 HValue* result = NULL; in UnmappedCase()
1170 HValue* backing_store_length = Add<HLoadNamedField>( in UnmappedCase()
1190 HValue* CodeStubGraphBuilderBase::EmitKeyedSloppyArguments(HValue* receiver, in EmitKeyedSloppyArguments()
1191 HValue* key, in EmitKeyedSloppyArguments()
1192 HValue* value) { in EmitKeyedSloppyArguments()
1228 HValue* constant_two = Add<HConstant>(2); in EmitKeyedSloppyArguments()
1229 HValue* elements = AddLoadElements(receiver, nullptr); in EmitKeyedSloppyArguments()
1230 HValue* elements_length = Add<HLoadNamedField>( in EmitKeyedSloppyArguments()
1232 HValue* adjusted_length = AddUncasted<HSub>(elements_length, constant_two); in EmitKeyedSloppyArguments()
1237 HValue* index = AddUncasted<HAdd>(key, constant_two); in EmitKeyedSloppyArguments()
1250 HValue* the_context = Add<HLoadKeyed>(elements, graph()->GetConstant0(), in EmitKeyedSloppyArguments()
1254 HValue* result = in EmitKeyedSloppyArguments()
1267 HValue* result = UnmappedCase(elements, key, value); in EmitKeyedSloppyArguments()
1274 HValue* result = UnmappedCase(elements, key, value); in EmitKeyedSloppyArguments()
1284 HValue* CodeStubGraphBuilder<KeyedLoadSloppyArgumentsStub>::BuildCodeStub() { in BuildCodeStub()
1285 HValue* receiver = GetParameter(LoadDescriptor::kReceiverIndex); in BuildCodeStub()
1286 HValue* key = GetParameter(LoadDescriptor::kNameIndex); in BuildCodeStub()
1298 HValue* CodeStubGraphBuilder<KeyedStoreSloppyArgumentsStub>::BuildCodeStub() { in BuildCodeStub()
1299 HValue* receiver = GetParameter(StoreDescriptor::kReceiverIndex); in BuildCodeStub()
1300 HValue* key = GetParameter(StoreDescriptor::kNameIndex); in BuildCodeStub()
1301 HValue* value = GetParameter(StoreDescriptor::kValueIndex); in BuildCodeStub()
1313 HValue* object, HValue* value, FieldIndex index, in BuildStoreNamedField()
1358 HValue* CodeStubGraphBuilder<StoreFieldStub>::BuildCodeStub() { in BuildCodeStub()
1369 HValue* CodeStubGraphBuilder<StoreTransitionStub>::BuildCodeStub() { in BuildCodeStub()
1370 HValue* object = GetParameter(StoreTransitionHelper::ReceiverIndex()); in BuildCodeStub()
1371 HValue* value = GetParameter(StoreTransitionHelper::ValueIndex()); in BuildCodeStub()
1387 HValue* properties = Add<HLoadNamedField>( in BuildCodeStub()
1389 HValue* length = AddLoadFixedArrayLength(properties); in BuildCodeStub()
1390 HValue* delta = in BuildCodeStub()
1392 HValue* new_capacity = AddUncasted<HAdd>(length, delta); in BuildCodeStub()
1402 HValue* new_properties = in BuildCodeStub()
1433 HValue* CodeStubGraphBuilder<StoreFastElementStub>::BuildCodeStub() { in BuildCodeStub()
1451 HValue* CodeStubGraphBuilder<TransitionElementsKindStub>::BuildCodeStub() { in BuildCodeStub()
1454 HValue* const object = GetParameter(0); in BuildCodeStub()
1455 HValue* const map = GetParameter(1); in BuildCodeStub()
1496 HValue* length = Pop(); in BuildCodeStub()
1515 HValue* CodeStubGraphBuilder<BinaryOpICStub>::BuildCodeInitializedStub() { in BuildCodeInitializedStub()
1518 HValue* left = GetParameter(BinaryOpICStub::kLeft); in BuildCodeInitializedStub()
1519 HValue* right = GetParameter(BinaryOpICStub::kRight); in BuildCodeInitializedStub()
1528 HValue* result = NULL; in BuildCodeInitializedStub()
1592 HValue* CodeStubGraphBuilder<BinaryOpWithAllocationSiteStub>::BuildCodeStub() { in BuildCodeStub()
1595 HValue* allocation_site = GetParameter( in BuildCodeStub()
1597 HValue* left = GetParameter(BinaryOpWithAllocationSiteStub::kLeft); in BuildCodeStub()
1598 HValue* right = GetParameter(BinaryOpWithAllocationSiteStub::kRight); in BuildCodeStub()
1616 HValue* CodeStubGraphBuilderBase::BuildToString(HValue* input, bool convert) { in BuildToString()
1619 HValue* inputissmi = if_inputissmi.If<HIsSmiAndBranch>(input); in BuildToString()
1627 HValue* input_map = in BuildToString()
1629 HValue* input_instance_type = Add<HLoadNamedField>( in BuildToString()
1660 HValue* values[] = {context(), Pop()}; in BuildToString()
1672 HValue* CodeStubGraphBuilderBase::BuildToPrimitive(HValue* input, in BuildToPrimitive()
1673 HValue* input_map) { in BuildToPrimitive()
1675 HValue* native_context = BuildGetNativeContext(); in BuildToPrimitive()
1678 HValue* object_function_prototype_map = in BuildToPrimitive()
1684 HValue* string_function_prototype_map = in BuildToPrimitive()
1690 HValue* string_function = Add<HLoadNamedField>( in BuildToPrimitive()
1693 HValue* string_function_initial_map = Add<HLoadNamedField>( in BuildToPrimitive()
1697 HValue* input_prototype = in BuildToPrimitive()
1699 HValue* input_prototype_map = in BuildToPrimitive()
1750 HValue* CodeStubGraphBuilder<StringAddStub>::BuildCodeInitializedStub() { in BuildCodeInitializedStub()
1755 HValue* left = GetParameter(StringAddStub::kLeft); in BuildCodeInitializedStub()
1756 HValue* right = GetParameter(StringAddStub::kRight); in BuildCodeInitializedStub()
1777 HValue* CodeStubGraphBuilder<ToBooleanICStub>::BuildCodeInitializedStub() { in BuildCodeInitializedStub()
1791 HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() { in BuildCodeInitializedStub()
1798 HValue* proxy_map = in BuildCodeInitializedStub()
1800 HValue* global = in BuildCodeInitializedStub()
1802 HValue* map_cell = Add<HConstant>(isolate()->factory()->NewWeakCell( in BuildCodeInitializedStub()
1804 HValue* expected_map = Add<HLoadNamedField>( in BuildCodeInitializedStub()
1806 HValue* map = in BuildCodeInitializedStub()
1814 HValue* weak_cell = Add<HConstant>(isolate()->factory()->NewWeakCell( in BuildCodeInitializedStub()
1816 HValue* cell = Add<HLoadNamedField>(weak_cell, nullptr, in BuildCodeInitializedStub()
1823 HValue* cell_contents = Add<HLoadNamedField>(cell, nullptr, access); in BuildCodeInitializedStub()
1837 HValue* hole_value = graph()->GetConstantHole(); in BuildCodeInitializedStub()
1857 HValue* expected_map = Add<HLoadNamedField>(cell_contents, nullptr, in BuildCodeInitializedStub()
1859 HValue* map = in BuildCodeInitializedStub()
1884 HValue* CodeStubGraphBuilder<ElementsTransitionAndStoreStub>::BuildCodeStub() { in BuildCodeStub()
1885 HValue* object = GetParameter(StoreTransitionHelper::ReceiverIndex()); in BuildCodeStub()
1886 HValue* key = GetParameter(StoreTransitionHelper::NameIndex()); in BuildCodeStub()
1887 HValue* value = GetParameter(StoreTransitionHelper::ValueIndex()); in BuildCodeStub()
1888 HValue* map = GetParameter(StoreTransitionHelper::MapIndex()); in BuildCodeStub()
1919 HValue* CodeStubGraphBuilder<ToObjectStub>::BuildCodeStub() { in BuildCodeStub()
1920 HValue* receiver = GetParameter(TypeConversionDescriptor::kArgumentIndex); in BuildCodeStub()
1929 HValue* CodeStubGraphBuilder<FastNewClosureStub>::BuildCodeStub() { in BuildCodeStub()
1936 HValue* shared_info = GetParameter(0); in BuildCodeStub()
1941 HValue* size = Add<HConstant>(JSFunction::kSize); in BuildCodeStub()
1988 HValue* CodeStubGraphBuilder<FastNewContextStub>::BuildCodeStub() { in BuildCodeStub()
2019 HValue* native_context = Add<HLoadNamedField>( in BuildCodeStub()
2043 HValue* CodeStubGraphBuilder<LoadDictionaryElementStub>::BuildCodeStub() { in BuildCodeStub()
2044 HValue* receiver = GetParameter(LoadDescriptor::kReceiverIndex); in BuildCodeStub()
2045 HValue* key = GetParameter(LoadDescriptor::kNameIndex); in BuildCodeStub()
2049 HValue* elements = AddLoadElements(receiver); in BuildCodeStub()
2051 HValue* hash = BuildElementIndexHash(key); in BuildCodeStub()
2063 HValue* CodeStubGraphBuilder<RegExpConstructResultStub>::BuildCodeStub() { in BuildCodeStub()
2065 HValue* length = GetParameter(RegExpConstructResultStub::kLength); in BuildCodeStub()
2066 HValue* index = GetParameter(RegExpConstructResultStub::kIndex); in BuildCodeStub()
2067 HValue* input = GetParameter(RegExpConstructResultStub::kInput); in BuildCodeStub()
2093 virtual HValue* BuildCodeStub();
2096 HValue* bit_field2,
2100 HValue* receiver,
2101 HValue* key,
2102 HValue* instance_type,
2103 HValue* bit_field2,
2113 HGraphBuilder::IfBuilder* if_builder, HValue* bit_field2, in BuildElementsKindLimitCheck()
2116 HValue* kind_limit = Add<HConstant>( in BuildElementsKindLimitCheck()
2125 HGraphBuilder::IfBuilder* if_builder, HValue* receiver, HValue* key, in BuildFastElementLoad()
2126 HValue* instance_type, HValue* bit_field2, ElementsKind kind) { in BuildFastElementLoad()
2146 HValue* CodeStubGraphBuilder<KeyedLoadGenericStub>::BuildCodeStub() { in BuildCodeStub()
2147 HValue* receiver = GetParameter(LoadDescriptor::kReceiverIndex); in BuildCodeStub()
2148 HValue* key = GetParameter(LoadDescriptor::kNameIndex); in BuildCodeStub()
2165 HValue* map = in BuildCodeStub()
2168 HValue* instance_type = in BuildCodeStub()
2171 HValue* bit_field2 = in BuildCodeStub()
2188 HValue* elements = AddLoadElements(receiver); in BuildCodeStub()
2190 HValue* hash = BuildElementIndexHash(key); in BuildCodeStub()
2228 HValue* properties = Add<HLoadNamedField>( in BuildCodeStub()
2231 HValue* hash = in BuildCodeStub()
2236 HValue* value = in BuildCodeStub()
2246 HValue* hash = BuildKeyedLookupCacheHash(receiver, key); in BuildCodeStub()
2250 HValue* cache_keys = Add<HConstant>(cache_keys_ref); in BuildCodeStub()
2252 HValue* map = in BuildCodeStub()
2254 HValue* base_index = AddUncasted<HMul>(hash, Add<HConstant>(2)); in BuildCodeStub()
2255 base_index->ClearFlag(HValue::kCanOverflow); in BuildCodeStub()
2266 HValue* map_index = AddUncasted<HAdd>( in BuildCodeStub()
2269 map_index->ClearFlag(HValue::kCanOverflow); in BuildCodeStub()
2270 HValue* key_index = AddUncasted<HAdd>( in BuildCodeStub()
2273 key_index->ClearFlag(HValue::kCanOverflow); in BuildCodeStub()
2274 HValue* map_to_check = in BuildCodeStub()
2279 HValue* key_to_check = in BuildCodeStub()
2287 HValue* cache_field_offsets = in BuildCodeStub()
2289 HValue* index = AddUncasted<HAdd>(hash, Add<HConstant>(probe)); in BuildCodeStub()
2290 index->ClearFlag(HValue::kCanOverflow); in BuildCodeStub()
2291 HValue* property_index = in BuildCodeStub()