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

Side by Side Diff: src/x64/lithium-codegen-x64.h

Issue 196133017: Experimental parser: merge r19949 (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 6 years, 9 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
« no previous file with comments | « src/x64/ic-x64.cc ('k') | src/x64/lithium-codegen-x64.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
123 123
124 // Emit frame translation commands for an environment. 124 // Emit frame translation commands for an environment.
125 void WriteTranslation(LEnvironment* environment, Translation* translation); 125 void WriteTranslation(LEnvironment* environment, Translation* translation);
126 126
127 // Declare methods that deal with the individual node types. 127 // Declare methods that deal with the individual node types.
128 #define DECLARE_DO(type) void Do##type(L##type* node); 128 #define DECLARE_DO(type) void Do##type(L##type* node);
129 LITHIUM_CONCRETE_INSTRUCTION_LIST(DECLARE_DO) 129 LITHIUM_CONCRETE_INSTRUCTION_LIST(DECLARE_DO)
130 #undef DECLARE_DO 130 #undef DECLARE_DO
131 131
132 private: 132 private:
133 StrictModeFlag strict_mode_flag() const { 133 StrictMode strict_mode() const { return info()->strict_mode(); }
134 return info()->is_classic_mode() ? kNonStrictMode : kStrictMode;
135 }
136 134
137 LPlatformChunk* chunk() const { return chunk_; } 135 LPlatformChunk* chunk() const { return chunk_; }
138 Scope* scope() const { return scope_; } 136 Scope* scope() const { return scope_; }
139 HGraph* graph() const { return chunk()->graph(); } 137 HGraph* graph() const { return chunk()->graph(); }
140 138
141 XMMRegister double_scratch0() const { return xmm0; } 139 XMMRegister double_scratch0() const { return xmm0; }
142 140
143 void EmitClassOfTest(Label* if_true, 141 void EmitClassOfTest(Label* if_true,
144 Label* if_false, 142 Label* if_false,
145 Handle<String> class_name, 143 Handle<String> class_name,
146 Register input, 144 Register input,
147 Register temporary, 145 Register temporary,
148 Register scratch); 146 Register scratch);
149 147
150 int GetStackSlotCount() const { return chunk()->spill_slot_count(); } 148 int GetStackSlotCount() const { return chunk()->spill_slot_count(); }
151 149
152 void Abort(BailoutReason reason); 150 void Abort(BailoutReason reason);
153 151
154 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); } 152 void AddDeferredCode(LDeferredCode* code) { deferred_.Add(code, zone()); }
155 153
156 154
157 void SaveCallerDoubles(); 155 void SaveCallerDoubles();
158 void RestoreCallerDoubles(); 156 void RestoreCallerDoubles();
159 157
160 // Code generation passes. Returns true if code generation should 158 // Code generation passes. Returns true if code generation should
161 // continue. 159 // continue.
160 void GenerateBodyInstructionPre(LInstruction* instr) V8_OVERRIDE;
162 bool GeneratePrologue(); 161 bool GeneratePrologue();
163 bool GenerateDeferredCode(); 162 bool GenerateDeferredCode();
164 bool GenerateJumpTable(); 163 bool GenerateJumpTable();
165 bool GenerateSafepointTable(); 164 bool GenerateSafepointTable();
166 165
167 // Generates the custom OSR entrypoint and sets the osr_pc_offset. 166 // Generates the custom OSR entrypoint and sets the osr_pc_offset.
168 void GenerateOsrPrologue(); 167 void GenerateOsrPrologue();
169 168
170 enum SafepointMode { 169 enum SafepointMode {
171 RECORD_SIMPLE_SAFEPOINT, 170 RECORD_SIMPLE_SAFEPOINT,
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 Label entry_; 410 Label entry_;
412 Label exit_; 411 Label exit_;
413 Label done_; 412 Label done_;
414 Label* external_exit_; 413 Label* external_exit_;
415 int instruction_index_; 414 int instruction_index_;
416 }; 415 };
417 416
418 } } // namespace v8::internal 417 } } // namespace v8::internal
419 418
420 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_ 419 #endif // V8_X64_LITHIUM_CODEGEN_X64_H_
OLDNEW
« no previous file with comments | « src/x64/ic-x64.cc ('k') | src/x64/lithium-codegen-x64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698