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

Side by Side Diff: src/codegen.h

Issue 435003: Patch for allowing several V8 instances in process:... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years 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
« no previous file with comments | « src/code-stubs.cc ('k') | src/codegen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 94
95 namespace v8 { 95 namespace v8 {
96 namespace internal { 96 namespace internal {
97 97
98 98
99 // Code generation can be nested. Code generation scopes form a stack 99 // Code generation can be nested. Code generation scopes form a stack
100 // of active code generators. 100 // of active code generators.
101 class CodeGeneratorScope BASE_EMBEDDED { 101 class CodeGeneratorScope BASE_EMBEDDED {
102 public: 102 public:
103 explicit CodeGeneratorScope(CodeGenerator* cgen) { 103 explicit CodeGeneratorScope(CodeGenerator* cgen) {
104 previous_ = top_; 104 CodeGeneratorData& code_generator_data = v8_context()->code_generator_data_;
105 top_ = cgen; 105 previous_ = code_generator_data.top_;
106 code_generator_data.top_ = cgen;
106 } 107 }
107 108
108 ~CodeGeneratorScope() { 109 ~CodeGeneratorScope() {
109 top_ = previous_; 110 v8_context()->code_generator_data_.top_ = previous_;
110 } 111 }
111 112
112 static CodeGenerator* Current() { 113 static CodeGenerator* Current() {
113 ASSERT(top_ != NULL); 114 CodeGeneratorData& code_generator_data = v8_context()->code_generator_data_;
114 return top_; 115 ASSERT(code_generator_data.top_ != NULL);
116 return code_generator_data.top_;
115 } 117 }
116 118
117 private: 119 private:
118 static CodeGenerator* top_;
119 CodeGenerator* previous_; 120 CodeGenerator* previous_;
120 }; 121 };
121 122
122 123
123 // Deferred code objects are small pieces of code that are compiled 124 // Deferred code objects are small pieces of code that are compiled
124 // out of line. They are used to defer the compilation of uncommon 125 // out of line. They are used to defer the compilation of uncommon
125 // paths thereby avoiding expensive jumps around uncommon code parts. 126 // paths thereby avoiding expensive jumps around uncommon code parts.
126 class DeferredCode: public ZoneObject { 127 class DeferredCode: public ZoneObject {
127 public: 128 public:
128 DeferredCode(); 129 DeferredCode();
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 PrintF("ArgumentsAccessStub (type %d)\n", type_); 419 PrintF("ArgumentsAccessStub (type %d)\n", type_);
419 } 420 }
420 #endif 421 #endif
421 }; 422 };
422 423
423 424
424 } // namespace internal 425 } // namespace internal
425 } // namespace v8 426 } // namespace v8
426 427
427 #endif // V8_CODEGEN_H_ 428 #endif // V8_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/code-stubs.cc ('k') | src/codegen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698