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

Side by Side Diff: src/mips/builtins-mips.cc

Issue 920173002: MIPS: new classes: no longer experimental. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@gsub-2014-02-12-fdcf3e59ba4af1aa3c5b31a18e615169c97958ab
Patch Set: Fixed pop order. Created 5 years, 10 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
« no previous file with comments | « no previous file | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 5
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #if V8_TARGET_ARCH_MIPS 9 #if V8_TARGET_ARCH_MIPS
10 10
(...skipping 789 matching lines...) Expand 10 before | Expand all | Expand 10 after
800 __ Branch(&entry); 800 __ Branch(&entry);
801 __ bind(&loop); 801 __ bind(&loop);
802 __ sll(at, t0, kPointerSizeLog2 - 1); 802 __ sll(at, t0, kPointerSizeLog2 - 1);
803 __ Addu(at, a2, Operand(at)); 803 __ Addu(at, a2, Operand(at));
804 __ lw(at, MemOperand(at)); 804 __ lw(at, MemOperand(at));
805 __ push(at); 805 __ push(at);
806 __ bind(&entry); 806 __ bind(&entry);
807 __ Subu(t0, t0, Operand(2)); 807 __ Subu(t0, t0, Operand(2));
808 __ Branch(&loop, ge, t0, Operand(zero_reg)); 808 __ Branch(&loop, ge, t0, Operand(zero_reg));
809 809
810 __ Addu(a0, a0, Operand(1));
811
812 // Handle step in.
813 Label skip_step_in;
814 ExternalReference debug_step_in_fp =
815 ExternalReference::debug_step_in_fp_address(masm->isolate());
816 __ li(a2, Operand(debug_step_in_fp));
817 __ lw(a2, MemOperand(a2));
818 __ Branch(&skip_step_in, eq, a2, Operand(zero_reg));
819
820 __ Push(a0, a1, a1);
821 __ CallRuntime(Runtime::kHandleStepInForDerivedConstructors, 1);
822 __ Pop(a0, a1);
823
824 __ bind(&skip_step_in);
825
810 // Call the function. 826 // Call the function.
811 // a0: number of arguments 827 // a0: number of arguments
812 // a1: constructor function 828 // a1: constructor function
813 __ Addu(a0, a0, Operand(1));
814 ParameterCount actual(a0); 829 ParameterCount actual(a0);
815 __ InvokeFunction(a1, actual, CALL_FUNCTION, NullCallWrapper()); 830 __ InvokeFunction(a1, actual, CALL_FUNCTION, NullCallWrapper());
816 831
817 // Restore context from the frame. 832 // Restore context from the frame.
818 // v0: result 833 // v0: result
819 // sp[0]: number of arguments (smi-tagged) 834 // sp[0]: number of arguments (smi-tagged)
820 __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset)); 835 __ lw(cp, MemOperand(fp, StandardFrameConstants::kContextOffset));
821 __ lw(a1, MemOperand(sp, 0)); 836 __ lw(a1, MemOperand(sp, 0));
822 837
823 // Leave construct frame. 838 // Leave construct frame.
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 __ break_(0xCC); 1676 __ break_(0xCC);
1662 } 1677 }
1663 } 1678 }
1664 1679
1665 1680
1666 #undef __ 1681 #undef __
1667 1682
1668 } } // namespace v8::internal 1683 } } // namespace v8::internal
1669 1684
1670 #endif // V8_TARGET_ARCH_MIPS 1685 #endif // V8_TARGET_ARCH_MIPS
OLDNEW
« no previous file with comments | « no previous file | src/mips/full-codegen-mips.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698