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

Side by Side Diff: src/arm/codegen-arm.h

Issue 5188006: Push version 2.5.7 to trunk.... (Closed) Base URL: http://v8.googlecode.com/svn/trunk/
Patch Set: Created 10 years, 1 month 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/arm/assembler-arm.h ('k') | src/arm/codegen-arm.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 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 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 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 // Constants related to patching of inlined load/store. 272 // Constants related to patching of inlined load/store.
273 static int GetInlinedKeyedLoadInstructionsAfterPatch() { 273 static int GetInlinedKeyedLoadInstructionsAfterPatch() {
274 return FLAG_debug_code ? 32 : 13; 274 return FLAG_debug_code ? 32 : 13;
275 } 275 }
276 static const int kInlinedKeyedStoreInstructionsAfterPatch = 5; 276 static const int kInlinedKeyedStoreInstructionsAfterPatch = 5;
277 static int GetInlinedNamedStoreInstructionsAfterPatch() { 277 static int GetInlinedNamedStoreInstructionsAfterPatch() {
278 ASSERT(inlined_write_barrier_size_ != -1); 278 ASSERT(inlined_write_barrier_size_ != -1);
279 return inlined_write_barrier_size_ + 4; 279 return inlined_write_barrier_size_ + 4;
280 } 280 }
281 281
282 static MemOperand ContextOperand(Register context, int index) {
283 return MemOperand(context, Context::SlotOffset(index));
284 }
285
286 private: 282 private:
287 // Type of a member function that generates inline code for a native function. 283 // Type of a member function that generates inline code for a native function.
288 typedef void (CodeGenerator::*InlineFunctionGenerator) 284 typedef void (CodeGenerator::*InlineFunctionGenerator)
289 (ZoneList<Expression*>*); 285 (ZoneList<Expression*>*);
290 286
291 static const InlineFunctionGenerator kInlineFunctionGenerators[]; 287 static const InlineFunctionGenerator kInlineFunctionGenerators[];
292 288
293 // Construction/Destruction 289 // Construction/Destruction
294 explicit CodeGenerator(MacroAssembler* masm); 290 explicit CodeGenerator(MacroAssembler* masm);
295 291
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 void UnloadReference(Reference* ref); 338 void UnloadReference(Reference* ref);
343 339
344 MemOperand SlotOperand(Slot* slot, Register tmp); 340 MemOperand SlotOperand(Slot* slot, Register tmp);
345 341
346 MemOperand ContextSlotOperandCheckExtensions(Slot* slot, 342 MemOperand ContextSlotOperandCheckExtensions(Slot* slot,
347 Register tmp, 343 Register tmp,
348 Register tmp2, 344 Register tmp2,
349 JumpTarget* slow); 345 JumpTarget* slow);
350 346
351 // Expressions 347 // Expressions
352 static MemOperand GlobalObject() {
353 return ContextOperand(cp, Context::GLOBAL_INDEX);
354 }
355
356 void LoadCondition(Expression* x, 348 void LoadCondition(Expression* x,
357 JumpTarget* true_target, 349 JumpTarget* true_target,
358 JumpTarget* false_target, 350 JumpTarget* false_target,
359 bool force_cc); 351 bool force_cc);
360 void Load(Expression* expr); 352 void Load(Expression* expr);
361 void LoadGlobal(); 353 void LoadGlobal();
362 void LoadGlobalReceiver(Register scratch); 354 void LoadGlobalReceiver(Register scratch);
363 355
364 // Read a value from a slot and leave it on top of the expression stack. 356 // Read a value from a slot and leave it on top of the expression stack.
365 void LoadFromSlot(Slot* slot, TypeofState typeof_state); 357 void LoadFromSlot(Slot* slot, TypeofState typeof_state);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 437
446 // Control flow 438 // Control flow
447 void Branch(bool if_true, JumpTarget* target); 439 void Branch(bool if_true, JumpTarget* target);
448 void CheckStack(); 440 void CheckStack();
449 441
450 bool CheckForInlineRuntimeCall(CallRuntime* node); 442 bool CheckForInlineRuntimeCall(CallRuntime* node);
451 443
452 static Handle<Code> ComputeLazyCompile(int argc); 444 static Handle<Code> ComputeLazyCompile(int argc);
453 void ProcessDeclarations(ZoneList<Declaration*>* declarations); 445 void ProcessDeclarations(ZoneList<Declaration*>* declarations);
454 446
455 static Handle<Code> ComputeCallInitialize(int argc, InLoopFlag in_loop);
456
457 static Handle<Code> ComputeKeyedCallInitialize(int argc, InLoopFlag in_loop);
458
459 // Declare global variables and functions in the given array of 447 // Declare global variables and functions in the given array of
460 // name/value pairs. 448 // name/value pairs.
461 void DeclareGlobals(Handle<FixedArray> pairs); 449 void DeclareGlobals(Handle<FixedArray> pairs);
462 450
463 // Instantiate the function based on the shared function info. 451 // Instantiate the function based on the shared function info.
464 void InstantiateFunction(Handle<SharedFunctionInfo> function_info); 452 void InstantiateFunction(Handle<SharedFunctionInfo> function_info);
465 453
466 // Support for type checks. 454 // Support for type checks.
467 void GenerateIsSmi(ZoneList<Expression*>* args); 455 void GenerateIsSmi(ZoneList<Expression*>* args);
468 void GenerateIsNonNegativeSmi(ZoneList<Expression*>* args); 456 void GenerateIsNonNegativeSmi(ZoneList<Expression*>* args);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 friend class FullCodeGenerator; 585 friend class FullCodeGenerator;
598 friend class FullCodeGenSyntaxChecker; 586 friend class FullCodeGenSyntaxChecker;
599 587
600 DISALLOW_COPY_AND_ASSIGN(CodeGenerator); 588 DISALLOW_COPY_AND_ASSIGN(CodeGenerator);
601 }; 589 };
602 590
603 591
604 } } // namespace v8::internal 592 } } // namespace v8::internal
605 593
606 #endif // V8_ARM_CODEGEN_ARM_H_ 594 #endif // V8_ARM_CODEGEN_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/assembler-arm.h ('k') | src/arm/codegen-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698