Home | History | Annotate | Download | only in arm

Lines Matching defs:__

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