OLD | NEW |
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 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 FrameElement::RegisterElement(esi, FrameElement::NOT_SYNCED); | 743 FrameElement::RegisterElement(esi, FrameElement::NOT_SYNCED); |
744 } else if (current.is_memory()) { | 744 } else if (current.is_memory()) { |
745 Use(esi); | 745 Use(esi); |
746 __ mov(esi, Operand(ebp, fp_relative(context_index()))); | 746 __ mov(esi, Operand(ebp, fp_relative(context_index()))); |
747 elements_[context_index()] = | 747 elements_[context_index()] = |
748 FrameElement::RegisterElement(esi, FrameElement::SYNCED); | 748 FrameElement::RegisterElement(esi, FrameElement::SYNCED); |
749 } | 749 } |
750 } | 750 } |
751 | 751 |
752 | 752 |
| 753 void VirtualFrame::PushReceiverSlotAddress() { |
| 754 Result temp = cgen_->allocator()->Allocate(); |
| 755 ASSERT(temp.is_valid()); |
| 756 __ lea(temp.reg(), ParameterAt(-1)); |
| 757 Push(&temp); |
| 758 } |
| 759 |
| 760 |
753 void VirtualFrame::LoadFrameSlotAt(int index) { | 761 void VirtualFrame::LoadFrameSlotAt(int index) { |
754 ASSERT(index >= 0); | 762 ASSERT(index >= 0); |
755 ASSERT(index < elements_.length()); | 763 ASSERT(index < elements_.length()); |
756 | 764 |
757 FrameElement element = elements_[index]; | 765 FrameElement element = elements_[index]; |
758 | 766 |
759 if (element.is_memory()) { | 767 if (element.is_memory()) { |
760 ASSERT(index <= stack_pointer_); | 768 ASSERT(index <= stack_pointer_); |
761 // Eagerly load memory elements into a register. The element at | 769 // Eagerly load memory elements into a register. The element at |
762 // the index and the new top of the frame are backed by the same | 770 // the index and the new top of the frame are backed by the same |
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1049 return false; | 1057 return false; |
1050 } | 1058 } |
1051 } | 1059 } |
1052 return true; | 1060 return true; |
1053 } | 1061 } |
1054 #endif | 1062 #endif |
1055 | 1063 |
1056 #undef __ | 1064 #undef __ |
1057 | 1065 |
1058 } } // namespace v8::internal | 1066 } } // namespace v8::internal |
OLD | NEW |