Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(853)

Side by Side Diff: src/hydrogen.cc

Issue 255543003: CodeStubs contain their corresponding Isolate* now. (part 2) (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 3079 matching lines...) Expand 10 before | Expand all | Expand 10 after
3090 use_optimistic_licm_(false), 3090 use_optimistic_licm_(false),
3091 depends_on_empty_array_proto_elements_(false), 3091 depends_on_empty_array_proto_elements_(false),
3092 type_change_checksum_(0), 3092 type_change_checksum_(0),
3093 maximum_environment_size_(0), 3093 maximum_environment_size_(0),
3094 no_side_effects_scope_count_(0), 3094 no_side_effects_scope_count_(0),
3095 disallow_adding_new_values_(false), 3095 disallow_adding_new_values_(false),
3096 next_inline_id_(0), 3096 next_inline_id_(0),
3097 inlined_functions_(5, info->zone()) { 3097 inlined_functions_(5, info->zone()) {
3098 if (info->IsStub()) { 3098 if (info->IsStub()) {
3099 HydrogenCodeStub* stub = info->code_stub(); 3099 HydrogenCodeStub* stub = info->code_stub();
3100 CodeStubInterfaceDescriptor* descriptor = 3100 CodeStubInterfaceDescriptor* descriptor = stub->GetInterfaceDescriptor();
3101 stub->GetInterfaceDescriptor(isolate_);
3102 start_environment_ = 3101 start_environment_ =
3103 new(zone_) HEnvironment(zone_, descriptor->environment_length()); 3102 new(zone_) HEnvironment(zone_, descriptor->environment_length());
3104 } else { 3103 } else {
3105 TraceInlinedFunction(info->shared_info(), HSourcePosition::Unknown()); 3104 TraceInlinedFunction(info->shared_info(), HSourcePosition::Unknown());
3106 start_environment_ = 3105 start_environment_ =
3107 new(zone_) HEnvironment(NULL, info->scope(), info->closure(), zone_); 3106 new(zone_) HEnvironment(NULL, info->scope(), info->closure(), zone_);
3108 } 3107 }
3109 start_environment_->set_ast_id(BailoutId::FunctionEntry()); 3108 start_environment_->set_ast_id(BailoutId::FunctionEntry());
3110 entry_block_ = CreateBasicBlock(); 3109 entry_block_ = CreateBasicBlock();
3111 entry_block_->SetInitialEnvironment(start_environment_); 3110 entry_block_->SetInitialEnvironment(start_environment_);
(...skipping 4890 matching lines...) Expand 10 before | Expand all | Expand 10 after
8002 call_data, 8001 call_data,
8003 holder, 8002 holder,
8004 api_function_address, 8003 api_function_address,
8005 context() 8004 context()
8006 }; 8005 };
8007 8006
8008 CallInterfaceDescriptor* descriptor = 8007 CallInterfaceDescriptor* descriptor =
8009 isolate()->call_descriptor(Isolate::ApiFunctionCall); 8008 isolate()->call_descriptor(Isolate::ApiFunctionCall);
8010 8009
8011 CallApiFunctionStub stub(isolate(), is_store, call_data_is_undefined, argc); 8010 CallApiFunctionStub stub(isolate(), is_store, call_data_is_undefined, argc);
8012 Handle<Code> code = stub.GetCode(isolate()); 8011 Handle<Code> code = stub.GetCode();
8013 HConstant* code_value = Add<HConstant>(code); 8012 HConstant* code_value = Add<HConstant>(code);
8014 8013
8015 ASSERT((sizeof(op_vals) / kPointerSize) == 8014 ASSERT((sizeof(op_vals) / kPointerSize) ==
8016 descriptor->environment_length()); 8015 descriptor->environment_length());
8017 8016
8018 HInstruction* call = New<HCallWithDescriptor>( 8017 HInstruction* call = New<HCallWithDescriptor>(
8019 code_value, argc + 1, descriptor, 8018 code_value, argc + 1, descriptor,
8020 Vector<HValue*>(op_vals, descriptor->environment_length())); 8019 Vector<HValue*>(op_vals, descriptor->environment_length()));
8021 8020
8022 if (drop_extra) Drop(1); // Drop function. 8021 if (drop_extra) Drop(1); // Drop function.
(...skipping 3652 matching lines...) Expand 10 before | Expand all | Expand 10 after
11675 if (ShouldProduceTraceOutput()) { 11674 if (ShouldProduceTraceOutput()) {
11676 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 11675 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
11677 } 11676 }
11678 11677
11679 #ifdef DEBUG 11678 #ifdef DEBUG
11680 graph_->Verify(false); // No full verify. 11679 graph_->Verify(false); // No full verify.
11681 #endif 11680 #endif
11682 } 11681 }
11683 11682
11684 } } // namespace v8::internal 11683 } } // namespace v8::internal
OLDNEW
« src/arm/macro-assembler-arm.cc ('K') | « src/heap.cc ('k') | src/ia32/code-stubs-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698