OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1987 __ ldr(r4, MemOperand(sp, offset_to_argv)); | 1987 __ ldr(r4, MemOperand(sp, offset_to_argv)); |
1988 | 1988 |
1989 // Push a frame with special values setup to mark it as an entry frame. | 1989 // Push a frame with special values setup to mark it as an entry frame. |
1990 // r0: code entry | 1990 // r0: code entry |
1991 // r1: function | 1991 // r1: function |
1992 // r2: receiver | 1992 // r2: receiver |
1993 // r3: argc | 1993 // r3: argc |
1994 // r4: argv | 1994 // r4: argv |
1995 Isolate* isolate = masm->isolate(); | 1995 Isolate* isolate = masm->isolate(); |
1996 int marker = is_construct ? StackFrame::ENTRY_CONSTRUCT : StackFrame::ENTRY; | 1996 int marker = is_construct ? StackFrame::ENTRY_CONSTRUCT : StackFrame::ENTRY; |
1997 __ mov(r8, Operand(Smi::FromInt(marker))); | 1997 if (FLAG_enable_ool_constant_pool) { |
| 1998 __ mov(r8, Operand(Smi::FromInt(marker))); |
| 1999 } |
| 2000 __ mov(r7, Operand(Smi::FromInt(marker))); |
1998 __ mov(r6, Operand(Smi::FromInt(marker))); | 2001 __ mov(r6, Operand(Smi::FromInt(marker))); |
1999 __ mov(r5, | 2002 __ mov(r5, |
2000 Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate))); | 2003 Operand(ExternalReference(Isolate::kCEntryFPAddress, isolate))); |
2001 __ ldr(r5, MemOperand(r5)); | 2004 __ ldr(r5, MemOperand(r5)); |
2002 __ mov(ip, Operand(-1)); // Push a bad frame pointer to fail if it is used. | 2005 __ mov(ip, Operand(-1)); // Push a bad frame pointer to fail if it is used. |
2003 __ Push(ip, r8, r6, r5); | 2006 __ stm(db_w, sp, r5.bit() | r6.bit() | r7.bit() | |
| 2007 (FLAG_enable_ool_constant_pool ? r8.bit() : 0) | |
| 2008 ip.bit()); |
2004 | 2009 |
2005 // Set up frame pointer for the frame to be pushed. | 2010 // Set up frame pointer for the frame to be pushed. |
2006 __ add(fp, sp, Operand(-EntryFrameConstants::kCallerFPOffset)); | 2011 __ add(fp, sp, Operand(-EntryFrameConstants::kCallerFPOffset)); |
2007 | 2012 |
2008 // If this is the outermost JS call, set js_entry_sp value. | 2013 // If this is the outermost JS call, set js_entry_sp value. |
2009 Label non_outermost_js; | 2014 Label non_outermost_js; |
2010 ExternalReference js_entry_sp(Isolate::kJSEntrySPAddress, isolate); | 2015 ExternalReference js_entry_sp(Isolate::kJSEntrySPAddress, isolate); |
2011 __ mov(r5, Operand(ExternalReference(js_entry_sp))); | 2016 __ mov(r5, Operand(ExternalReference(js_entry_sp))); |
2012 __ ldr(r6, MemOperand(r5)); | 2017 __ ldr(r6, MemOperand(r5)); |
2013 __ cmp(r6, Operand::Zero()); | 2018 __ cmp(r6, Operand::Zero()); |
(...skipping 4118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6132 __ bind(&fast_elements_case); | 6137 __ bind(&fast_elements_case); |
6133 GenerateCase(masm, FAST_ELEMENTS); | 6138 GenerateCase(masm, FAST_ELEMENTS); |
6134 } | 6139 } |
6135 | 6140 |
6136 | 6141 |
6137 #undef __ | 6142 #undef __ |
6138 | 6143 |
6139 } } // namespace v8::internal | 6144 } } // namespace v8::internal |
6140 | 6145 |
6141 #endif // V8_TARGET_ARCH_ARM | 6146 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |