OLD | NEW |
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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 // Moving memory-backed copies to memory requires a spare register | 237 // Moving memory-backed copies to memory requires a spare register |
238 // for the memory-to-memory moves. Since we are performing a merge, | 238 // for the memory-to-memory moves. Since we are performing a merge, |
239 // we use esi (which is already saved in the frame). We keep track | 239 // we use esi (which is already saved in the frame). We keep track |
240 // of the index of the frame element esi is caching or kIllegalIndex | 240 // of the index of the frame element esi is caching or kIllegalIndex |
241 // if esi has not been disturbed. | 241 // if esi has not been disturbed. |
242 int esi_caches = kIllegalIndex; | 242 int esi_caches = kIllegalIndex; |
243 // A "singleton" memory element. | 243 // A "singleton" memory element. |
244 FrameElement memory_element = FrameElement::MemoryElement(); | 244 FrameElement memory_element = FrameElement::MemoryElement(); |
245 // Loop downward from the stack pointer or the top of the frame if | 245 // Loop downward from the stack pointer or the top of the frame if |
246 // the stack pointer is floating above the frame. | 246 // the stack pointer is floating above the frame. |
247 int start = Min(stack_pointer_, elements_.length() - 1); | 247 int start = Min(static_cast<int>(stack_pointer_), elements_.length() - 1); |
248 for (int i = start; i >= 0; i--) { | 248 for (int i = start; i >= 0; i--) { |
249 FrameElement target = expected->elements_[i]; | 249 FrameElement target = expected->elements_[i]; |
250 if (target.is_memory()) { | 250 if (target.is_memory()) { |
251 FrameElement source = elements_[i]; | 251 FrameElement source = elements_[i]; |
252 switch (source.type()) { | 252 switch (source.type()) { |
253 case FrameElement::INVALID: | 253 case FrameElement::INVALID: |
254 // Not a legal merge move. | 254 // Not a legal merge move. |
255 UNREACHABLE(); | 255 UNREACHABLE(); |
256 break; | 256 break; |
257 | 257 |
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1045 ASSERT(stack_pointer_ == elements_.length() - 1); | 1045 ASSERT(stack_pointer_ == elements_.length() - 1); |
1046 elements_.Add(FrameElement::MemoryElement()); | 1046 elements_.Add(FrameElement::MemoryElement()); |
1047 stack_pointer_++; | 1047 stack_pointer_++; |
1048 __ push(immediate); | 1048 __ push(immediate); |
1049 } | 1049 } |
1050 | 1050 |
1051 | 1051 |
1052 #undef __ | 1052 #undef __ |
1053 | 1053 |
1054 } } // namespace v8::internal | 1054 } } // namespace v8::internal |
OLD | NEW |