Home | History | Annotate | Download | only in src

Lines Matching refs:instr

135 void HBasicBlock::AddInstruction(HInstruction* instr) {
137 ASSERT(!instr->IsLinked());
147 instr->InsertAfter(last_);
172 HSimulate* instr =
175 instr->set_closure(environment->closure());
181 instr->AddPushedValue(environment->ExpressionStackAt(i));
188 instr->AddAssignedValue(index, environment->Lookup(index));
191 return instr;
217 HGoto* instr = new(zone()) HGoto(block);
218 Finish(instr);
233 HGoto* instr = new(zone()) HGoto(target);
234 Finish(instr);
991 HInstruction* HGraphBuilder::AddInstruction(HInstruction* instr) {
993 current_block()->AddInstruction(instr);
995 instr->SetFlag(HValue::kHasNoObservableSideEffects);
997 return instr;
2586 void EffectContext::ReturnInstruction(HInstruction* instr, BailoutId ast_id) {
2587 ASSERT(!instr->IsControlInstruction());
2588 owner()->AddInstruction(instr);
2589 if (instr->HasObservableSideEffects()) {
2595 void EffectContext::ReturnControl(HControlInstruction* instr,
2597 ASSERT(!instr->HasObservableSideEffects());
2600 instr->SetSuccessorAt(0, empty_true);
2601 instr->SetSuccessorAt(1, empty_false);
2602 owner()->current_block()->Finish(instr);
2624 void ValueContext::ReturnInstruction(HInstruction* instr, BailoutId ast_id) {
2625 ASSERT(!instr->IsControlInstruction());
2626 if (!arguments_allowed() && instr->CheckFlag(HValue::kIsArguments)) {
2629 owner()->AddInstruction(instr);
2630 owner()->Push(instr);
2631 if (instr->HasObservableSideEffects()) {
2637 void ValueContext::ReturnControl(HControlInstruction* instr, BailoutId ast_id) {
2638 ASSERT(!instr->HasObservableSideEffects());
2639 if (!arguments_allowed() && instr->CheckFlag(HValue::kIsArguments)) {
2644 instr->SetSuccessorAt(0, materialize_true);
2645 instr->SetSuccessorAt(1, materialize_false);
2646 owner()->current_block()->Finish(instr);
2680 void TestContext::ReturnInstruction(HInstruction* instr, BailoutId ast_id) {
2681 ASSERT(!instr->IsControlInstruction());
2683 builder->AddInstruction(instr);
2686 if (instr->HasObservableSideEffects()) {
2687 builder->Push(instr);
2691 BuildBranch(instr);
2695 void TestContext::ReturnControl(HControlInstruction* instr, BailoutId ast_id) {
2696 ASSERT(!instr->HasObservableSideEffects());
2699 instr->SetSuccessorAt(0, empty_true);
2700 instr->SetSuccessorAt(1, empty_false);
2701 owner()->current_block()->Finish(instr);
3011 void HGraphBuilder::PushAndAdd(HInstruction* instr) {
3012 Push(instr);
3013 AddInstruction(instr);
3775 HFunctionLiteral* instr =
3777 return ast_context()->ReturnInstruction(instr, expr->id());
3873 HConstant* instr = New<HConstant>(constant_value);
3874 return ast_context()->ReturnInstruction(instr, expr->id());
3899 HLoadGlobalCell* instr =
3901 return ast_context()->ReturnInstruction(instr, expr->id());
3907 HLoadGlobalGeneric* instr =
3912 instr->set_position(expr->position());
3913 return ast_context()->ReturnInstruction(instr, expr->id());
3930 HLoadContextSlot* instr = new(zone()) HLoadContextSlot(context, variable);
3931 return ast_context()->ReturnInstruction(instr, expr->id());
3944 HConstant* instr = New<HConstant>(expr->value());
3945 return ast_context()->ReturnInstruction(instr, expr->id());
3957 HRegExpLiteral* instr = new(zone()) HRegExpLiteral(context,
3962 return ast_context()->ReturnInstruction(instr, expr->id());
4377 HStoreKeyed* instr = Add<HStoreKeyed>(elements, key, value,
4379 instr->SetUninitialized(uninitialized);
4466 HStoreNamedField *instr;
4480 instr = New<HStoreNamedField>(object, heap_number_access,
4487 instr = New<HStoreNamedField>(heap_number,
4493 instr = New<HStoreNamedField>(object, field_access, value);
4499 instr->SetTransition(transition_constant, top_info());
4502 instr->SetGVNFlag(kChangesMaps);
4504 return instr;
4657 HInstruction* instr = TryLoadPolymorphicAsMonomorphic(
4659 if (instr != NULL) {
4660 instr->set_position(expr->position());
4661 return ast_context()->ReturnInstruction(instr, expr->id());
4844 HInstruction* instr;
4845 CHECK_ALIVE(instr = BuildStoreNamedField(
4847 instr->set_position(position);
4849 AddInstruction(instr);
4863 HInstruction* instr = BuildStoreNamedGeneric(object, name, store_value);
4864 instr->set_position(position);
4865 AddInstruction(instr);
4876 if (instr->HasObservableSideEffects()) {
4962 HInstruction* instr =
4964 instr->set_position(position);
4965 if (instr->HasObservableSideEffects()) {
4970 HStoreGlobalGeneric* instr =
4973 instr->set_position(position);
4974 ASSERT(instr->HasObservableSideEffects());
4992 HInstruction* instr = NULL;
5015 instr = new(zone()) HCallConstantFunction(setter, 2);
5018 CHECK_ALIVE(instr = BuildStoreNamedMonomorphic(object,
5030 instr = BuildStoreNamedGeneric(object, name, store_value);
5034 instr->set_position(position);
5035 AddInstruction(instr);
5036 if (instr->HasObservableSideEffects()) {
5111 HStoreContextSlot* instr = Add<HStoreContextSlot>(
5113 if (instr->HasObservableSideEffects()) {
5162 HInstruction* instr = BuildBinaryOperation(operation, left, right);
5163 PushAndAdd(instr);
5164 if (instr->HasObservableSideEffects()) {
5169 expr->AssignmentId(), prop, object, instr, instr);
5189 HInstruction* instr = BuildBinaryOperation(operation, left, right);
5190 PushAndAdd(instr);
5191 if (instr->HasObservableSideEffects()) {
5195 HandleKeyedElementAccess(obj, key, instr, expr, expr->AssignmentId(),
5202 Push(instr);
5323 HStoreContextSlot* instr = Add<HStoreContextSlot>(
5325 if (instr->HasObservableSideEffects()) {
5357 HThrow* instr = Add<HThrow>(value);
5358 instr->set_position(expr->position());
5572 HInstruction* instr = BuildUncheckedMonomorphicElementAccess(
5577 return instr;
5648 HInstruction* instr = NULL;
5650 instr = AddInstruction(is_store ? BuildStoreKeyedGeneric(object, key, val)
5653 instr = BuildMonomorphicElementAccess(
5657 *has_side_effects |= instr->HasObservableSideEffects();
5658 if (position != RelocInfo::kNoPosition) instr->set_position(position);
5659 return is_store ? NULL : instr;
5744 HInstruction* instr = NULL;
5748 instr = is_store ? BuildStoreKeyedGeneric(obj, key, val)
5750 AddInstruction(instr);
5753 instr = BuildMonomorphicElementAccess(
5767 instr = BuildStoreKeyedGeneric(obj, key, val);
5773 instr = BuildLoadKeyedGeneric(obj, key);
5775 AddInstruction(instr);
5777 if (position != RelocInfo::kNoPosition) instr->set_position(position);
5778 *has_side_effects = instr->HasObservableSideEffects();
5779 return instr;
5884 HInstruction* instr = NULL;
5890 instr = BuildLoadStringLength(string, checkstring);
5899 instr = HStringCharFromCode::New(zone(), context, char_code);
5904 instr = new(zone()) HLoadFunctionPrototype(function);
5927 instr = new(zone()) HCallConstantFunction(getter, 1);
5929 instr = BuildLoadNamedMonomorphic(Pop(), name, expr, map);
5934 instr = BuildLoadNamedGeneric(Pop(), name, expr);
5959 instr->set_position(expr->position());
5960 return ast_context()->ReturnInstruction(instr, expr->id());
7260 HInstruction* instr = current_block()->last();
7261 while (instr != initial_map_value) {
7262 HInstruction* prev_instr = instr->previous();
7263 instr->DeleteAndReplaceWith(NULL);
7264 instr = prev_instr;
7379 HInstruction* instr = New<HInvokeFunction>(function, 3);
7380 return ast_context()->ReturnInstruction(instr, expr->id());
7415 HInstruction* instr = new(zone()) HTypeof(context, value);
7416 return ast_context()->ReturnInstruction(instr, expr->id());
7493 HInstruction* instr = Add<HAdd>(Top(), delta);
7494 instr->SetFlag(HInstruction::kCannotBeTagged);
7495 instr->ClearAllSideEffects();
7496 return instr;
7564 HStoreContextSlot* instr = Add<HStoreContextSlot>(context, var->index(),
7566 if (instr->HasObservableSideEffects()) {
7788 instr = NULL;
7796 instr = HStringAdd::New(zone(), context, left, right);
7798 instr = HAdd::New(zone(), context, left, right);
7802 instr = HSub::New(zone(), context, left, right);
7805 instr = HMul::New(zone(), context, left, right);
7808 instr = HMod::New(zone(), context, left, right, fixed_right_arg);
7811 instr = HDiv::New(zone(), context, left, right);
7815 instr = NewUncasted<HBitwise>(expr->op(), left, right);
7822 instr = new(zone()) HRor(context, operand, shift_amount);
7824 instr = NewUncasted<HBitwise>(expr->op(), left, right);
7829 instr = HSar::New(zone(), context, left, right);
7832 instr = HShr::New(zone(), context, left, right);
7833 if (FLAG_opt_safe_uint32_operations && instr->IsShr() &&
7835 graph()->RecordUint32Instruction(instr);
7839 instr = HShl::New(zone(), context, left, right);
7845 if (instr->IsBinaryOperation()) {
7846 HBinaryOperation* binop = HBinaryOperation::cast(instr);
7851 return instr;
8000 HInstruction* instr = BuildBinaryOperation(expr, left, right);
8001 instr->set_position(expr->position());
8002 return ast_context()->ReturnInstruction(instr, expr->id());
8011 HTypeofIsAndBranch* instr = new(zone()) HTypeofIsAndBranch(value, check);
8012 instr->set_position(expr->position());
8013 return ast_context()->ReturnControl(instr, expr->id());
8053 HClassOfTestAndBranch* instr =
8055 instr->set_position(expr->position());
8056 return ast_context()->ReturnControl(instr, expr->id());
8574 HInstruction* instr = BuildThisFunction();
8575 return ast_context()->ReturnInstruction(instr, expr->id());