OLD | NEW |
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2009 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 4840 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4851 // restore from it in case of changes, which makes it impossible to | 4851 // restore from it in case of changes, which makes it impossible to |
4852 // support moving the C entry code stub. This should be fixed, but currently | 4852 // support moving the C entry code stub. This should be fixed, but currently |
4853 // this is OK because the CEntryStub gets generated so early in the V8 boot | 4853 // this is OK because the CEntryStub gets generated so early in the V8 boot |
4854 // sequence that it is not moving ever. | 4854 // sequence that it is not moving ever. |
4855 __ add(lr, pc, Operand(4)); // compute return address: (pc + 8) + 4 | 4855 __ add(lr, pc, Operand(4)); // compute return address: (pc + 8) + 4 |
4856 __ push(lr); | 4856 __ push(lr); |
4857 #if !defined(__arm__) | 4857 #if !defined(__arm__) |
4858 // Notify the simulator of the transition to C code. | 4858 // Notify the simulator of the transition to C code. |
4859 __ swi(assembler::arm::call_rt_r5); | 4859 __ swi(assembler::arm::call_rt_r5); |
4860 #else /* !defined(__arm__) */ | 4860 #else /* !defined(__arm__) */ |
4861 __ mov(pc, Operand(r5)); | 4861 __ Jump(r5); |
4862 #endif /* !defined(__arm__) */ | 4862 #endif /* !defined(__arm__) */ |
4863 | 4863 |
4864 if (always_allocate) { | 4864 if (always_allocate) { |
4865 // It's okay to clobber r2 and r3 here. Don't mess with r0 and r1 | 4865 // It's okay to clobber r2 and r3 here. Don't mess with r0 and r1 |
4866 // though (contain the result). | 4866 // though (contain the result). |
4867 __ mov(r2, Operand(scope_depth)); | 4867 __ mov(r2, Operand(scope_depth)); |
4868 __ ldr(r3, MemOperand(r2)); | 4868 __ ldr(r3, MemOperand(r2)); |
4869 __ sub(r3, r3, Operand(1)); | 4869 __ sub(r3, r3, Operand(1)); |
4870 __ str(r3, MemOperand(r2)); | 4870 __ str(r3, MemOperand(r2)); |
4871 } | 4871 } |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5220 __ mov(r2, Operand(0)); | 5220 __ mov(r2, Operand(0)); |
5221 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); | 5221 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); |
5222 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)), | 5222 __ Jump(Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline)), |
5223 RelocInfo::CODE_TARGET); | 5223 RelocInfo::CODE_TARGET); |
5224 } | 5224 } |
5225 | 5225 |
5226 | 5226 |
5227 #undef __ | 5227 #undef __ |
5228 | 5228 |
5229 } } // namespace v8::internal | 5229 } } // namespace v8::internal |
OLD | NEW |