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

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

Issue 8111006: Allow new-space JSFunction objects as constant-function properties. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 2 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 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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 LInstruction* instr, 201 LInstruction* instr,
202 LOperand* context); 202 LOperand* context);
203 203
204 // Generate a direct call to a known function. Expects the function 204 // Generate a direct call to a known function. Expects the function
205 // to be in edi. 205 // to be in edi.
206 void CallKnownFunction(Handle<JSFunction> function, 206 void CallKnownFunction(Handle<JSFunction> function,
207 int arity, 207 int arity,
208 LInstruction* instr, 208 LInstruction* instr,
209 CallKind call_kind); 209 CallKind call_kind);
210 210
211 void LoadHeapObject(Register result, Handle<HeapObject> object);
212
213 void RegisterLazyDeoptimization(LInstruction* instr, 211 void RegisterLazyDeoptimization(LInstruction* instr,
214 SafepointMode safepoint_mode); 212 SafepointMode safepoint_mode);
215 213
216 void RegisterEnvironmentForDeoptimization(LEnvironment* environment); 214 void RegisterEnvironmentForDeoptimization(LEnvironment* environment);
217 void DeoptimizeIf(Condition cc, LEnvironment* environment); 215 void DeoptimizeIf(Condition cc, LEnvironment* environment);
218 216
219 void AddToTranslation(Translation* translation, 217 void AddToTranslation(Translation* translation,
220 LOperand* op, 218 LOperand* op,
221 bool is_tagged); 219 bool is_tagged);
222 void PopulateDeoptimizationData(Handle<Code> code); 220 void PopulateDeoptimizationData(Handle<Code> code);
223 int DefineDeoptimizationLiteral(Handle<Object> literal); 221 int DefineDeoptimizationLiteral(Handle<Object> literal);
224 222
225 void PopulateDeoptimizationLiteralsWithInlinedFunctions(); 223 void PopulateDeoptimizationLiteralsWithInlinedFunctions();
226 224
227 Register ToRegister(int index) const; 225 Register ToRegister(int index) const;
228 XMMRegister ToDoubleRegister(int index) const; 226 XMMRegister ToDoubleRegister(int index) const;
229 int ToInteger32(LConstantOperand* op) const; 227 int ToInteger32(LConstantOperand* op) const;
228 Handle<Object> ToHandle(LConstantOperand* op) const;
230 Operand BuildFastArrayOperand(LOperand* elements_pointer, 229 Operand BuildFastArrayOperand(LOperand* elements_pointer,
231 LOperand* key, 230 LOperand* key,
232 ElementsKind elements_kind, 231 ElementsKind elements_kind,
233 uint32_t offset); 232 uint32_t offset);
234 233
235 // Specific math operations - used from DoUnaryMathOperation. 234 // Specific math operations - used from DoUnaryMathOperation.
236 void EmitIntegerMathAbs(LUnaryMathOperation* instr); 235 void EmitIntegerMathAbs(LUnaryMathOperation* instr);
237 void DoMathAbs(LUnaryMathOperation* instr); 236 void DoMathAbs(LUnaryMathOperation* instr);
238 void DoMathFloor(LUnaryMathOperation* instr); 237 void DoMathFloor(LUnaryMathOperation* instr);
239 void DoMathRound(LUnaryMathOperation* instr); 238 void DoMathRound(LUnaryMathOperation* instr);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 282
284 // Emits optimized code for %_IsConstructCall(). 283 // Emits optimized code for %_IsConstructCall().
285 // Caller should branch on equal condition. 284 // Caller should branch on equal condition.
286 void EmitIsConstructCall(Register temp); 285 void EmitIsConstructCall(Register temp);
287 286
288 void EmitLoadFieldOrConstantFunction(Register result, 287 void EmitLoadFieldOrConstantFunction(Register result,
289 Register object, 288 Register object,
290 Handle<Map> type, 289 Handle<Map> type,
291 Handle<String> name); 290 Handle<String> name);
292 291
292 // Emits code for pushing either a tagged constant, a (non-double)
293 // register, or a stack slot operand.
294 void EmitPushTaggedOperand(LOperand* operand);
295
293 LChunk* const chunk_; 296 LChunk* const chunk_;
294 MacroAssembler* const masm_; 297 MacroAssembler* const masm_;
295 CompilationInfo* const info_; 298 CompilationInfo* const info_;
296 299
297 int current_block_; 300 int current_block_;
298 int current_instruction_; 301 int current_instruction_;
299 const ZoneList<LInstruction*>* instructions_; 302 const ZoneList<LInstruction*>* instructions_;
300 ZoneList<LEnvironment*> deoptimizations_; 303 ZoneList<LEnvironment*> deoptimizations_;
301 ZoneList<Handle<Object> > deoptimization_literals_; 304 ZoneList<Handle<Object> > deoptimization_literals_;
302 int inlined_function_count_; 305 int inlined_function_count_;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 LCodeGen* codegen_; 378 LCodeGen* codegen_;
376 Label entry_; 379 Label entry_;
377 Label exit_; 380 Label exit_;
378 Label* external_exit_; 381 Label* external_exit_;
379 int instruction_index_; 382 int instruction_index_;
380 }; 383 };
381 384
382 } } // namespace v8::internal 385 } } // namespace v8::internal
383 386
384 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_ 387 #endif // V8_IA32_LITHIUM_CODEGEN_IA32_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698