Lines Matching refs:__
38 #define __ ACCESS_MASM(masm) macro
87 __ str(r3, FieldMemOperand(r2, HeapObject::kMapOffset)); in GenerateSmiOnlyToObject()
88 __ RecordWriteField(r2, in GenerateSmiOnlyToObject()
114 __ ldr(r4, FieldMemOperand(r2, JSObject::kElementsOffset)); in GenerateSmiOnlyToDouble()
115 __ CompareRoot(r4, Heap::kEmptyFixedArrayRootIndex); in GenerateSmiOnlyToDouble()
116 __ b(eq, &only_change_map); in GenerateSmiOnlyToDouble()
118 __ push(lr); in GenerateSmiOnlyToDouble()
119 __ ldr(r5, FieldMemOperand(r4, FixedArray::kLengthOffset)); in GenerateSmiOnlyToDouble()
124 __ mov(lr, Operand(FixedDoubleArray::kHeaderSize)); in GenerateSmiOnlyToDouble()
125 __ add(lr, lr, Operand(r5, LSL, 2)); in GenerateSmiOnlyToDouble()
126 __ AllocateInNewSpace(lr, r6, r7, r9, &gc_required, NO_ALLOCATION_FLAGS); in GenerateSmiOnlyToDouble()
129 __ LoadRoot(r9, Heap::kFixedDoubleArrayMapRootIndex); in GenerateSmiOnlyToDouble()
130 __ str(r5, MemOperand(r6, FixedDoubleArray::kLengthOffset)); in GenerateSmiOnlyToDouble()
131 __ str(r9, MemOperand(r6, HeapObject::kMapOffset)); in GenerateSmiOnlyToDouble()
134 __ str(r3, FieldMemOperand(r2, HeapObject::kMapOffset)); in GenerateSmiOnlyToDouble()
135 __ RecordWriteField(r2, in GenerateSmiOnlyToDouble()
144 __ add(r3, r6, Operand(kHeapObjectTag)); in GenerateSmiOnlyToDouble()
145 __ str(r3, FieldMemOperand(r2, JSObject::kElementsOffset)); in GenerateSmiOnlyToDouble()
146 __ RecordWriteField(r2, in GenerateSmiOnlyToDouble()
156 __ add(r3, r4, Operand(FixedArray::kHeaderSize - kHeapObjectTag)); in GenerateSmiOnlyToDouble()
157 __ add(r7, r6, Operand(FixedDoubleArray::kHeaderSize)); in GenerateSmiOnlyToDouble()
158 __ add(r6, r7, Operand(r5, LSL, 2)); in GenerateSmiOnlyToDouble()
159 __ mov(r4, Operand(kHoleNanLower32)); in GenerateSmiOnlyToDouble()
160 __ mov(r5, Operand(kHoleNanUpper32)); in GenerateSmiOnlyToDouble()
166 if (!vfp3_supported) __ Push(r1, r0); in GenerateSmiOnlyToDouble()
168 __ b(&entry); in GenerateSmiOnlyToDouble()
170 __ bind(&only_change_map); in GenerateSmiOnlyToDouble()
171 __ str(r3, FieldMemOperand(r2, HeapObject::kMapOffset)); in GenerateSmiOnlyToDouble()
172 __ RecordWriteField(r2, in GenerateSmiOnlyToDouble()
180 __ b(&done); in GenerateSmiOnlyToDouble()
183 __ bind(&gc_required); in GenerateSmiOnlyToDouble()
184 __ pop(lr); in GenerateSmiOnlyToDouble()
185 __ b(fail); in GenerateSmiOnlyToDouble()
188 __ bind(&loop); in GenerateSmiOnlyToDouble()
189 __ ldr(r9, MemOperand(r3, 4, PostIndex)); in GenerateSmiOnlyToDouble()
191 __ UntagAndJumpIfNotSmi(r9, r9, &convert_hole); in GenerateSmiOnlyToDouble()
196 __ vmov(s0, r9); in GenerateSmiOnlyToDouble()
197 __ vcvt_f64_s32(d0, s0); in GenerateSmiOnlyToDouble()
198 __ vstr(d0, r7, 0); in GenerateSmiOnlyToDouble()
199 __ add(r7, r7, Operand(8)); in GenerateSmiOnlyToDouble()
209 __ Strd(r0, r1, MemOperand(r7, 8, PostIndex)); in GenerateSmiOnlyToDouble()
211 __ b(&entry); in GenerateSmiOnlyToDouble()
214 __ bind(&convert_hole); in GenerateSmiOnlyToDouble()
217 __ SmiTag(r9); in GenerateSmiOnlyToDouble()
218 __ orr(r9, r9, Operand(1)); in GenerateSmiOnlyToDouble()
219 __ CompareRoot(r9, Heap::kTheHoleValueRootIndex); in GenerateSmiOnlyToDouble()
220 __ Assert(eq, "object found in smi-only array"); in GenerateSmiOnlyToDouble()
222 __ Strd(r4, r5, MemOperand(r7, 8, PostIndex)); in GenerateSmiOnlyToDouble()
224 __ bind(&entry); in GenerateSmiOnlyToDouble()
225 __ cmp(r7, r6); in GenerateSmiOnlyToDouble()
226 __ b(lt, &loop); in GenerateSmiOnlyToDouble()
228 if (!vfp3_supported) __ Pop(r1, r0); in GenerateSmiOnlyToDouble()
229 __ pop(lr); in GenerateSmiOnlyToDouble()
230 __ bind(&done); in GenerateSmiOnlyToDouble()
248 __ ldr(r4, FieldMemOperand(r2, JSObject::kElementsOffset)); in GenerateDoubleToObject()
249 __ CompareRoot(r4, Heap::kEmptyFixedArrayRootIndex); in GenerateDoubleToObject()
250 __ b(eq, &only_change_map); in GenerateDoubleToObject()
252 __ push(lr); in GenerateDoubleToObject()
253 __ Push(r3, r2, r1, r0); in GenerateDoubleToObject()
254 __ ldr(r5, FieldMemOperand(r4, FixedArray::kLengthOffset)); in GenerateDoubleToObject()
259 __ mov(r0, Operand(FixedDoubleArray::kHeaderSize)); in GenerateDoubleToObject()
260 __ add(r0, r0, Operand(r5, LSL, 1)); in GenerateDoubleToObject()
261 __ AllocateInNewSpace(r0, r6, r7, r9, &gc_required, NO_ALLOCATION_FLAGS); in GenerateDoubleToObject()
264 __ LoadRoot(r9, Heap::kFixedArrayMapRootIndex); in GenerateDoubleToObject()
265 __ str(r5, MemOperand(r6, FixedDoubleArray::kLengthOffset)); in GenerateDoubleToObject()
266 __ str(r9, MemOperand(r6, HeapObject::kMapOffset)); in GenerateDoubleToObject()
269 __ add(r4, r4, Operand(FixedDoubleArray::kHeaderSize - kHeapObjectTag + 4)); in GenerateDoubleToObject()
270 __ add(r3, r6, Operand(FixedArray::kHeaderSize)); in GenerateDoubleToObject()
271 __ add(r6, r6, Operand(kHeapObjectTag)); in GenerateDoubleToObject()
272 __ add(r5, r3, Operand(r5, LSL, 1)); in GenerateDoubleToObject()
273 __ LoadRoot(r7, Heap::kTheHoleValueRootIndex); in GenerateDoubleToObject()
274 __ LoadRoot(r9, Heap::kHeapNumberMapRootIndex); in GenerateDoubleToObject()
282 __ b(&entry); in GenerateDoubleToObject()
285 __ bind(&gc_required); in GenerateDoubleToObject()
286 __ Pop(r3, r2, r1, r0); in GenerateDoubleToObject()
287 __ pop(lr); in GenerateDoubleToObject()
288 __ b(fail); in GenerateDoubleToObject()
290 __ bind(&loop); in GenerateDoubleToObject()
291 __ ldr(r1, MemOperand(r4, 8, PostIndex)); in GenerateDoubleToObject()
294 __ cmp(r1, Operand(kHoleNanUpper32)); in GenerateDoubleToObject()
295 __ b(eq, &convert_hole); in GenerateDoubleToObject()
298 __ AllocateHeapNumber(r2, r0, lr, r9, &gc_required); in GenerateDoubleToObject()
300 __ ldr(r0, MemOperand(r4, 12, NegOffset)); in GenerateDoubleToObject()
301 __ Strd(r0, r1, FieldMemOperand(r2, HeapNumber::kValueOffset)); in GenerateDoubleToObject()
302 __ mov(r0, r3); in GenerateDoubleToObject()
303 __ str(r2, MemOperand(r3, 4, PostIndex)); in GenerateDoubleToObject()
304 __ RecordWrite(r6, in GenerateDoubleToObject()
311 __ b(&entry); in GenerateDoubleToObject()
314 __ bind(&convert_hole); in GenerateDoubleToObject()
315 __ str(r7, MemOperand(r3, 4, PostIndex)); in GenerateDoubleToObject()
317 __ bind(&entry); in GenerateDoubleToObject()
318 __ cmp(r3, r5); in GenerateDoubleToObject()
319 __ b(lt, &loop); in GenerateDoubleToObject()
321 __ Pop(r3, r2, r1, r0); in GenerateDoubleToObject()
323 __ str(r6, FieldMemOperand(r2, JSObject::kElementsOffset)); in GenerateDoubleToObject()
324 __ RecordWriteField(r2, in GenerateDoubleToObject()
332 __ pop(lr); in GenerateDoubleToObject()
334 __ bind(&only_change_map); in GenerateDoubleToObject()
336 __ str(r3, FieldMemOperand(r2, HeapObject::kMapOffset)); in GenerateDoubleToObject()
337 __ RecordWriteField(r2, in GenerateDoubleToObject()
354 __ ldr(result, FieldMemOperand(string, HeapObject::kMapOffset)); in Generate()
355 __ ldrb(result, FieldMemOperand(result, Map::kInstanceTypeOffset)); in Generate()
359 __ tst(result, Operand(kIsIndirectStringMask)); in Generate()
360 __ b(eq, &check_sequential); in Generate()
364 __ tst(result, Operand(kSlicedNotConsMask)); in Generate()
365 __ b(eq, &cons_string); in Generate()
369 __ ldr(result, FieldMemOperand(string, SlicedString::kOffsetOffset)); in Generate()
370 __ ldr(string, FieldMemOperand(string, SlicedString::kParentOffset)); in Generate()
371 __ add(index, index, Operand(result, ASR, kSmiTagSize)); in Generate()
372 __ jmp(&indirect_string_loaded); in Generate()
379 __ bind(&cons_string); in Generate()
380 __ ldr(result, FieldMemOperand(string, ConsString::kSecondOffset)); in Generate()
381 __ CompareRoot(result, Heap::kEmptyStringRootIndex); in Generate()
382 __ b(ne, call_runtime); in Generate()
384 __ ldr(string, FieldMemOperand(string, ConsString::kFirstOffset)); in Generate()
386 __ bind(&indirect_string_loaded); in Generate()
387 __ ldr(result, FieldMemOperand(string, HeapObject::kMapOffset)); in Generate()
388 __ ldrb(result, FieldMemOperand(result, Map::kInstanceTypeOffset)); in Generate()
394 __ bind(&check_sequential); in Generate()
396 __ tst(result, Operand(kStringRepresentationMask)); in Generate()
397 __ b(ne, &external_string); in Generate()
401 __ add(string, in Generate()
404 __ jmp(&check_encoding); in Generate()
407 __ bind(&external_string); in Generate()
411 __ tst(result, Operand(kIsIndirectStringMask)); in Generate()
412 __ Assert(eq, "external string expected, but not found"); in Generate()
416 __ tst(result, Operand(kShortExternalStringMask)); in Generate()
417 __ b(ne, call_runtime); in Generate()
418 __ ldr(string, FieldMemOperand(string, ExternalString::kResourceDataOffset)); in Generate()
421 __ bind(&check_encoding); in Generate()
423 __ tst(result, Operand(kStringEncodingMask)); in Generate()
424 __ b(ne, &ascii); in Generate()
426 __ ldrh(result, MemOperand(string, index, LSL, 1)); in Generate()
427 __ jmp(&done); in Generate()
428 __ bind(&ascii); in Generate()
430 __ ldrb(result, MemOperand(string, index)); in Generate()
431 __ bind(&done); in Generate()
434 #undef __