1 // Copyright 2017 the V8 project authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "src/builtins/builtins.h" 6 #include "src/globals.h" 7 #include "src/macro-assembler.h" 8 9 namespace v8 { 10 namespace internal { 11 Generate_InterpreterPushArgsThenCall(MacroAssembler * masm)12void Builtins::Generate_InterpreterPushArgsThenCall(MacroAssembler* masm) { 13 return Generate_InterpreterPushArgsThenCallImpl( 14 masm, ConvertReceiverMode::kAny, InterpreterPushArgsMode::kOther); 15 } 16 Generate_InterpreterPushUndefinedAndArgsThenCall(MacroAssembler * masm)17void Builtins::Generate_InterpreterPushUndefinedAndArgsThenCall( 18 MacroAssembler* masm) { 19 return Generate_InterpreterPushArgsThenCallImpl( 20 masm, ConvertReceiverMode::kNullOrUndefined, 21 InterpreterPushArgsMode::kOther); 22 } 23 Generate_InterpreterPushArgsThenCallWithFinalSpread(MacroAssembler * masm)24void Builtins::Generate_InterpreterPushArgsThenCallWithFinalSpread( 25 MacroAssembler* masm) { 26 return Generate_InterpreterPushArgsThenCallImpl( 27 masm, ConvertReceiverMode::kAny, 28 InterpreterPushArgsMode::kWithFinalSpread); 29 } 30 Generate_InterpreterPushArgsThenConstruct(MacroAssembler * masm)31void Builtins::Generate_InterpreterPushArgsThenConstruct(MacroAssembler* masm) { 32 return Generate_InterpreterPushArgsThenConstructImpl( 33 masm, InterpreterPushArgsMode::kOther); 34 } 35 Generate_InterpreterPushArgsThenConstructWithFinalSpread(MacroAssembler * masm)36void Builtins::Generate_InterpreterPushArgsThenConstructWithFinalSpread( 37 MacroAssembler* masm) { 38 return Generate_InterpreterPushArgsThenConstructImpl( 39 masm, InterpreterPushArgsMode::kWithFinalSpread); 40 } 41 Generate_InterpreterPushArgsThenConstructArrayFunction(MacroAssembler * masm)42void Builtins::Generate_InterpreterPushArgsThenConstructArrayFunction( 43 MacroAssembler* masm) { 44 return Generate_InterpreterPushArgsThenConstructImpl( 45 masm, InterpreterPushArgsMode::kArrayFunction); 46 } 47 48 } // namespace internal 49 } // namespace v8 50