OLD | NEW |
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 #if V8_TARGET_ARCH_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 |
6 | 6 |
7 #include "src/code-stubs.h" | 7 #include "src/code-stubs.h" |
8 #include "src/api-arguments.h" | 8 #include "src/api-arguments.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 1973 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1984 __ Branch(&done_initialize_count); | 1984 __ Branch(&done_initialize_count); |
1985 | 1985 |
1986 __ bind(¬_array_function); | 1986 __ bind(¬_array_function); |
1987 | 1987 |
1988 CreateWeakCellStub weak_cell_stub(masm->isolate()); | 1988 CreateWeakCellStub weak_cell_stub(masm->isolate()); |
1989 CallStubInRecordCallTarget(masm, &weak_cell_stub); | 1989 CallStubInRecordCallTarget(masm, &weak_cell_stub); |
1990 | 1990 |
1991 __ bind(&done_initialize_count); | 1991 __ bind(&done_initialize_count); |
1992 // Initialize the call counter. | 1992 // Initialize the call counter. |
1993 | 1993 |
1994 __ dsrl(a4, a3, 32 - kPointerSizeLog2); | 1994 __ SmiScale(a4, a3, kPointerSizeLog2); |
1995 __ Daddu(a4, a2, Operand(a4)); | 1995 __ Daddu(a4, a2, Operand(a4)); |
1996 __ li(a5, Operand(Smi::FromInt(1))); | 1996 __ li(a5, Operand(Smi::FromInt(1))); |
| 1997 __ Branch(USE_DELAY_SLOT, &done); |
1997 __ sd(a5, FieldMemOperand(a4, FixedArray::kHeaderSize + kPointerSize)); | 1998 __ sd(a5, FieldMemOperand(a4, FixedArray::kHeaderSize + kPointerSize)); |
1998 __ bind(&done); | |
1999 | 1999 |
2000 __ bind(&done_increment_count); | 2000 __ bind(&done_increment_count); |
2001 | 2001 |
2002 // Increment the call count for monomorphic function calls. | 2002 // Increment the call count for monomorphic function calls. |
2003 __ dsrl(a4, a3, 32 - kPointerSizeLog2); | 2003 __ SmiScale(a4, a3, kPointerSizeLog2); |
2004 __ Daddu(a5, a2, Operand(a4)); | 2004 __ Daddu(a5, a2, Operand(a4)); |
2005 __ ld(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize)); | 2005 __ ld(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize)); |
2006 __ Daddu(a4, a4, Operand(Smi::FromInt(1))); | 2006 __ Daddu(a4, a4, Operand(Smi::FromInt(1))); |
2007 __ sd(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize)); | 2007 __ sd(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize)); |
2008 | 2008 |
2009 __ bind(&done); | 2009 __ bind(&done); |
2010 } | 2010 } |
2011 | 2011 |
2012 | 2012 |
2013 void CallConstructStub::Generate(MacroAssembler* masm) { | 2013 void CallConstructStub::Generate(MacroAssembler* masm) { |
(...skipping 3652 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5666 kStackUnwindSpace, kInvalidStackOffset, | 5666 kStackUnwindSpace, kInvalidStackOffset, |
5667 return_value_operand, NULL); | 5667 return_value_operand, NULL); |
5668 } | 5668 } |
5669 | 5669 |
5670 #undef __ | 5670 #undef __ |
5671 | 5671 |
5672 } // namespace internal | 5672 } // namespace internal |
5673 } // namespace v8 | 5673 } // namespace v8 |
5674 | 5674 |
5675 #endif // V8_TARGET_ARCH_MIPS64 | 5675 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |