OLD | NEW |
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 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 626 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
637 __ add(sp, sp, Operand(kPointerSize)); | 637 __ add(sp, sp, Operand(kPointerSize)); |
638 | 638 |
639 // 6. Get the code for the function or the non-function builtin. | 639 // 6. Get the code for the function or the non-function builtin. |
640 // If number of expected arguments matches, then call. Otherwise restart | 640 // If number of expected arguments matches, then call. Otherwise restart |
641 // the arguments adaptor stub. | 641 // the arguments adaptor stub. |
642 // r0: actual number of arguments | 642 // r0: actual number of arguments |
643 // r1: function | 643 // r1: function |
644 { Label invoke; | 644 { Label invoke; |
645 __ tst(r1, r1); | 645 __ tst(r1, r1); |
646 __ b(ne, &invoke); | 646 __ b(ne, &invoke); |
647 //__ stop("Generate_ArgumentsAdaptorTrampoline - non-function call"); | 647 // __ stop("Generate_ArgumentsAdaptorTrampoline - non-function call"); |
648 __ mov(r2, Operand(0)); // expected arguments is 0 for CALL_NON_FUNCTION | 648 __ mov(r2, Operand(0)); // expected arguments is 0 for CALL_NON_FUNCTION |
649 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); | 649 __ GetBuiltinEntry(r3, Builtins::CALL_NON_FUNCTION); |
650 __ b(&enough); | 650 __ b(&enough); |
651 | 651 |
652 __ bind(&invoke); | 652 __ bind(&invoke); |
653 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); | 653 __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset)); |
654 __ ldr(r2, | 654 __ ldr(r2, |
655 FieldMemOperand(r3, | 655 FieldMemOperand(r3, |
656 SharedFunctionInfo::kFormalParameterCountOffset)); | 656 SharedFunctionInfo::kFormalParameterCountOffset)); |
657 __ ldr(r3, | 657 __ ldr(r3, |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
826 } | 826 } |
827 | 827 |
828 void Builtins::Generate_StubNoRegisters_DebugBreak(MacroAssembler* masm) { | 828 void Builtins::Generate_StubNoRegisters_DebugBreak(MacroAssembler* masm) { |
829 // Generate nothing as CodeStub CallFunction is not used on ARM. | 829 // Generate nothing as CodeStub CallFunction is not used on ARM. |
830 } | 830 } |
831 | 831 |
832 | 832 |
833 #undef __ | 833 #undef __ |
834 | 834 |
835 } } // namespace v8::internal | 835 } } // namespace v8::internal |
OLD | NEW |