Lines Matching refs:Node

30   Node* DirectStringData(Node* string, Node* string_instance_type) {
64 Node* LoadOneByteChar(Node* string, Node* index) {
68 Node* OneByteCharAddress(Node* string, Node* index) {
69 Node* offset = OneByteCharOffset(index);
73 Node* OneByteCharOffset(Node* index) {
77 Node* CharOffset(String::Encoding encoding, Node* index) {
79 Node* offset = index;
87 void DispatchOnStringInstanceType(Node* const instance_type,
92 Node* const encoding_and_representation =
111 Node* ToSmiBetweenZeroAnd(Node* context, Node* value, Node* limit);
113 Node* LoadSurrogatePairAt(Node* string, Node* length, Node* index,
116 void StringIndexOf(Node* receiver, Node* instance_type, Node* search_string,
117 Node* search_string_instance_type, Node* position,
118 std::function<void(Node*)> f_return);
120 Node* IsNullOrUndefined(Node* const value);
121 void RequireObjectCoercible(Node* const context, Node* const value,
124 Node* SmiIsNegative(Node* const value) {
139 typedef std::function<Node*()> NodeFunction0;
140 typedef std::function<Node*(Node* fn)> NodeFunction1;
141 void MaybeCallFunctionAtSymbol(Node* const context, Node* const object,
171 Node* context = Parameter(2);
177 Node* lhs = var_left.value();
178 Node* rhs = var_right.value();
184 Node* lhs_length = LoadStringLength(lhs);
185 Node* rhs_length = LoadStringLength(rhs);
191 Node* lhs_instance_type = LoadInstanceType(lhs);
192 Node* rhs_instance_type = LoadInstanceType(rhs);
196 Node* both_instance_types = Word32Or(
227 Node* lhs_data = DirectStringData(lhs, lhs_instance_type);
228 Node* rhs_data = DirectStringData(rhs, rhs_instance_type);
231 Node* length = SmiUntag(lhs_length);
242 Node* offset = var_offset.value();
246 Node* lhs_value = Load(MachineType::Uint8(), lhs_data, offset);
247 Node* rhs_value = Load(MachineType::Uint8(), rhs_data, offset);
284 Node* context = Parameter(2);
292 Node* lhs = var_left.value();
293 Node* rhs = var_right.value();
298 Node* lhs_instance_type = LoadInstanceType(lhs);
299 Node* rhs_instance_type = LoadInstanceType(rhs);
303 Node* both_instance_types = Word32Or(
322 Node* lhs_length = LoadStringLength(lhs);
323 Node* rhs_length = LoadStringLength(rhs);
326 Node* length = SmiMin(lhs_length, rhs_length);
329 Node* begin =
333 Node* end = IntPtrAdd(begin, SmiUntag(length));
343 Node* offset = var_offset.value();
350 Node* lhs_value = Load(MachineType::Uint8(), lhs, offset);
351 Node* rhs_value = Load(MachineType::Uint8(), rhs, offset);
469 Node* receiver = Parameter(0);
470 Node* position = Parameter(1);
473 Node* code = StringCharCodeAt(receiver, position, INTPTR_PARAMETERS);
476 Node* result = StringFromCharCode(code);
481 Node* receiver = Parameter(0);
482 Node* position = Parameter(1);
485 Node* code = StringCharCodeAt(receiver, position, INTPTR_PARAMETERS);
489 Node* result = SmiFromWord32(code);
498 Node* argc = Parameter(BuiltinDescriptor::kArgumentsCount);
499 Node* context = Parameter(BuiltinDescriptor::kContext);
516 Node* code = arguments.AtIndex(0);
517 Node* code32 = TruncateTaggedToWord32(context, code);
518 Node* code16 = Word32And(code32, Int32Constant(String::kMaxUtf16CodeUnit));
519 Node* result = StringFromCharCode(code16);
523 Node* code16 = nullptr;
528 Node* one_byte_result = AllocateSeqOneByteString(context, argc);
538 one_byte_result](Node* arg) {
539 Node* code32 = TruncateTaggedToWord32(context, arg);
547 Node* offset = ElementOffsetFromIndex(
562 Node* two_byte_result = AllocateSeqTwoByteString(context, argc);
566 Node* zero = IntPtrConstant(0);
573 Node* max_index_offset =
586 [this, context, two_byte_result, &max_index](Node* arg) {
587 Node* code32 = TruncateTaggedToWord32(context, arg);
588 Node* code16 =
591 Node* offset = ElementOffsetFromIndex(
700 Node* receiver = Parameter(0);
701 Node* position = Parameter(1);
702 Node* context = Parameter(4);
716 Node* receiver_length = LoadObjectField(receiver, String::kLengthOffset);
730 Node* code = StringCharCodeAt(receiver, position);
733 Node* result = StringFromCharCode(code);
739 Node* receiver = Parameter(0);
740 Node* position = Parameter(1);
741 Node* context = Parameter(4);
755 Node* receiver_length = LoadObjectField(receiver, String::kLengthOffset);
769 Node* value = StringCharCodeAt(receiver, position);
770 Node* result = SmiFromWord32(value);
871 Node* receiver, Node* instance_type, Node* search_string,
872 Node* search_string_instance_type, Node* position,
873 std::function<void(Node*)> f_return) {
882 Node* const int_zero = IntPtrConstant(0);
888 Node* needle_length = SmiUntag(LoadStringLength(search_string));
892 Node* string_length = SmiUntag(LoadStringLength(receiver));
893 Node* start_position = IntPtrMax(SmiUntag(position), int_zero);
919 Node* const unpacked = TryDerefExternalString(receiver, instance_type,
945 Node* const unpacked = TryDerefExternalString(
955 Node* needle_byte = var_needle_byte.value();
956 Node* string_addr = var_string_addr.value();
957 Node* search_length = IntPtrSub(string_length, start_position);
960 Node* memchr =
962 Node* result_address =
967 Node* result_index =
986 Node* result = CallRuntime(Runtime::kStringIndexOfUnchecked, SmiConstant(0),
996 Node* receiver = Parameter(0);
997 Node* search_string = Parameter(1);
998 Node* position = Parameter(2);
1000 Node* instance_type = LoadInstanceType(receiver);
1001 Node* search_string_instance_type = LoadInstanceType(search_string);
1005 [this](Node* result) { this->Return(result); });
1017 Node* argc = Parameter(BuiltinDescriptor::kArgumentsCount);
1018 Node* context = Parameter(BuiltinDescriptor::kContext);
1021 Node* receiver = arguments.GetReceiver();
1031 Node* undefined = UndefinedConstant();
1056 Node* needle = search_string.value();
1059 Node* instance_type = LoadInstanceType(receiver);
1062 Node* needle_instance_type = LoadInstanceType(needle);
1067 [&arguments](Node* result) { arguments.PopAndReturn(result); });
1073 Node* result = CallRuntime(Runtime::kStringIndexOf, context, receiver,
1173 compiler::Node* StringBuiltinsAssembler::IsNullOrUndefined(Node* const value) {
1177 void StringBuiltinsAssembler::RequireObjectCoercible(Node* const context,
1178 Node* const value,
1192 Node* const context, Node* const object, Handle<Symbol> symbol,
1199 Node* const object_map = LoadMap(object);
1207 Node* const native_context = LoadNativeContext(context);
1208 Node* const initial_proto_initial_map = LoadContextElement(
1211 Node* const string_fun =
1213 Node* const initial_map =
1215 Node* const proto_map = LoadMap(LoadMapPrototype(initial_map));
1241 Node* const key = HeapConstant(symbol);
1242 Node* const maybe_func = CallStub(getproperty_callable, context, object, key);
1248 Node* const result = generic_call(maybe_func);
1258 Node* const receiver = Parameter(0);
1259 Node* const search = Parameter(1);
1260 Node* const replace = Parameter(2);
1261 Node* const context = Parameter(5);
1263 Node* const smi_zero = SmiConstant(0);
1273 Node* const subject_string =
1280 [=](Node* fn) {
1290 Node* const subject_string = CallStub(tostring_callable, context, receiver);
1291 Node* const search_string = CallStub(tostring_callable, context, search);
1293 Node* const subject_length = LoadStringLength(subject_string);
1294 Node* const search_length = LoadStringLength(search_string);
1306 Node* const dollar_string = HeapConstant(
1308 Node* const dollar_ix =
1327 Node* const match_start_index = CallStub(
1355 Node* const match_end_index = SmiAdd(match_start_index, search_length);
1369 Node* const prefix = CallStub(substring_callable, context, subject_string,
1387 Node* const replacement =
1390 Node* const replacement_string =
1399 Node* const replace_string = CallStub(tostring_callable, context, replace);
1402 Node* const matched = CallStub(substring_callable, context, subject_string,
1404 Node* const replacement_string =
1414 Node* const suffix = CallStub(substring_callable, context, subject_string,
1416 Node* const result =
1426 Node* const receiver = Parameter(0);
1427 Node* const separator = Parameter(1);
1428 Node* const limit = Parameter(2);
1429 Node* const context = Parameter(5);
1431 Node* const smi_zero = SmiConstant(0);
1441 Node* const subject_string =
1448 [=](Node* fn) {
1459 Node* const subject_string = CallStub(tostring_callable, context, receiver);
1460 Node* const limit_number =
1464 Node* const separator_string =
1473 Node* const native_context = LoadNativeContext(context);
1474 Node* const array_map = LoadJSArrayElementsMap(kind, native_context);
1476 Node* const length = smi_zero;
1477 Node* const capacity = IntPtrConstant(0);
1478 Node* const result = AllocateJSArray(kind, array_map, capacity, length);
1492 Node* const native_context = LoadNativeContext(context);
1493 Node* const array_map = LoadJSArrayElementsMap(kind, native_context);
1495 Node* const length = SmiConstant(1);
1496 Node* const capacity = IntPtrConstant(1);
1497 Node* const result = AllocateJSArray(kind, array_map, capacity, length);
1499 Node* const fixed_array = LoadElements(result);
1512 Node* const result = CallRuntime(Runtime::kStringToArray, context,
1519 Node* const result =
1532 Node* const receiver = Parameter(0);
1533 Node* const start = Parameter(1);
1534 Node* const length = Parameter(2);
1535 Node* const context = Parameter(5);
1537 Node* const zero = SmiConstant(Smi::kZero);
1540 Node* const string =
1543 Node* const string_length = LoadStringLength(string);
1547 Node* const start_int =
1555 Node* const length_plus_start = SmiAdd(string_length, start_int);
1569 Node* const float_zero = Float64Constant(0.);
1570 Node* const start_float = LoadHeapNumberValue(start_int);
1602 Node* const positive_length = SmiMax(var_length.value(), zero);
1604 Node* const minimal_length = SmiSub(string_length, var_start.value());
1620 Node* const float_zero = Float64Constant(0.);
1621 Node* const length_float = LoadHeapNumberValue(var_length.value());
1639 Node* const end = SmiAdd(var_start.value(), var_length.value());
1640 Node* const result = SubString(context, string, var_start.value(), end);
1645 compiler::Node* StringBuiltinsAssembler::ToSmiBetweenZeroAnd(Node* context,
1646 Node* value,
1647 Node* limit) {
1651 Node* const value_int =
1670 Node* const zero = SmiConstant(Smi::kZero);
1682 Node* const float_zero = Float64Constant(0.);
1683 Node* const smi_zero = SmiConstant(Smi::kZero);
1684 Node* const value_float = LoadHeapNumberValue(value_int);
1701 Node* const receiver = Parameter(0);
1702 Node* const start = Parameter(1);
1703 Node* const end = Parameter(2);
1704 Node* const context = Parameter(5);
1707 Node* const string =
1710 Node* const length = LoadStringLength(string);
1728 Node* const tmp = var_end.value();
1737 Node* result =
1792 Node* receiver = Parameter(0);
1793 Node* context = Parameter(3);
1795 Node* result = ToThisValue(context, receiver, PrimitiveType::kString,
1823 Node* receiver = Parameter(0);
1824 Node* context = Parameter(3);
1826 Node* result = ToThisValue(context, receiver, PrimitiveType::kString,
1832 Node* receiver = Parameter(0);
1833 Node* context = Parameter(3);
1835 Node* string =
1838 Node* native_context = LoadNativeContext(context);
1839 Node* map =
1841 Node* iterator = Allocate(JSStringIterator::kSize);
1849 Node* index = SmiConstant(Smi::kZero);
1857 compiler::Node* StringBuiltinsAssembler::LoadSurrogatePairAt(
1858 compiler::Node* string, compiler::Node* length, compiler::Node* index,
1869 Node* next_index = SmiAdd(index, SmiConstant(Smi::FromInt(1)));
1879 Node* lead = var_result.value();
1880 Node* trail = var_trail.value();
1904 Node* surrogate_offset =
1929 Node* iterator = Parameter(0);
1930 Node* context = Parameter(3);
1937 Node* string = LoadObjectField(iterator, JSStringIterator::kStringOffset);
1938 Node* position =
1940 Node* length = LoadObjectField(string, String::kLengthOffset);
1947 Node* ch = LoadSurrogatePairAt(string, length, position, encoding);
1948 Node* value = StringFromCodePoint(ch, encoding);
1950 Node* length = LoadObjectField(value, String::kLengthOffset);
1959 Node* native_context = LoadNativeContext(context);
1960 Node* map =
1962 Node* result = Allocate(JSIteratorResult::kSize);