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

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

Issue 20492: Experimental: add a pre-merge step to perform some frame moves that do... (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/toiger/
Patch Set: Created 11 years, 10 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/virtual-frame-arm.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 void SpillAll(); 88 void SpillAll();
89 89
90 // Spill all occurrences of a specific register from the frame. 90 // Spill all occurrences of a specific register from the frame.
91 void Spill(Register reg); 91 void Spill(Register reg);
92 92
93 // Spill all occurrences of an arbitrary register if possible. Return the 93 // Spill all occurrences of an arbitrary register if possible. Return the
94 // register spilled or no_reg if it was not possible to free any register 94 // register spilled or no_reg if it was not possible to free any register
95 // (ie, they all have frame-external references). 95 // (ie, they all have frame-external references).
96 Register SpillAnyRegister(); 96 Register SpillAnyRegister();
97 97
98 // Prepare this virtual frame for merging to an expected frame by
99 // performing some state changes that do not require generating
100 // code. It is guaranteed that no code will be generated.
101 void PrepareMergeTo(VirtualFrame* expected);
102
98 // Make this virtual frame have a state identical to an expected virtual 103 // Make this virtual frame have a state identical to an expected virtual
99 // frame. As a side effect, code may be emitted to make this frame match 104 // frame. As a side effect, code may be emitted to make this frame match
100 // the expected one. 105 // the expected one.
101 void MergeTo(VirtualFrame* expected); 106 void MergeTo(VirtualFrame* expected);
102 107
103 // Detach a frame from its code generator, perhaps temporarily. This 108 // Detach a frame from its code generator, perhaps temporarily. This
104 // tells the register allocator that it is free to use frame-internal 109 // tells the register allocator that it is free to use frame-internal
105 // registers. Used when the code generator's frame is switched from this 110 // registers. Used when the code generator's frame is switched from this
106 // one to NULL by an unconditional jump. 111 // one to NULL by an unconditional jump.
107 void DetachFromCodeGenerator(); 112 void DetachFromCodeGenerator();
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 Result RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode); 443 Result RawCallCodeObject(Handle<Code> code, RelocInfo::Mode rmode);
439 444
440 bool Equals(VirtualFrame* other); 445 bool Equals(VirtualFrame* other);
441 446
442 friend class JumpTarget; 447 friend class JumpTarget;
443 }; 448 };
444 449
445 } } // namespace v8::internal 450 } } // namespace v8::internal
446 451
447 #endif // V8_VIRTUAL_FRAME_IA32_H_ 452 #endif // V8_VIRTUAL_FRAME_IA32_H_
OLDNEW
« no previous file with comments | « src/virtual-frame-arm.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698