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

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

Issue 6606006: [Isolates] Merge 6500:6700 from bleeding_edge to isolates. (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/isolates/
Patch Set: '' Created 9 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/ia32/ic-ia32.cc ('k') | src/ia32/lithium-codegen-ia32.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 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 void DoMathAbs(LUnaryMathOperation* instr); 191 void DoMathAbs(LUnaryMathOperation* instr);
192 void DoMathFloor(LUnaryMathOperation* instr); 192 void DoMathFloor(LUnaryMathOperation* instr);
193 void DoMathRound(LUnaryMathOperation* instr); 193 void DoMathRound(LUnaryMathOperation* instr);
194 void DoMathSqrt(LUnaryMathOperation* instr); 194 void DoMathSqrt(LUnaryMathOperation* instr);
195 void DoMathPowHalf(LUnaryMathOperation* instr); 195 void DoMathPowHalf(LUnaryMathOperation* instr);
196 void DoMathLog(LUnaryMathOperation* instr); 196 void DoMathLog(LUnaryMathOperation* instr);
197 void DoMathCos(LUnaryMathOperation* instr); 197 void DoMathCos(LUnaryMathOperation* instr);
198 void DoMathSin(LUnaryMathOperation* instr); 198 void DoMathSin(LUnaryMathOperation* instr);
199 199
200 // Support for recording safepoint and position information. 200 // Support for recording safepoint and position information.
201 void RecordSafepoint(LPointerMap* pointers,
202 Safepoint::Kind kind,
203 int arguments,
204 int deoptimization_index);
201 void RecordSafepoint(LPointerMap* pointers, int deoptimization_index); 205 void RecordSafepoint(LPointerMap* pointers, int deoptimization_index);
202 void RecordSafepointWithRegisters(LPointerMap* pointers, 206 void RecordSafepointWithRegisters(LPointerMap* pointers,
203 int arguments, 207 int arguments,
204 int deoptimization_index); 208 int deoptimization_index);
205 void RecordPosition(int position); 209 void RecordPosition(int position);
206 210
207 static Condition TokenToCondition(Token::Value op, bool is_unsigned); 211 static Condition TokenToCondition(Token::Value op, bool is_unsigned);
208 void EmitGoto(int block, LDeferredCode* deferred_stack_check = NULL); 212 void EmitGoto(int block, LDeferredCode* deferred_stack_check = NULL);
209 void EmitBranch(int left_block, int right_block, Condition cc); 213 void EmitBranch(int left_block, int right_block, Condition cc);
210 void EmitCmpI(LOperand* left, LOperand* right); 214 void EmitCmpI(LOperand* left, LOperand* right);
211 void EmitNumberUntagD(Register input, XMMRegister result, LEnvironment* env); 215 void EmitNumberUntagD(Register input, XMMRegister result, LEnvironment* env);
212 216
213 // Emits optimized code for typeof x == "y". Modifies input register. 217 // Emits optimized code for typeof x == "y". Modifies input register.
214 // Returns the condition on which a final split to 218 // Returns the condition on which a final split to
215 // true and false label should be made, to optimize fallthrough. 219 // true and false label should be made, to optimize fallthrough.
216 Condition EmitTypeofIs(Label* true_label, Label* false_label, 220 Condition EmitTypeofIs(Label* true_label, Label* false_label,
217 Register input, Handle<String> type_name); 221 Register input, Handle<String> type_name);
218 222
219 // Emits optimized code for %_IsObject(x). Preserves input register. 223 // Emits optimized code for %_IsObject(x). Preserves input register.
220 // Returns the condition on which a final split to 224 // Returns the condition on which a final split to
221 // true and false label should be made, to optimize fallthrough. 225 // true and false label should be made, to optimize fallthrough.
222 Condition EmitIsObject(Register input, 226 Condition EmitIsObject(Register input,
223 Register temp1, 227 Register temp1,
224 Register temp2, 228 Register temp2,
225 Label* is_not_object, 229 Label* is_not_object,
226 Label* is_object); 230 Label* is_object);
227 231
232 // Emits optimized code for %_IsConstructCall().
233 // Caller should branch on equal condition.
234 void EmitIsConstructCall(Register temp);
235
236
228 LChunk* const chunk_; 237 LChunk* const chunk_;
229 MacroAssembler* const masm_; 238 MacroAssembler* const masm_;
230 CompilationInfo* const info_; 239 CompilationInfo* const info_;
231 240
232 int current_block_; 241 int current_block_;
233 int current_instruction_; 242 int current_instruction_;
234 const ZoneList<LInstruction*>* instructions_; 243 const ZoneList<LInstruction*>* instructions_;
235 ZoneList<LEnvironment*> deoptimizations_; 244 ZoneList<LEnvironment*> deoptimizations_;
236 ZoneList<Handle<Object> > deoptimization_literals_; 245 ZoneList<Handle<Object> > deoptimization_literals_;
237 int inlined_function_count_; 246 int inlined_function_count_;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 private: 285 private:
277 LCodeGen* codegen_; 286 LCodeGen* codegen_;
278 Label entry_; 287 Label entry_;
279 Label exit_; 288 Label exit_;
280 Label* external_exit_; 289 Label* external_exit_;
281 }; 290 };
282 291
283 } } // namespace v8::internal 292 } } // namespace v8::internal
284 293
285 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ 294 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_
OLDNEW
« no previous file with comments | « src/ia32/ic-ia32.cc ('k') | src/ia32/lithium-codegen-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698