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

Side by Side Diff: src/virtual-frame-ia32.h

Issue 13746: Experimental: thread live register references to deferred code.... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/toiger/
Patch Set: '' Created 12 years 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 2008 the V8 project authors. All rights reserved. 1 // Copyright 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 78
79 union { 79 union {
80 Register reg_; 80 Register reg_;
81 Object** handle_; 81 Object** handle_;
82 } data_; 82 } data_;
83 83
84 CodeGenerator* cgen_; 84 CodeGenerator* cgen_;
85 }; 85 };
86 86
87 87
88 // A result in a register just means that the value can be read from the registe r
89
90
91 // ------------------------------------------------------------------------- 88 // -------------------------------------------------------------------------
92 // Virtual frame elements 89 // Virtual frame elements
93 // 90 //
94 // The internal elements of the virtual frames. There are several kinds of 91 // The internal elements of the virtual frames. There are several kinds of
95 // elements: 92 // elements:
96 // * Memory: an element that resides in the actual frame. Its address is 93 // * Memory: an element that resides in the actual frame. Its address is
97 // given by its position in the virtual frame. 94 // given by its position in the virtual frame.
98 // * Register: an element that resides in a register. 95 // * Register: an element that resides in a register.
99 // * Constant: an element whose value is known at compile time. 96 // * Constant: an element whose value is known at compile time.
100 97
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 // push instruction. 335 // push instruction.
339 void EmitPush(Register reg); 336 void EmitPush(Register reg);
340 void EmitPush(Operand operand); 337 void EmitPush(Operand operand);
341 void EmitPush(Immediate immediate); 338 void EmitPush(Immediate immediate);
342 339
343 // Push an element on the virtual frame. 340 // Push an element on the virtual frame.
344 void Push(Register reg); 341 void Push(Register reg);
345 void Push(Handle<Object> value); 342 void Push(Handle<Object> value);
346 343
347 #ifdef DEBUG 344 #ifdef DEBUG
345 // True if all values in the frame are backed by memory.
348 bool IsSpilled(); 346 bool IsSpilled();
347
348 // True if the two frames have the same state (in which case they are
349 // interchangable).
350 bool Equals(VirtualFrame* other);
349 #endif 351 #endif
350 352
351 private: 353 private:
352 // An illegal index into the virtual frame. 354 // An illegal index into the virtual frame.
353 static const int kIllegalIndex = -1; 355 static const int kIllegalIndex = -1;
354 356
355 static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset; 357 static const int kLocal0Offset = JavaScriptFrameConstants::kLocal0Offset;
356 static const int kFunctionOffset = JavaScriptFrameConstants::kFunctionOffset; 358 static const int kFunctionOffset = JavaScriptFrameConstants::kFunctionOffset;
357 static const int kContextOffset = StandardFrameConstants::kContextOffset; 359 static const int kContextOffset = StandardFrameConstants::kContextOffset;
358 360
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 444
443 // Spill the topmost elements of the frame to memory (eg, they are the 445 // Spill the topmost elements of the frame to memory (eg, they are the
444 // arguments to a call) and all registers. 446 // arguments to a call) and all registers.
445 void PrepareForCall(int count); 447 void PrepareForCall(int count);
446 }; 448 };
447 449
448 450
449 } } // namespace v8::internal 451 } } // namespace v8::internal
450 452
451 #endif // V8_VIRTUAL_FRAME_IA32_H_ 453 #endif // V8_VIRTUAL_FRAME_IA32_H_
OLDNEW
« src/codegen-ia32.cc ('K') | « src/virtual-frame-arm.h ('k') | src/virtual-frame-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698