Lines Matching full:__

19 #define __ masm.  macro
45 __ pld(MemOperand(src, 0)); in CreateMemCopyUint8Function()
47 __ cmp(chars, Operand(8)); in CreateMemCopyUint8Function()
48 __ b(lt, &size_less_than_8); in CreateMemCopyUint8Function()
49 __ cmp(chars, Operand(32)); in CreateMemCopyUint8Function()
50 __ b(lt, &less_32); in CreateMemCopyUint8Function()
52 __ pld(MemOperand(src, 32)); in CreateMemCopyUint8Function()
54 __ cmp(chars, Operand(64)); in CreateMemCopyUint8Function()
55 __ b(lt, &less_64); in CreateMemCopyUint8Function()
56 __ pld(MemOperand(src, 64)); in CreateMemCopyUint8Function()
58 __ pld(MemOperand(src, 96)); in CreateMemCopyUint8Function()
60 __ cmp(chars, Operand(128)); in CreateMemCopyUint8Function()
61 __ b(lt, &less_128); in CreateMemCopyUint8Function()
62 __ pld(MemOperand(src, 128)); in CreateMemCopyUint8Function()
64 __ pld(MemOperand(src, 160)); in CreateMemCopyUint8Function()
66 __ pld(MemOperand(src, 192)); in CreateMemCopyUint8Function()
68 __ pld(MemOperand(src, 224)); in CreateMemCopyUint8Function()
70 __ cmp(chars, Operand(256)); in CreateMemCopyUint8Function()
71 __ b(lt, &less_256); in CreateMemCopyUint8Function()
72 __ sub(chars, chars, Operand(256)); in CreateMemCopyUint8Function()
74 __ bind(&loop); in CreateMemCopyUint8Function()
75 __ pld(MemOperand(src, 256)); in CreateMemCopyUint8Function()
76 __ vld1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
78 __ pld(MemOperand(src, 256)); in CreateMemCopyUint8Function()
80 __ vld1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
81 __ sub(chars, chars, Operand(64), SetCC); in CreateMemCopyUint8Function()
82 __ vst1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
83 __ vst1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
84 __ b(ge, &loop); in CreateMemCopyUint8Function()
85 __ add(chars, chars, Operand(256)); in CreateMemCopyUint8Function()
87 __ bind(&less_256); in CreateMemCopyUint8Function()
88 __ vld1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
89 __ vld1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
90 __ sub(chars, chars, Operand(128)); in CreateMemCopyUint8Function()
91 __ vst1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
92 __ vst1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
93 __ vld1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
94 __ vld1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
95 __ vst1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
96 __ vst1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
97 __ cmp(chars, Operand(64)); in CreateMemCopyUint8Function()
98 __ b(lt, &less_64); in CreateMemCopyUint8Function()
100 __ bind(&less_128); in CreateMemCopyUint8Function()
101 __ vld1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
102 __ vld1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
103 __ sub(chars, chars, Operand(64)); in CreateMemCopyUint8Function()
104 __ vst1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
105 __ vst1(Neon8, NeonListOperand(d4, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
107 __ bind(&less_64); in CreateMemCopyUint8Function()
108 __ cmp(chars, Operand(32)); in CreateMemCopyUint8Function()
109 __ b(lt, &less_32); in CreateMemCopyUint8Function()
110 __ vld1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
111 __ vst1(Neon8, NeonListOperand(d0, 4), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
112 __ sub(chars, chars, Operand(32)); in CreateMemCopyUint8Function()
114 __ bind(&less_32); in CreateMemCopyUint8Function()
115 __ cmp(chars, Operand(16)); in CreateMemCopyUint8Function()
116 __ b(le, &_16_or_less); in CreateMemCopyUint8Function()
117 __ vld1(Neon8, NeonListOperand(d0, 2), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
118 __ vst1(Neon8, NeonListOperand(d0, 2), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
119 __ sub(chars, chars, Operand(16)); in CreateMemCopyUint8Function()
121 __ bind(&_16_or_less); in CreateMemCopyUint8Function()
122 __ cmp(chars, Operand(8)); in CreateMemCopyUint8Function()
123 __ b(le, &_8_or_less); in CreateMemCopyUint8Function()
124 __ vld1(Neon8, NeonListOperand(d0), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint8Function()
125 __ vst1(Neon8, NeonListOperand(d0), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint8Function()
126 __ sub(chars, chars, Operand(8)); in CreateMemCopyUint8Function()
129 __ bind(&_8_or_less); in CreateMemCopyUint8Function()
130 __ rsb(chars, chars, Operand(8)); in CreateMemCopyUint8Function()
131 __ sub(src, src, Operand(chars)); in CreateMemCopyUint8Function()
132 __ sub(dest, dest, Operand(chars)); in CreateMemCopyUint8Function()
133 __ vld1(Neon8, NeonListOperand(d0), NeonMemOperand(src)); in CreateMemCopyUint8Function()
134 __ vst1(Neon8, NeonListOperand(d0), NeonMemOperand(dest)); in CreateMemCopyUint8Function()
136 __ Ret(); in CreateMemCopyUint8Function()
138 __ bind(&size_less_than_8); in CreateMemCopyUint8Function()
140 __ bic(temp1, chars, Operand(0x3), SetCC); in CreateMemCopyUint8Function()
141 __ b(&less_4, eq); in CreateMemCopyUint8Function()
142 __ ldr(temp1, MemOperand(src, 4, PostIndex)); in CreateMemCopyUint8Function()
143 __ str(temp1, MemOperand(dest, 4, PostIndex)); in CreateMemCopyUint8Function()
148 __ bic(temp2, chars, Operand(0x3), SetCC); in CreateMemCopyUint8Function()
149 __ b(&less_4, eq); in CreateMemCopyUint8Function()
150 __ add(temp2, dest, temp2); in CreateMemCopyUint8Function()
152 __ bind(&loop); in CreateMemCopyUint8Function()
153 __ ldr(temp1, MemOperand(src, 4, PostIndex)); in CreateMemCopyUint8Function()
154 __ str(temp1, MemOperand(dest, 4, PostIndex)); in CreateMemCopyUint8Function()
155 __ cmp(dest, temp2); in CreateMemCopyUint8Function()
156 __ b(&loop, ne); in CreateMemCopyUint8Function()
159 __ bind(&less_4); in CreateMemCopyUint8Function()
160 __ mov(chars, Operand(chars, LSL, 31), SetCC); in CreateMemCopyUint8Function()
162 __ ldrh(temp1, MemOperand(src, 2, PostIndex), cs); in CreateMemCopyUint8Function()
163 __ strh(temp1, MemOperand(dest, 2, PostIndex), cs); in CreateMemCopyUint8Function()
164 __ ldrb(temp1, MemOperand(src), ne); in CreateMemCopyUint8Function()
165 __ strb(temp1, MemOperand(dest), ne); in CreateMemCopyUint8Function()
166 __ Ret(); in CreateMemCopyUint8Function()
201 __ bic(temp, chars, Operand(0x7)); in CreateMemCopyUint16Uint8Function()
202 __ sub(chars, chars, Operand(temp)); in CreateMemCopyUint16Uint8Function()
203 __ add(temp, dest, Operand(temp, LSL, 1)); in CreateMemCopyUint16Uint8Function()
205 __ bind(&loop); in CreateMemCopyUint16Uint8Function()
206 __ vld1(Neon8, NeonListOperand(d0), NeonMemOperand(src, PostIndex)); in CreateMemCopyUint16Uint8Function()
207 __ vmovl(NeonU8, q0, d0); in CreateMemCopyUint16Uint8Function()
208 __ vst1(Neon16, NeonListOperand(d0, 2), NeonMemOperand(dest, PostIndex)); in CreateMemCopyUint16Uint8Function()
209 __ cmp(dest, temp); in CreateMemCopyUint16Uint8Function()
210 __ b(&loop, ne); in CreateMemCopyUint16Uint8Function()
213 __ rsb(chars, chars, Operand(8)); in CreateMemCopyUint16Uint8Function()
214 __ sub(src, src, Operand(chars)); in CreateMemCopyUint16Uint8Function()
215 __ sub(dest, dest, Operand(chars, LSL, 1)); in CreateMemCopyUint16Uint8Function()
216 __ vld1(Neon8, NeonListOperand(d0), NeonMemOperand(src)); in CreateMemCopyUint16Uint8Function()
217 __ vmovl(NeonU8, q0, d0); in CreateMemCopyUint16Uint8Function()
218 __ vst1(Neon16, NeonListOperand(d0, 2), NeonMemOperand(dest)); in CreateMemCopyUint16Uint8Function()
219 __ Ret(); in CreateMemCopyUint16Uint8Function()
228 __ Push(lr, r4); in CreateMemCopyUint16Uint8Function()
229 __ bic(temp2, chars, Operand(0x3)); in CreateMemCopyUint16Uint8Function()
230 __ add(temp2, dest, Operand(temp2, LSL, 1)); in CreateMemCopyUint16Uint8Function()
232 __ bind(&loop); in CreateMemCopyUint16Uint8Function()
233 __ ldr(temp1, MemOperand(src, 4, PostIndex)); in CreateMemCopyUint16Uint8Function()
234 __ uxtb16(temp3, temp1); in CreateMemCopyUint16Uint8Function()
235 __ uxtb16(temp4, temp1, 8); in CreateMemCopyUint16Uint8Function()
236 __ pkhbt(temp1, temp3, Operand(temp4, LSL, 16)); in CreateMemCopyUint16Uint8Function()
237 __ str(temp1, MemOperand(dest)); in CreateMemCopyUint16Uint8Function()
238 __ pkhtb(temp1, temp4, Operand(temp3, ASR, 16)); in CreateMemCopyUint16Uint8Function()
239 __ str(temp1, MemOperand(dest, 4)); in CreateMemCopyUint16Uint8Function()
240 __ add(dest, dest, Operand(8)); in CreateMemCopyUint16Uint8Function()
241 __ cmp(dest, temp2); in CreateMemCopyUint16Uint8Function()
242 __ b(&loop, ne); in CreateMemCopyUint16Uint8Function()
244 __ mov(chars, Operand(chars, LSL, 31), SetCC); // bit0 => ne, bit1 => cs in CreateMemCopyUint16Uint8Function()
245 __ b(&not_two, cc); in CreateMemCopyUint16Uint8Function()
246 __ ldrh(temp1, MemOperand(src, 2, PostIndex)); in CreateMemCopyUint16Uint8Function()
247 __ uxtb(temp3, temp1, 8); in CreateMemCopyUint16Uint8Function()
248 __ mov(temp3, Operand(temp3, LSL, 16)); in CreateMemCopyUint16Uint8Function()
249 __ uxtab(temp3, temp3, temp1); in CreateMemCopyUint16Uint8Function()
250 __ str(temp3, MemOperand(dest, 4, PostIndex)); in CreateMemCopyUint16Uint8Function()
251 __ bind(&not_two); in CreateMemCopyUint16Uint8Function()
252 __ ldrb(temp1, MemOperand(src), ne); in CreateMemCopyUint16Uint8Function()
253 __ strh(temp1, MemOperand(dest), ne); in CreateMemCopyUint16Uint8Function()
254 __ Pop(pc, r4); in CreateMemCopyUint16Uint8Function()
280 __ MovFromFloatParameter(d0); in CreateSqrtFunction()
281 __ vsqrt(d0, d0); in CreateSqrtFunction()
282 __ MovToFloatResult(d0); in CreateSqrtFunction()
283 __ Ret(); in CreateSqrtFunction()
295 #undef __
318 #define __ ACCESS_MASM(masm) macro
334 __ JumpIfJSArrayHasAllocationMemento( in GenerateMapChangeElementsTransition()
339 __ str(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in GenerateMapChangeElementsTransition()
340 __ RecordWriteField(receiver, in GenerateMapChangeElementsTransition()
375 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, fail); in GenerateSmiToDouble()
380 __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); in GenerateSmiToDouble()
381 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex); in GenerateSmiToDouble()
382 __ b(eq, &only_change_map); in GenerateSmiToDouble()
384 __ push(lr); in GenerateSmiToDouble()
385 __ ldr(length, FieldMemOperand(elements, FixedArray::kLengthOffset)); in GenerateSmiToDouble()
390 __ mov(lr, Operand(length, LSL, 2)); in GenerateSmiToDouble()
391 __ add(lr, lr, Operand(FixedDoubleArray::kHeaderSize)); in GenerateSmiToDouble()
392 __ Allocate(lr, array, elements, scratch2, &gc_required, DOUBLE_ALIGNMENT); in GenerateSmiToDouble()
393 __ sub(array, array, Operand(kHeapObjectTag)); in GenerateSmiToDouble()
395 __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); in GenerateSmiToDouble()
399 __ LoadRoot(scratch2, Heap::kFixedDoubleArrayMapRootIndex); in GenerateSmiToDouble()
400 __ str(length, MemOperand(array, FixedDoubleArray::kLengthOffset)); in GenerateSmiToDouble()
402 __ str(scratch2, MemOperand(array, HeapObject::kMapOffset)); in GenerateSmiToDouble()
404 __ str(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in GenerateSmiToDouble()
405 __ RecordWriteField(receiver, in GenerateSmiToDouble()
414 __ add(scratch1, array, Operand(kHeapObjectTag)); in GenerateSmiToDouble()
415 __ str(scratch1, FieldMemOperand(receiver, JSObject::kElementsOffset)); in GenerateSmiToDouble()
416 __ RecordWriteField(receiver, in GenerateSmiToDouble()
426 __ add(scratch1, elements, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); in GenerateSmiToDouble()
427 __ add(scratch2, array, Operand(FixedDoubleArray::kHeaderSize)); in GenerateSmiToDouble()
428 __ add(array_end, scratch2, Operand(length, LSL, 2)); in GenerateSmiToDouble()
434 __ mov(hole_lower, Operand(kHoleNanLower32)); in GenerateSmiToDouble()
435 __ mov(hole_upper, Operand(kHoleNanUpper32)); in GenerateSmiToDouble()
442 __ b(&entry); in GenerateSmiToDouble()
444 __ bind(&only_change_map); in GenerateSmiToDouble()
445 __ str(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in GenerateSmiToDouble()
446 __ RecordWriteField(receiver, in GenerateSmiToDouble()
454 __ b(&done); in GenerateSmiToDouble()
457 __ bind(&gc_required); in GenerateSmiToDouble()
458 __ pop(lr); in GenerateSmiToDouble()
459 __ b(fail); in GenerateSmiToDouble()
462 __ bind(&loop); in GenerateSmiToDouble()
463 __ ldr(lr, MemOperand(scratch1, 4, PostIndex)); in GenerateSmiToDouble()
465 __ UntagAndJumpIfNotSmi(lr, lr, &convert_hole); in GenerateSmiToDouble()
468 __ vmov(s0, lr); in GenerateSmiToDouble()
469 __ vcvt_f64_s32(d0, s0); in GenerateSmiToDouble()
470 __ vstr(d0, scratch2, 0); in GenerateSmiToDouble()
471 __ add(scratch2, scratch2, Operand(8)); in GenerateSmiToDouble()
472 __ b(&entry); in GenerateSmiToDouble()
475 __ bind(&convert_hole); in GenerateSmiToDouble()
478 __ SmiTag(lr); in GenerateSmiToDouble()
479 __ orr(lr, lr, Operand(1)); in GenerateSmiToDouble()
480 __ CompareRoot(lr, Heap::kTheHoleValueRootIndex); in GenerateSmiToDouble()
481 __ Assert(eq, kObjectFoundInSmiOnlyArray); in GenerateSmiToDouble()
483 __ Strd(hole_lower, hole_upper, MemOperand(scratch2, 8, PostIndex)); in GenerateSmiToDouble()
485 __ bind(&entry); in GenerateSmiToDouble()
486 __ cmp(scratch2, array_end); in GenerateSmiToDouble()
487 __ b(lt, &loop); in GenerateSmiToDouble()
489 __ pop(lr); in GenerateSmiToDouble()
490 __ bind(&done); in GenerateSmiToDouble()
514 __ JumpIfJSArrayHasAllocationMemento(receiver, elements, fail); in GenerateDoubleToObject()
519 __ ldr(elements, FieldMemOperand(receiver, JSObject::kElementsOffset)); in GenerateDoubleToObject()
520 __ CompareRoot(elements, Heap::kEmptyFixedArrayRootIndex); in GenerateDoubleToObject()
521 __ b(eq, &only_change_map); in GenerateDoubleToObject()
523 __ push(lr); in GenerateDoubleToObject()
524 __ Push(target_map, receiver, key, value); in GenerateDoubleToObject()
525 __ ldr(length, FieldMemOperand(elements, FixedArray::kLengthOffset)); in GenerateDoubleToObject()
534 __ mov(array_size, Operand(FixedDoubleArray::kHeaderSize)); in GenerateDoubleToObject()
535 __ add(array_size, array_size, Operand(length, LSL, 1)); in GenerateDoubleToObject()
536 __ Allocate(array_size, array, allocate_scratch, scratch, &gc_required, in GenerateDoubleToObject()
540 __ LoadRoot(scratch, Heap::kFixedArrayMapRootIndex); in GenerateDoubleToObject()
541 __ str(length, FieldMemOperand(array, FixedDoubleArray::kLengthOffset)); in GenerateDoubleToObject()
542 __ str(scratch, FieldMemOperand(array, HeapObject::kMapOffset)); in GenerateDoubleToObject()
544 __ sub(array, array, Operand(kHeapObjectTag)); in GenerateDoubleToObject()
551 __ add(src_elements, elements, in GenerateDoubleToObject()
553 __ add(dst_elements, array, Operand(FixedArray::kHeaderSize)); in GenerateDoubleToObject()
554 __ add(dst_end, dst_elements, Operand(length, LSL, 1)); in GenerateDoubleToObject()
560 __ LoadRoot(scratch, Heap::kTheHoleValueRootIndex); in GenerateDoubleToObject()
561 __ b(&initialization_loop_entry); in GenerateDoubleToObject()
562 __ bind(&initialization_loop); in GenerateDoubleToObject()
563 __ str(scratch, MemOperand(dst_elements, kPointerSize, PostIndex)); in GenerateDoubleToObject()
564 __ bind(&initialization_loop_entry); in GenerateDoubleToObject()
565 __ cmp(dst_elements, dst_end); in GenerateDoubleToObject()
566 __ b(lt, &initialization_loop); in GenerateDoubleToObject()
568 __ add(dst_elements, array, Operand(FixedArray::kHeaderSize)); in GenerateDoubleToObject()
569 __ add(array, array, Operand(kHeapObjectTag)); in GenerateDoubleToObject()
570 __ LoadRoot(heap_number_map, Heap::kHeapNumberMapRootIndex); in GenerateDoubleToObject()
579 __ b(&entry); in GenerateDoubleToObject()
582 __ bind(&gc_required); in GenerateDoubleToObject()
583 __ Pop(target_map, receiver, key, value); in GenerateDoubleToObject()
584 __ pop(lr); in GenerateDoubleToObject()
585 __ b(fail); in GenerateDoubleToObject()
587 __ bind(&loop); in GenerateDoubleToObject()
589 __ ldr(upper_bits, MemOperand(src_elements, 8, PostIndex)); in GenerateDoubleToObject()
592 __ cmp(upper_bits, Operand(kHoleNanUpper32)); in GenerateDoubleToObject()
593 __ b(eq, &convert_hole); in GenerateDoubleToObject()
598 __ AllocateHeapNumber(heap_number, scratch2, lr, heap_number_map, in GenerateDoubleToObject()
601 __ ldr(scratch2, MemOperand(src_elements, 12, NegOffset)); in GenerateDoubleToObject()
602 __ Strd(scratch2, upper_bits, in GenerateDoubleToObject()
604 __ mov(scratch2, dst_elements); in GenerateDoubleToObject()
605 __ str(heap_number, MemOperand(dst_elements, 4, PostIndex)); in GenerateDoubleToObject()
606 __ RecordWrite(array, in GenerateDoubleToObject()
613 __ b(&entry); in GenerateDoubleToObject()
616 __ bind(&convert_hole); in GenerateDoubleToObject()
617 __ LoadRoot(scratch2, Heap::kTheHoleValueRootIndex); in GenerateDoubleToObject()
618 __ str(scratch2, MemOperand(dst_elements, 4, PostIndex)); in GenerateDoubleToObject()
620 __ bind(&entry); in GenerateDoubleToObject()
621 __ cmp(dst_elements, dst_end); in GenerateDoubleToObject()
622 __ b(lt, &loop); in GenerateDoubleToObject()
624 __ Pop(target_map, receiver, key, value); in GenerateDoubleToObject()
626 __ str(array, FieldMemOperand(receiver, JSObject::kElementsOffset)); in GenerateDoubleToObject()
627 __ RecordWriteField(receiver, in GenerateDoubleToObject()
635 __ pop(lr); in GenerateDoubleToObject()
637 __ bind(&only_change_map); in GenerateDoubleToObject()
639 __ str(target_map, FieldMemOperand(receiver, HeapObject::kMapOffset)); in GenerateDoubleToObject()
640 __ RecordWriteField(receiver, in GenerateDoubleToObject()
657 __ ldr(result, FieldMemOperand(string, HeapObject::kMapOffset)); in Generate()
658 __ ldrb(result, FieldMemOperand(result, Map::kInstanceTypeOffset)); in Generate()
662 __ tst(result, Operand(kIsIndirectStringMask)); in Generate()
663 __ b(eq, &check_sequential); in Generate()
667 __ tst(result, Operand(kSlicedNotConsMask)); in Generate()
668 __ b(eq, &cons_string); in Generate()
672 __ ldr(result, FieldMemOperand(string, SlicedString::kOffsetOffset)); in Generate()
673 __ ldr(string, FieldMemOperand(string, SlicedString::kParentOffset)); in Generate()
674 __ add(index, index, Operand::SmiUntag(result)); in Generate()
675 __ jmp(&indirect_string_loaded); in Generate()
682 __ bind(&cons_string); in Generate()
683 __ ldr(result, FieldMemOperand(string, ConsString::kSecondOffset)); in Generate()
684 __ CompareRoot(result, Heap::kempty_stringRootIndex); in Generate()
685 __ b(ne, call_runtime); in Generate()
687 __ ldr(string, FieldMemOperand(string, ConsString::kFirstOffset)); in Generate()
689 __ bind(&indirect_string_loaded); in Generate()
690 __ ldr(result, FieldMemOperand(string, HeapObject::kMapOffset)); in Generate()
691 __ ldrb(result, FieldMemOperand(result, Map::kInstanceTypeOffset)); in Generate()
697 __ bind(&check_sequential); in Generate()
699 __ tst(result, Operand(kStringRepresentationMask)); in Generate()
700 __ b(ne, &external_string); in Generate()
704 __ add(string, in Generate()
707 __ jmp(&check_encoding); in Generate()
710 __ bind(&external_string); in Generate()
714 __ tst(result, Operand(kIsIndirectStringMask)); in Generate()
715 __ Assert(eq, kExternalStringExpectedButNotFound); in Generate()
719 __ tst(result, Operand(kShortExternalStringMask)); in Generate()
720 __ b(ne, call_runtime); in Generate()
721 __ ldr(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); in Generate()
724 __ bind(&check_encoding); in Generate()
726 __ tst(result, Operand(kStringEncodingMask)); in Generate()
727 __ b(ne, &one_byte); in Generate()
729 __ ldrh(result, MemOperand(string, index, LSL, 1)); in Generate()
730 __ jmp(&done); in Generate()
731 __ bind(&one_byte); in Generate()
733 __ ldrb(result, MemOperand(string, index)); in Generate()
734 __ bind(&done); in Generate()
737 #undef __