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

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

Issue 92009: When merging a frame to an expected on at block entry, the static type... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 8 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 2009 the V8 project authors. All rights reserved. 1 // Copyright 2009 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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 FrameElement target = expected->elements_[i]; 184 FrameElement target = expected->elements_[i];
185 if (source.is_synced() && !target.is_synced()) { 185 if (source.is_synced() && !target.is_synced()) {
186 elements_[i].clear_sync(); 186 elements_[i].clear_sync();
187 } else if (!source.is_synced() && target.is_synced()) { 187 } else if (!source.is_synced() && target.is_synced()) {
188 SyncElementAt(i); 188 SyncElementAt(i);
189 } 189 }
190 elements_[i].clear_copied(); 190 elements_[i].clear_copied();
191 if (elements_[i].is_copy()) { 191 if (elements_[i].is_copy()) {
192 elements_[elements_[i].index()].set_copied(); 192 elements_[elements_[i].index()].set_copied();
193 } 193 }
194 elements_[i].set_static_type(target.static_type());
195 } 194 }
196 195
197 // Adjust the stack pointer downward if necessary. 196 // Adjust the stack pointer downward if necessary.
198 if (stack_pointer_ > expected->stack_pointer_) { 197 if (stack_pointer_ > expected->stack_pointer_) {
199 int difference = stack_pointer_ - expected->stack_pointer_; 198 int difference = stack_pointer_ - expected->stack_pointer_;
200 stack_pointer_ = expected->stack_pointer_; 199 stack_pointer_ = expected->stack_pointer_;
201 __ add(Operand(esp), Immediate(difference * kPointerSize)); 200 __ add(Operand(esp), Immediate(difference * kPointerSize));
202 } 201 }
203 202
204 // At this point, the frames should be identical. 203 // At this point, the frames should be identical.
(...skipping 827 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 ASSERT(stack_pointer_ == elements_.length() - 1); 1031 ASSERT(stack_pointer_ == elements_.length() - 1);
1033 elements_.Add(FrameElement::MemoryElement()); 1032 elements_.Add(FrameElement::MemoryElement());
1034 stack_pointer_++; 1033 stack_pointer_++;
1035 __ push(immediate); 1034 __ push(immediate);
1036 } 1035 }
1037 1036
1038 1037
1039 #undef __ 1038 #undef __
1040 1039
1041 } } // namespace v8::internal 1040 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698