Home | History | Annotate | Download | only in arm

Lines Matching defs:__

39 #define __ ACCESS_MASM(masm_)
63 __ stm(db_w, sp, r1.bit() | cp.bit() | fp.bit() | lr.bit());
67 __ LoadRoot(ip, Heap::kUndefinedValueRootIndex);
70 __ add(fp, sp, Operand(2 * kPointerSize));
74 __ push(ip);
84 __ push(r1);
85 __ CallRuntime(Runtime::kNewContext, 1);
89 __ str(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
98 __ ldr(r0, MemOperand(fp, parameter_offset));
100 __ mov(r1, Operand(Context::SlotOffset(slot->index())));
101 __ str(r0, MemOperand(cp, r1));
105 __ mov(r2, Operand(cp));
106 __ RecordWrite(r2, r1, r0);
117 __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
119 __ mov(r3, r1);
123 __ add(r2, fp,
125 __ mov(r1, Operand(Smi::FromInt(scope()->num_parameters())));
126 __ stm(db_w, sp, r3.bit() | r2.bit() | r1.bit());
133 __ CallStub(&stub);
135 __ mov(r3, r0);
148 __ LoadRoot(r2, Heap::kStackLimitRootIndex);
149 __ add(lr, pc, Operand(Assembler::kInstrSize));
150 __ cmp(sp, Operand(r2));
152 __ mov(pc,
164 __ CallRuntime(Runtime::kTraceEnter, 0);
176 __ LoadRoot(r0, Heap::kUndefinedValueRootIndex);
185 __ b(&return_label_);
187 __ bind(&return_label_);
191 __ push(r0);
192 __ CallRuntime(Runtime::kTraceExit, 1);
211 __ RecordJSReturn();
212 __ mov(sp, fp);
213 __ ldm(ia_w, sp, fp.bit() | lr.bit());
214 __ add(sp, sp, Operand(sp_delta));
215 __ Jump(lr);
242 if (!reg.is(result_register())) __ mov(result_register(), reg);
245 __ push(reg);
253 __ push(reg);
258 __ push(reg);
298 __ mov(result_register(), Operand(lit->handle()));
311 __ Drop(1);
317 __ pop(result_register());
327 __ ldr(ip, MemOperand(sp));
328 __ push(ip);
348 __ Drop(count);
354 __ Drop(count);
355 if (!reg.is(result_register())) __ mov(result_register(), reg);
358 if (count > 1) __ Drop(count - 1);
359 __ str(reg, MemOperand(sp));
365 if (count > 1) __ Drop(count - 1);
366 __ str(reg, MemOperand(sp));
373 __ str(reg, MemOperand(sp));
374 __ push(reg);
376 __ Drop(count - 2);
377 __ str(reg, MemOperand(sp, kPointerSize));
378 __ str(reg, MemOperand(sp));
394 __ bind(materialize_true);
399 __ bind(materialize_true);
400 __ mov(result_register(), Operand(Factory::true_value()));
401 __ jmp(&done);
402 __ bind(materialize_false);
403 __ mov(result_register(), Operand(Factory::false_value()));
404 __ bind(&done);
409 __ push(result_register());
419 __ bind(materialize_true);
420 __ mov(result_register(), Operand(Factory::true_value()));
425 __ push(result_register());
428 __ jmp(true_label_);
432 __ bind(materialize_false);
433 __ mov(result_register(), Operand(Factory::false_value()));
438 __ push(result_register());
441 __ jmp(false_label_);
455 __ CallRuntime(Runtime::kToBool, 1);
456 __ LoadRoot(ip, Heap::kTrueValueRootIndex);
457 __ cmp(r0, ip);
467 __ b(eq, true_label_);
468 __ jmp(false_label_);
475 __ b(ne, &discard);
476 __ pop(result_register());
477 __ jmp(true_label_);
480 __ b(eq, true_label_);
483 __ bind(&discard);
484 __ Drop(1);
485 __ jmp(false_label_);
493 __ b(eq, &discard);
494 __ pop(result_register());
495 __ jmp(false_label_);
498 __ b(ne, false_label_);
501 __ bind(&discard);
502 __ Drop(1);
503 __ jmp(true_label_);
518 __ LoadContext(scratch, context_chain_length);
532 __ ldr(destination, slot_operand);
543 __ str(src, location);
546 __ mov(scratch2, Operand(Context::SlotOffset(dst->index())));
547 __ RecordWrite(scratch1, scratch2, src);
564 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
565 __ str(ip, MemOperand(fp, SlotOffset(slot)));
568 __ str(result_register(), MemOperand(fp, SlotOffset(slot)));
580 __ ldr(r1,
582 __ cmp(r1, cp);
583 __ Check(eq, "Unexpected declaration in current context.");
586 __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
587 __ str(ip, CodeGenerator::ContextOperand(cp, slot->index()));
591 __ str(result_register(),
594 __ mov(r2, Operand(offset));
596 __ mov(r1, Operand(cp));
597 __ RecordWrite(r1, r2, result_register());
602 __ mov(r2, Operand(var->name()));
608 __ mov(r1, Operand(Smi::FromInt(attr)));
614 __ LoadRoot(r0, Heap::kTheHoleValueRootIndex);
615 __ stm(db_w, sp, cp.bit() | r2.bit() | r1.bit() | r0.bit());
617 __ stm(db_w, sp, cp.bit() | r2.bit() | r1.bit());
621 __ mov(r0, Operand(Smi::FromInt(0))); // No initial value!
622 __ stm(db_w, sp, cp.bit() | r2.bit() | r1.bit() | r0.bit());
624 __ CallRuntime(Runtime::kDeclareContextSlot, 4);
639 __ LoadRoot(result_register(), Heap::kTheHoleValueRootIndex);
643 __ Call(ic, RelocInfo::CODE_TARGET);
647 __ Drop(2);
656 __ mov(r1, Operand(pairs));
657 __ mov(r0, Operand(Smi::FromInt(is_eval() ? 1 : 0)));
658 __ stm(db_w, sp, cp.bit() | r1.bit() | r0.bit());
659 __ CallRuntime(Runtime::kDeclareGlobals, 3);
675 __ mov(r0, Operand(boilerplate));
676 __ stm(db_w, sp, cp.bit() | r0.bit());
677 __ CallRuntime(Runtime::kNewClosure, 2);
700 __ ldr(ip, CodeGenerator::GlobalObject());
701 __ push(ip);
702 __ mov(r2, Operand(var->name()));
704 __ Call(ic, RelocInfo::CODE_TARGET_CONTEXT);
709 __ mov(r1, Operand(var->name()));
710 __ stm(db_w, sp, cp.bit() | r1.bit()); // Context and name.
711 __ CallRuntime(Runtime::kLoadContextSlot, 2);
740 __ mov(r1, Operand(key_literal->handle()));
743 __ stm(db_w, sp, r2.bit() | r1.bit());
747 __ Call(ic, RelocInfo::CODE_TARGET);
764 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
765 __ ldr(r4, FieldMemOperand(r0, JSFunction::kLiteralsOffset));
768 __ ldr(r0, FieldMemOperand(r4, literal_offset));
769 __ LoadRoot(ip, Heap::kUndefinedValueRootIndex);
770 __ cmp(r0, ip);
771 __ b(ne, &done);
772 __ mov(r3, Operand(Smi::FromInt(expr->literal_index())));
773 __ mov(r2, Operand(expr->pattern()));
774 __ mov(r1, Operand(expr->flags()));
775 __ stm(db_w, sp, r4.bit() | r3.bit() | r2.bit() | r1.bit());
776 __ CallRuntime(Runtime::kMaterializeRegExpLiteral, 4);
777 __ bind(&done);
784 __ ldr(r2, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
785 __ ldr(r2, FieldMemOperand(r2, JSFunction::kLiteralsOffset));
786 __ mov(r1, Operand(Smi::FromInt(expr->literal_index())));
787 __ mov(r0, Operand(expr->constant_properties()));
788 __ stm(db_w, sp, r2.bit() | r1.bit() | r0.bit());
790 __ CallRuntime(Runtime::kCreateObjectLiteral, 3);
792 __ CallRuntime(Runtime::kCreateObjectLiteralShallow, 3);
806 __ push(r0); // Save result on stack
818 __ mov(r2, Operand(key->handle()));
819 __ ldr(r1, MemOperand(sp));
821 __ Call(ic, RelocInfo::CODE_TARGET);
827 __ ldr(r0, MemOperand(sp));
828 __ push(r0);
831 __ CallRuntime(Runtime::kSetProperty, 3);
836 __ ldr(r0, MemOperand(sp));
837 __ push(r0);
839 __ mov(r1, Operand(property->kind() == ObjectLiteral::Property::SETTER ?
842 __ push(r1);
844 __ CallRuntime(Runtime::kDefineAccessor, 4);
859 __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
860 __ ldr(r3, FieldMemOperand(r3, JSFunction::kLiteralsOffset));
861 __ mov(r2, Operand(Smi::FromInt(expr->literal_index())));
862 __ mov(r1, Operand(expr->constant_elements()));
863 __ stm(db_w, sp, r3.bit() | r2.bit() | r1.bit());
865 __ CallRuntime(Runtime::kCreateArrayLiteral, 3);
867 __ CallRuntime(Runtime::kCreateArrayLiteralShallow, 3);
885 __ push(r0);
891 __ ldr(r1, MemOperand(sp)); // Copy of array literal.
892 __ ldr(r1, FieldMemOperand(r1, JSObject::kElementsOffset));
894 __ str(result_register(), FieldMemOperand(r1, offset));
898 __ mov(r2, Operand(offset));
899 __ RecordWrite(r1, r2, result_register());
932 __ push(result_register());
955 __ push(result_register());
959 __ push(result_register());
999 __ mov(r2, Operand(key->handle()));
1001 __ Call(ic, RelocInfo::CODE_TARGET);
1008 __ Call(ic, RelocInfo::CODE_TARGET);
1014 __ pop(r1);
1016 __ CallStub(&stub);
1035 __ mov(r2, Operand(var->name()));
1036 __ ldr(r1, CodeGenerator::GlobalObject());
1038 __ Call(ic, RelocInfo::CODE_TARGET);
1041 __ push(result_register()); // Value.
1042 __ mov(r1, Operand(var->name()));
1043 __ stm(db_w, sp, cp.bit() | r1.bit()); // Context and name.
1044 __ CallRuntime(Runtime::kStoreContextSlot, 3);
1051 __ str(result_register(), MemOperand(fp, SlotOffset(slot)));
1056 __ str(result_register(), target);
1059 __ mov(r3, result_register());
1062 __ mov(r2, Operand(offset));
1063 __ RecordWrite(r1, r2, r3);
1091 __ push(result_register());
1092 __ ldr(ip, MemOperand(sp, kPointerSize)); // Receiver is now under value.
1093 __ push(ip);
1094 __ CallRuntime(Runtime::kToSlowProperties, 1);
1095 __ pop(result_register());
1100 __ mov(r2, Operand(prop->key()->AsLiteral()->handle()));
1102 __ ldr(r1, MemOperand(sp));
1104 __ pop(r1);
1108 __ Call(ic, RelocInfo::CODE_TARGET);
1112 __ push(r0); // Result of assignment, saved even if not needed.
1113 __ ldr(ip, MemOperand(sp, kPointerSize)); // Receiver is under value.
1114 __ push(ip);
1115 __ CallRuntime(Runtime::kToFastProperties, 1);
1116 __ pop(r0);
1131 __ push(result_register());
1133 __ ldr(ip, MemOperand(sp, 2 * kPointerSize));
1134 __ push(ip);
1135 __ CallRuntime(Runtime::kToSlowProperties, 1);
1136 __ pop(result_register());
1142 __ Call(ic, RelocInfo::CODE_TARGET);
1146 __ push(r0); // Result of assignment, saved even if not needed.
1148 __ ldr(ip, MemOperand(sp, 2 * kPointerSize));
1149 __ push(ip);
1150 __ CallRuntime(Runtime::kToFastProperties, 1);
1151 __ pop(r0);
1187 __ mov(r2, Operand(name));
1193 __ Call(ic, mode);
1195 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
1210 __ CallStub(&stub);
1212 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
1227 __ ldr(r0, CodeGenerator::GlobalObject());
1228 __ push(r0);
1250 __ Call(ic, RelocInfo::CODE_TARGET);
1253 __ ldr(r1, CodeGenerator::GlobalObject());
1254 __ ldr(r1, FieldMemOperand(r1, GlobalObject::kGlobalReceiverOffset));
1256 __ ldr(r1, MemOperand(sp, kPointerSize));
1259 __ str(r0, MemOperand(sp, kPointerSize));
1260 __ str(r1, MemOperand(sp));
1275 __ ldr(r1, CodeGenerator::GlobalObject());
1276 __ ldr(r1, FieldMemOperand(r1, GlobalObject::kGlobalReceiverOffset));
1277 __ push(r1);
1293 __ ldr(r0, CodeGenerator::GlobalObject());
1294 __ push(r0);
1307 __ mov(r0, Operand(arg_count));
1309 __ ldr(r1, MemOperand(sp, (arg_count + 1) * kPointerSize));
1312 __ Call(construct_builtin, RelocInfo::CONSTRUCT_CALL);
1325 __ ldr(r0, CodeGenerator::GlobalObject());
1326 __ ldr(r0, FieldMemOperand(r0, GlobalObject::kBuiltinsOffset));
1327 __ push(r0);
1338 __ mov(r2, Operand(expr->name()));
1341 __ Call(ic, RelocInfo::CODE_TARGET);
1343 __ ldr(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
1346 __ CallRuntime(expr->function(), arg_count);
1364 __ LoadRoot(result_register(), Heap::kUndefinedValueRootIndex);
1369 __ push(result_register());
1375 __ LoadRoot(result_register(), Heap::kUndefinedValueRootIndex);
1380 __ push(result_register());
1386 __ jmp(false_label_);
1432 __ ldr(r0, CodeGenerator::GlobalObject());
1433 __ push(r0);
1434 __ mov(r2, Operand(proxy->name()));
1438 __ Call(ic, RelocInfo::CODE_TARGET);
1439 __ str(r0, MemOperand(sp));
1443 __ mov(r0, Operand(proxy->name()));
1444 __ stm(db_w, sp, cp.bit() | r0.bit());
1445 __ CallRuntime(Runtime::kLoadContextSlotNoReferenceError, 2);
1446 __ push(r0);
1452 __ CallRuntime(Runtime::kTypeof, 1);
1461 __ tst(result_register(), Operand(kSmiTagMask));
1462 __ b(eq, &no_conversion);
1463 __ push(r0);
1464 __ InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS);
1465 __ bind(&no_conversion);
1479 __ CallStub(&stub);
1495 __ tst(result_register(), Operand(kSmiTagMask));
1496 __ b(eq, &smi);
1498 __ CallStub(&stub);
1499 __ b(&done);
1501 __ bind(&smi);
1502 __ mvn(result_register(), Operand(result_register()));
1504 __ bic(result_register(), result_register(), Operand(kSmiTagMask));
1505 __ bind(&done);
1542 __ mov(ip, Operand(Smi::FromInt(0)));
1543 __ push(ip);
1556 __ tst(r0, Operand(kSmiTagMask));
1557 __ b(eq, &no_conversion);
1558 __ push(r0);
1559 __ InvokeBuiltin(Builtins::TO_NUMBER, CALL_JS);
1560 __ bind(&no_conversion);
1579 __ push(r0);
1582 __ str(r0, MemOperand(sp, kPointerSize));
1585 __ str(r0, MemOperand(sp, 2 * kPointerSize));
1597 __ add(r0, r0, Operand(Smi::FromInt(count_value)), SetCC);
1598 __ b(vs, &stub_call);
1601 __ tst(r0, Operand(kSmiTagMask));
1602 __ b(eq, &done);
1603 __ bind(&stub_call);
1605 __ sub(r0, r0, Operand(Smi::FromInt(count_value)));
1607 __ mov(r1, Operand(Smi::FromInt(count_value)));
1609 __ CallStub(&stub);
1610 __ bind(&done);
1629 __ mov(r2, Operand(prop->key()->AsLiteral()->handle()));
1630 __ pop(r1);
1632 __ Call(ic, RelocInfo::CODE_TARGET);
1644 __ Call(ic, RelocInfo::CODE_TARGET);
1646 __ Drop(2); // Result is on the stack under the key and the receiver.
1729 __ InvokeBuiltin(Builtins::IN, CALL_JS);
1730 __ LoadRoot(ip, Heap::kTrueValueRootIndex);
1731 __ cmp(r0, ip);
1732 __ b(eq, if_true);
1733 __ jmp(if_false);
1739 __ CallStub(&stub);
1740 __ tst(r0, r0);
1741 __ b(eq, if_true); // The stub returns 0 for true.
1742 __ jmp(if_false);
1756 __ pop(r1);
1760 __ pop(r1);
1765 __ mov(r1, result_register());
1766 __ pop(r0);
1771 __ mov(r1, result_register());
1772 __ pop(r0);
1776 __ pop(r1);
1787 __ orr(r2, r0, Operand(r1));
1788 __ tst(r2, Operand(kSmiTagMask));
1789 __ b(ne, &slow_case);
1790 __ cmp(r1, r0);
1791 __ b(cc, if_true);
1792 __ jmp(if_false);
1794 __ bind(&slow_case);
1796 __ CallStub(&stub);
1797 __ cmp(r0, Operand(0));
1798 __ b(cc, if_true);
1799 __ jmp(if_false);
1810 __ ldr(r0, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
1823 __ str(value, MemOperand(fp, frame_offset));
1828 __ ldr(dst, CodeGenerator::ContextOperand(cp, context_index));
1838 __ push(result_register());
1840 __ sub(r1, lr, Operand(masm_->CodeObject()));
1843 __ add(r1, r1, Operand(r1)); // Convert to smi.
1844 __ push(r1);
1851 __ pop(r1);
1853 __ pop(result_register());
1855 __ mov(r1, Operand(r1, ASR, 1)); // Un-smi-tag value.
1856 __ add(pc, r1, Operand(masm_->CodeObject()));
1860 #undef __