| Index: src/arm/virtual-frame-arm.cc
|
| ===================================================================
|
| --- src/arm/virtual-frame-arm.cc (revision 2654)
|
| +++ src/arm/virtual-frame-arm.cc (working copy)
|
| @@ -76,72 +76,23 @@
|
|
|
|
|
| void VirtualFrame::MergeTo(VirtualFrame* expected) {
|
| - Comment cmnt(masm(), "[ Merge frame");
|
| - // We should always be merging the code generator's current frame to an
|
| - // expected frame.
|
| - ASSERT(cgen()->frame() == this);
|
| -
|
| - // Adjust the stack pointer upward (toward the top of the virtual
|
| - // frame) if necessary.
|
| - if (stack_pointer_ < expected->stack_pointer_) {
|
| - int difference = expected->stack_pointer_ - stack_pointer_;
|
| - stack_pointer_ = expected->stack_pointer_;
|
| - __ sub(sp, sp, Operand(difference * kPointerSize));
|
| - }
|
| -
|
| - MergeMoveRegistersToMemory(expected);
|
| - MergeMoveRegistersToRegisters(expected);
|
| - MergeMoveMemoryToRegisters(expected);
|
| -
|
| - // Fix any sync bit problems from the bottom-up, stopping when we
|
| - // hit the stack pointer or the top of the frame if the stack
|
| - // pointer is floating above the frame.
|
| - int limit = Min(static_cast<int>(stack_pointer_), element_count() - 1);
|
| - for (int i = 0; i <= limit; i++) {
|
| - FrameElement source = elements_[i];
|
| - FrameElement target = expected->elements_[i];
|
| - if (source.is_synced() && !target.is_synced()) {
|
| - elements_[i].clear_sync();
|
| - } else if (!source.is_synced() && target.is_synced()) {
|
| - SyncElementAt(i);
|
| - }
|
| - }
|
| -
|
| - // Adjust the stack point downard if necessary.
|
| - if (stack_pointer_ > expected->stack_pointer_) {
|
| - int difference = stack_pointer_ - expected->stack_pointer_;
|
| - stack_pointer_ = expected->stack_pointer_;
|
| - __ add(sp, sp, Operand(difference * kPointerSize));
|
| - }
|
| -
|
| - // At this point, the frames should be identical.
|
| + // ARM frames are currently always in memory.
|
| ASSERT(Equals(expected));
|
| }
|
|
|
|
|
| void VirtualFrame::MergeMoveRegistersToMemory(VirtualFrame* expected) {
|
| - ASSERT(stack_pointer_ >= expected->stack_pointer_);
|
| -
|
| - // Move registers, constants, and copies to memory. Perform moves
|
| - // from the top downward in the frame in order to leave the backing
|
| - // stores of copies in registers.
|
| - // On ARM, all elements are in memory.
|
| -
|
| -#ifdef DEBUG
|
| - int start = Min(static_cast<int>(stack_pointer_), element_count() - 1);
|
| - for (int i = start; i >= 0; i--) {
|
| - ASSERT(elements_[i].is_memory());
|
| - ASSERT(expected->elements_[i].is_memory());
|
| - }
|
| -#endif
|
| + UNREACHABLE();
|
| }
|
|
|
|
|
| void VirtualFrame::MergeMoveRegistersToRegisters(VirtualFrame* expected) {
|
| + UNREACHABLE();
|
| }
|
|
|
|
|
| void VirtualFrame::MergeMoveMemoryToRegisters(VirtualFrame* expected) {
|
| + UNREACHABLE();
|
| }
|
|
|
|
|
|
|