OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 988 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
999 | 999 |
1000 // Clear the context before we push it when entering the JS frame. | 1000 // Clear the context before we push it when entering the JS frame. |
1001 __ mov(cp, Operand(0, RelocInfo::NONE)); | 1001 __ mov(cp, Operand(0, RelocInfo::NONE)); |
1002 | 1002 |
1003 // Enter an internal frame. | 1003 // Enter an internal frame. |
1004 __ EnterInternalFrame(); | 1004 __ EnterInternalFrame(); |
1005 | 1005 |
1006 // Set up the context from the function argument. | 1006 // Set up the context from the function argument. |
1007 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); | 1007 __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset)); |
1008 | 1008 |
1009 // Set up the roots register. | 1009 __ InitializeRootRegister(); |
1010 ExternalReference roots_address = | |
1011 ExternalReference::roots_address(masm->isolate()); | |
1012 __ mov(r10, Operand(roots_address)); | |
1013 | 1010 |
1014 // Push the function and the receiver onto the stack. | 1011 // Push the function and the receiver onto the stack. |
1015 __ push(r1); | 1012 __ push(r1); |
1016 __ push(r2); | 1013 __ push(r2); |
1017 | 1014 |
1018 // Copy arguments to the stack in a loop. | 1015 // Copy arguments to the stack in a loop. |
1019 // r1: function | 1016 // r1: function |
1020 // r3: argc | 1017 // r3: argc |
1021 // r4: argv, i.e. points to first arg | 1018 // r4: argv, i.e. points to first arg |
1022 Label loop, entry; | 1019 Label loop, entry; |
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1686 __ bind(&dont_adapt_arguments); | 1683 __ bind(&dont_adapt_arguments); |
1687 __ Jump(r3); | 1684 __ Jump(r3); |
1688 } | 1685 } |
1689 | 1686 |
1690 | 1687 |
1691 #undef __ | 1688 #undef __ |
1692 | 1689 |
1693 } } // namespace v8::internal | 1690 } } // namespace v8::internal |
1694 | 1691 |
1695 #endif // V8_TARGET_ARCH_ARM | 1692 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |