| Index: src/virtual-frame-inl.h
|
| ===================================================================
|
| --- src/virtual-frame-inl.h (revision 4259)
|
| +++ src/virtual-frame-inl.h (working copy)
|
| @@ -30,62 +30,16 @@
|
|
|
| #include "virtual-frame.h"
|
|
|
| +#if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64
|
| +#include "virtual-frame-heavy-inl.h"
|
| +#else
|
| +#include "virtual-frame-light-inl.h"
|
| +#endif
|
| +
|
| +
|
| namespace v8 {
|
| namespace internal {
|
|
|
| -
|
| -// On entry to a function, the virtual frame already contains the receiver,
|
| -// the parameters, and a return address. All frame elements are in memory.
|
| -VirtualFrame::VirtualFrame()
|
| - : elements_(parameter_count() + local_count() + kPreallocatedElements),
|
| - stack_pointer_(parameter_count() + 1) { // 0-based index of TOS.
|
| - for (int i = 0; i <= stack_pointer_; i++) {
|
| - elements_.Add(FrameElement::MemoryElement(NumberInfo::Unknown()));
|
| - }
|
| - for (int i = 0; i < RegisterAllocator::kNumRegisters; i++) {
|
| - register_locations_[i] = kIllegalIndex;
|
| - }
|
| -}
|
| -
|
| -
|
| -// When cloned, a frame is a deep copy of the original.
|
| -VirtualFrame::VirtualFrame(VirtualFrame* original)
|
| - : elements_(original->element_count()),
|
| - stack_pointer_(original->stack_pointer_) {
|
| - elements_.AddAll(original->elements_);
|
| - // Copy register locations from original.
|
| - memcpy(®ister_locations_,
|
| - original->register_locations_,
|
| - sizeof(register_locations_));
|
| -}
|
| -
|
| -
|
| -void VirtualFrame::PushFrameSlotAt(int index) {
|
| - elements_.Add(CopyElementAt(index));
|
| -}
|
| -
|
| -
|
| -void VirtualFrame::Push(Register reg, NumberInfo info) {
|
| - if (is_used(reg)) {
|
| - int index = register_location(reg);
|
| - FrameElement element = CopyElementAt(index, info);
|
| - elements_.Add(element);
|
| - } else {
|
| - Use(reg, element_count());
|
| - FrameElement element =
|
| - FrameElement::RegisterElement(reg, FrameElement::NOT_SYNCED, info);
|
| - elements_.Add(element);
|
| - }
|
| -}
|
| -
|
| -
|
| -void VirtualFrame::Push(Handle<Object> value) {
|
| - FrameElement element =
|
| - FrameElement::ConstantElement(value, FrameElement::NOT_SYNCED);
|
| - elements_.Add(element);
|
| -}
|
| -
|
| -
|
| void VirtualFrame::Push(Smi* value) {
|
| Push(Handle<Object> (value));
|
| }
|
| @@ -102,29 +56,6 @@
|
| }
|
|
|
|
|
| -bool VirtualFrame::Equals(VirtualFrame* other) {
|
| -#ifdef DEBUG
|
| - for (int i = 0; i < RegisterAllocator::kNumRegisters; i++) {
|
| - if (register_location(i) != other->register_location(i)) {
|
| - return false;
|
| - }
|
| - }
|
| - if (element_count() != other->element_count()) return false;
|
| -#endif
|
| - if (stack_pointer_ != other->stack_pointer_) return false;
|
| - for (int i = 0; i < element_count(); i++) {
|
| - if (!elements_[i].Equals(other->elements_[i])) return false;
|
| - }
|
| -
|
| - return true;
|
| -}
|
| -
|
| -
|
| -void VirtualFrame::SetTypeForLocalAt(int index, NumberInfo info) {
|
| - elements_[local0_index() + index].set_number_info(info);
|
| -}
|
| -
|
| -
|
| void VirtualFrame::SetTypeForParamAt(int index, NumberInfo info) {
|
| elements_[param0_index() + index].set_number_info(info);
|
| }
|
|
|