summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/raw-machine-assembler.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-12-05 16:41:55 +0100
committerMichaël Zasso <targos@protonmail.com>2017-12-06 12:52:07 +0100
commit1854ba04e9a68f062beb299dd6e1479279b26363 (patch)
treed5b2df9b8c1deb6388f7a728fca8e1c98c779abe /deps/v8/src/compiler/raw-machine-assembler.cc
parentb52c23b75f96e1c9d2c7b3a7e5619170d0a0d8e1 (diff)
downloadandroid-node-v8-1854ba04e9a68f062beb299dd6e1479279b26363.tar.gz
android-node-v8-1854ba04e9a68f062beb299dd6e1479279b26363.tar.bz2
android-node-v8-1854ba04e9a68f062beb299dd6e1479279b26363.zip
deps: update V8 to 6.3.292.46
PR-URL: https://github.com/nodejs/node/pull/16271 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/src/compiler/raw-machine-assembler.cc')
-rw-r--r--deps/v8/src/compiler/raw-machine-assembler.cc62
1 files changed, 55 insertions, 7 deletions
diff --git a/deps/v8/src/compiler/raw-machine-assembler.cc b/deps/v8/src/compiler/raw-machine-assembler.cc
index 8a8be06fa5..b685fc5d66 100644
--- a/deps/v8/src/compiler/raw-machine-assembler.cc
+++ b/deps/v8/src/compiler/raw-machine-assembler.cc
@@ -7,7 +7,7 @@
#include "src/compiler/node-properties.h"
#include "src/compiler/pipeline.h"
#include "src/compiler/scheduler.h"
-#include "src/objects-inl.h"
+#include "src/factory-inl.h"
namespace v8 {
namespace internal {
@@ -35,6 +35,14 @@ RawMachineAssembler::RawMachineAssembler(
graph->SetEnd(graph->NewNode(common_.End(0)));
}
+Node* RawMachineAssembler::NullConstant() {
+ return HeapConstant(isolate()->factory()->null_value());
+}
+
+Node* RawMachineAssembler::UndefinedConstant() {
+ return HeapConstant(isolate()->factory()->undefined_value());
+}
+
Node* RawMachineAssembler::RelocatableIntPtrConstant(intptr_t value,
RelocInfo::Mode rmode) {
return kPointerSize == 8
@@ -231,14 +239,16 @@ Node* RawMachineAssembler::CallCFunction1(MachineType return_type,
}
Node* RawMachineAssembler::CallCFunction1WithCallerSavedRegisters(
- MachineType return_type, MachineType arg0_type, Node* function,
- Node* arg0) {
+ MachineType return_type, MachineType arg0_type, Node* function, Node* arg0,
+ SaveFPRegsMode mode) {
MachineSignature::Builder builder(zone(), 1, 1);
builder.AddReturn(return_type);
builder.AddParam(arg0_type);
- const CallDescriptor* descriptor =
+ CallDescriptor* descriptor =
Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+ descriptor->set_save_fp_mode(mode);
+
return AddNode(common()->CallWithCallerSavedRegisters(descriptor), function,
arg0);
}
@@ -275,19 +285,57 @@ Node* RawMachineAssembler::CallCFunction3(MachineType return_type,
Node* RawMachineAssembler::CallCFunction3WithCallerSavedRegisters(
MachineType return_type, MachineType arg0_type, MachineType arg1_type,
- MachineType arg2_type, Node* function, Node* arg0, Node* arg1, Node* arg2) {
+ MachineType arg2_type, Node* function, Node* arg0, Node* arg1, Node* arg2,
+ SaveFPRegsMode mode) {
MachineSignature::Builder builder(zone(), 1, 3);
builder.AddReturn(return_type);
builder.AddParam(arg0_type);
builder.AddParam(arg1_type);
builder.AddParam(arg2_type);
- const CallDescriptor* descriptor =
+ CallDescriptor* descriptor =
Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+ descriptor->set_save_fp_mode(mode);
+
return AddNode(common()->CallWithCallerSavedRegisters(descriptor), function,
arg0, arg1, arg2);
}
+Node* RawMachineAssembler::CallCFunction4(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, Node* function, Node* arg0,
+ Node* arg1, Node* arg2, Node* arg3) {
+ MachineSignature::Builder builder(zone(), 1, 4);
+ builder.AddReturn(return_type);
+ builder.AddParam(arg0_type);
+ builder.AddParam(arg1_type);
+ builder.AddParam(arg2_type);
+ builder.AddParam(arg3_type);
+ const CallDescriptor* descriptor =
+ Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+
+ return AddNode(common()->Call(descriptor), function, arg0, arg1, arg2, arg3);
+}
+
+Node* RawMachineAssembler::CallCFunction5(
+ MachineType return_type, MachineType arg0_type, MachineType arg1_type,
+ MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
+ Node* function, Node* arg0, Node* arg1, Node* arg2, Node* arg3,
+ Node* arg4) {
+ MachineSignature::Builder builder(zone(), 1, 5);
+ builder.AddReturn(return_type);
+ builder.AddParam(arg0_type);
+ builder.AddParam(arg1_type);
+ builder.AddParam(arg2_type);
+ builder.AddParam(arg3_type);
+ builder.AddParam(arg4_type);
+ const CallDescriptor* descriptor =
+ Linkage::GetSimplifiedCDescriptor(zone(), builder.Build());
+
+ return AddNode(common()->Call(descriptor), function, arg0, arg1, arg2, arg3,
+ arg4);
+}
+
Node* RawMachineAssembler::CallCFunction6(
MachineType return_type, MachineType arg0_type, MachineType arg1_type,
MachineType arg2_type, MachineType arg3_type, MachineType arg4_type,
@@ -367,7 +415,7 @@ BasicBlock* RawMachineAssembler::EnsureBlock(RawMachineLabel* label) {
}
void RawMachineAssembler::Bind(RawMachineLabel* label) {
- DCHECK(current_block_ == nullptr);
+ DCHECK_NULL(current_block_);
DCHECK(!label->bound_);
label->bound_ = true;
current_block_ = EnsureBlock(label);