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

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

Issue 305005: Added support for assignments to global variables in the toplevel code... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 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 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 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 // Returns the arguments allocation mode. 389 // Returns the arguments allocation mode.
390 ArgumentsAllocationMode ArgumentsMode() const; 390 ArgumentsAllocationMode ArgumentsMode() const;
391 391
392 // Store the arguments object and allocate it if necessary. 392 // Store the arguments object and allocate it if necessary.
393 Result StoreArgumentsObject(bool initial); 393 Result StoreArgumentsObject(bool initial);
394 394
395 // The following are used by class Reference. 395 // The following are used by class Reference.
396 void LoadReference(Reference* ref); 396 void LoadReference(Reference* ref);
397 void UnloadReference(Reference* ref); 397 void UnloadReference(Reference* ref);
398 398
399 Operand ContextOperand(Register context, int index) const { 399 static Operand ContextOperand(Register context, int index) {
400 return Operand(context, Context::SlotOffset(index)); 400 return Operand(context, Context::SlotOffset(index));
401 } 401 }
402 402
403 Operand SlotOperand(Slot* slot, Register tmp); 403 Operand SlotOperand(Slot* slot, Register tmp);
404 404
405 Operand ContextSlotOperandCheckExtensions(Slot* slot, 405 Operand ContextSlotOperandCheckExtensions(Slot* slot,
406 Result tmp, 406 Result tmp,
407 JumpTarget* slow); 407 JumpTarget* slow);
408 408
409 // Expressions 409 // Expressions
410 Operand GlobalObject() const { 410 static Operand GlobalObject() {
411 return ContextOperand(esi, Context::GLOBAL_INDEX); 411 return ContextOperand(esi, Context::GLOBAL_INDEX);
412 } 412 }
413 413
414 void LoadCondition(Expression* x, 414 void LoadCondition(Expression* x,
415 TypeofState typeof_state, 415 TypeofState typeof_state,
416 ControlDestination* destination, 416 ControlDestination* destination,
417 bool force_control); 417 bool force_control);
418 void Load(Expression* x, TypeofState typeof_state = NOT_INSIDE_TYPEOF); 418 void Load(Expression* x, TypeofState typeof_state = NOT_INSIDE_TYPEOF);
419 void LoadGlobal(); 419 void LoadGlobal();
420 void LoadGlobalReceiver(); 420 void LoadGlobalReceiver();
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 // called from spilled code, because they do not leave the virtual frame 609 // called from spilled code, because they do not leave the virtual frame
610 // in a spilled state. 610 // in a spilled state.
611 bool in_spilled_code_; 611 bool in_spilled_code_;
612 612
613 static InlineRuntimeLUT kInlineRuntimeLUT[]; 613 static InlineRuntimeLUT kInlineRuntimeLUT[];
614 614
615 friend class VirtualFrame; 615 friend class VirtualFrame;
616 friend class JumpTarget; 616 friend class JumpTarget;
617 friend class Reference; 617 friend class Reference;
618 friend class Result; 618 friend class Result;
619 friend class FastCodeGenerator;
619 620
620 friend class CodeGeneratorPatcher; // Used in test-log-stack-tracer.cc 621 friend class CodeGeneratorPatcher; // Used in test-log-stack-tracer.cc
621 622
622 DISALLOW_COPY_AND_ASSIGN(CodeGenerator); 623 DISALLOW_COPY_AND_ASSIGN(CodeGenerator);
623 }; 624 };
624 625
625 626
626 // Flag that indicates whether how to generate code for the stub. 627 // Flag that indicates whether how to generate code for the stub.
627 enum GenericBinaryFlags { 628 enum GenericBinaryFlags {
628 NO_GENERIC_BINARY_FLAGS = 0, 629 NO_GENERIC_BINARY_FLAGS = 0,
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 void SetArgsReversed() { args_reversed_ = true; } 711 void SetArgsReversed() { args_reversed_ = true; }
711 bool HasSmiCodeInStub() { return (flags_ & NO_SMI_CODE_IN_STUB) == 0; } 712 bool HasSmiCodeInStub() { return (flags_ & NO_SMI_CODE_IN_STUB) == 0; }
712 bool HasArgumentsInRegisters() { return args_in_registers_; } 713 bool HasArgumentsInRegisters() { return args_in_registers_; }
713 bool HasArgumentsReversed() { return args_reversed_; } 714 bool HasArgumentsReversed() { return args_reversed_; }
714 }; 715 };
715 716
716 717
717 } } // namespace v8::internal 718 } } // namespace v8::internal
718 719
719 #endif // V8_IA32_CODEGEN_IA32_H_ 720 #endif // V8_IA32_CODEGEN_IA32_H_
OLDNEW
« no previous file with comments | « src/compiler.cc ('k') | src/ia32/fast-codegen-ia32.cc » ('j') | src/ia32/fast-codegen-ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698