summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/raw-machine-assembler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/raw-machine-assembler.cc')
-rw-r--r--deps/v8/src/compiler/raw-machine-assembler.cc12
1 files changed, 11 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/raw-machine-assembler.cc b/deps/v8/src/compiler/raw-machine-assembler.cc
index c709729081..7031437cc2 100644
--- a/deps/v8/src/compiler/raw-machine-assembler.cc
+++ b/deps/v8/src/compiler/raw-machine-assembler.cc
@@ -705,7 +705,8 @@ namespace {
Node* CallCFunctionImpl(
RawMachineAssembler* rasm, Node* function, MachineType return_type,
std::initializer_list<RawMachineAssembler::CFunctionArg> args,
- bool caller_saved_regs, SaveFPRegsMode mode) {
+ bool caller_saved_regs, SaveFPRegsMode mode,
+ bool has_function_descriptor = kHasFunctionDescriptor) {
static constexpr std::size_t kNumCArgs = 10;
MachineSignature::Builder builder(rasm->zone(), 1, args.size());
@@ -719,6 +720,8 @@ Node* CallCFunctionImpl(
if (caller_saved_regs) call_descriptor->set_save_fp_mode(mode);
+ call_descriptor->set_has_function_descriptor(has_function_descriptor);
+
base::SmallVector<Node*, kNumCArgs> nodes(args.size() + 1);
nodes[0] = function;
std::transform(
@@ -739,6 +742,13 @@ Node* RawMachineAssembler::CallCFunction(
kDontSaveFPRegs);
}
+Node* RawMachineAssembler::CallCFunctionWithoutFunctionDescriptor(
+ Node* function, MachineType return_type,
+ std::initializer_list<RawMachineAssembler::CFunctionArg> args) {
+ return CallCFunctionImpl(this, function, return_type, args, false,
+ kDontSaveFPRegs, kNoFunctionDescriptor);
+}
+
Node* RawMachineAssembler::CallCFunctionWithCallerSavedRegisters(
Node* function, MachineType return_type, SaveFPRegsMode mode,
std::initializer_list<RawMachineAssembler::CFunctionArg> args) {