Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/compiler/js-graph.cc b/src/compiler/js-graph.cc
index 98ca7aa..229169f 100644
--- a/src/compiler/js-graph.cc
+++ b/src/compiler/js-graph.cc
@@ -14,6 +14,15 @@
#define CACHED(name, expr) \
cached_nodes_[name] ? cached_nodes_[name] : (cached_nodes_[name] = (expr))
+Node* JSGraph::AllocateInNewSpaceStubConstant() {
+ return CACHED(kAllocateInNewSpaceStubConstant,
+ HeapConstant(isolate()->builtins()->AllocateInNewSpace()));
+}
+
+Node* JSGraph::AllocateInOldSpaceStubConstant() {
+ return CACHED(kAllocateInOldSpaceStubConstant,
+ HeapConstant(isolate()->builtins()->AllocateInOldSpace()));
+}
Node* JSGraph::CEntryStubConstant(int result_size) {
if (result_size == 1) {
@@ -29,11 +38,21 @@
HeapConstant(factory()->empty_fixed_array()));
}
+Node* JSGraph::HeapNumberMapConstant() {
+ return CACHED(kHeapNumberMapConstant,
+ HeapConstant(factory()->heap_number_map()));
+}
+
Node* JSGraph::OptimizedOutConstant() {
return CACHED(kOptimizedOutConstant,
HeapConstant(factory()->optimized_out()));
}
+Node* JSGraph::StaleRegisterConstant() {
+ return CACHED(kStaleRegisterConstant,
+ HeapConstant(factory()->stale_register()));
+}
+
Node* JSGraph::UndefinedConstant() {
return CACHED(kUndefinedConstant, HeapConstant(factory()->undefined_value()));
}
@@ -76,9 +95,6 @@
Node* JSGraph::HeapConstant(Handle<HeapObject> value) {
- if (value->IsConsString()) {
- value = String::Flatten(Handle<String>::cast(value), TENURED);
- }
Node** loc = cache_.FindHeapConstant(value);
if (*loc == nullptr) {
*loc = graph()->NewNode(common()->HeapConstant(value));
@@ -139,6 +155,28 @@
return *loc;
}
+Node* JSGraph::RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode) {
+ Node** loc = cache_.FindRelocatableInt32Constant(value);
+ if (*loc == nullptr) {
+ *loc = graph()->NewNode(common()->RelocatableInt32Constant(value, rmode));
+ }
+ return *loc;
+}
+
+Node* JSGraph::RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode) {
+ Node** loc = cache_.FindRelocatableInt64Constant(value);
+ if (*loc == nullptr) {
+ *loc = graph()->NewNode(common()->RelocatableInt64Constant(value, rmode));
+ }
+ return *loc;
+}
+
+Node* JSGraph::RelocatableIntPtrConstant(intptr_t value,
+ RelocInfo::Mode rmode) {
+ return kPointerSize == 8
+ ? RelocatableInt64Constant(value, rmode)
+ : RelocatableInt32Constant(static_cast<int>(value), rmode);
+}
Node* JSGraph::NumberConstant(double value) {
Node** loc = cache_.FindNumberConstant(value);