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/raw-machine-assembler.h b/src/compiler/raw-machine-assembler.h
index f3445ac..69ddd50 100644
--- a/src/compiler/raw-machine-assembler.h
+++ b/src/compiler/raw-machine-assembler.h
@@ -76,6 +76,7 @@
return kPointerSize == 8 ? Int64Constant(value)
: Int32Constant(static_cast<int>(value));
}
+ Node* RelocatableIntPtrConstant(intptr_t value, RelocInfo::Mode rmode);
Node* Int32Constant(int32_t value) {
return AddNode(common()->Int32Constant(value));
}
@@ -104,6 +105,12 @@
Node* ExternalConstant(ExternalReference address) {
return AddNode(common()->ExternalConstant(address));
}
+ Node* RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode) {
+ return AddNode(common()->RelocatableInt32Constant(value, rmode));
+ }
+ Node* RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode) {
+ return AddNode(common()->RelocatableInt64Constant(value, rmode));
+ }
Node* Projection(int index, Node* a) {
return AddNode(common()->Projection(index), a);
@@ -126,6 +133,15 @@
base, index, value);
}
+ // Atomic memory operations.
+ Node* AtomicLoad(MachineType rep, Node* base, Node* index) {
+ return AddNode(machine()->AtomicLoad(rep), base, index);
+ }
+ Node* AtomicStore(MachineRepresentation rep, Node* base, Node* index,
+ Node* value) {
+ return AddNode(machine()->AtomicStore(rep), base, index, value);
+ }
+
// Arithmetic Operations.
Node* WordAnd(Node* a, Node* b) {
return AddNode(machine()->WordAnd(), a, b);
@@ -353,6 +369,8 @@
INTPTR_BINOP(Int, AddWithOverflow);
INTPTR_BINOP(Int, Sub);
INTPTR_BINOP(Int, SubWithOverflow);
+ INTPTR_BINOP(Int, Mul);
+ INTPTR_BINOP(Int, Div);
INTPTR_BINOP(Int, LessThan);
INTPTR_BINOP(Int, LessThanOrEqual);
INTPTR_BINOP(Word, Equal);
@@ -381,6 +399,9 @@
Node* Float32Sub(Node* a, Node* b) {
return AddNode(machine()->Float32Sub(), a, b);
}
+ Node* Float32SubPreserveNan(Node* a, Node* b) {
+ return AddNode(machine()->Float32SubPreserveNan(), a, b);
+ }
Node* Float32Mul(Node* a, Node* b) {
return AddNode(machine()->Float32Mul(), a, b);
}
@@ -419,6 +440,9 @@
Node* Float64Sub(Node* a, Node* b) {
return AddNode(machine()->Float64Sub(), a, b);
}
+ Node* Float64SubPreserveNan(Node* a, Node* b) {
+ return AddNode(machine()->Float64SubPreserveNan(), a, b);
+ }
Node* Float64Mul(Node* a, Node* b) {
return AddNode(machine()->Float64Mul(), a, b);
}
@@ -455,6 +479,12 @@
}
// Conversions.
+ Node* BitcastWordToTagged(Node* a) {
+ return AddNode(machine()->BitcastWordToTagged(), a);
+ }
+ Node* TruncateFloat64ToWord32(Node* a) {
+ return AddNode(machine()->TruncateFloat64ToWord32(), a);
+ }
Node* ChangeFloat32ToFloat64(Node* a) {
return AddNode(machine()->ChangeFloat32ToFloat64(), a);
}
@@ -500,12 +530,12 @@
Node* TruncateFloat64ToFloat32(Node* a) {
return AddNode(machine()->TruncateFloat64ToFloat32(), a);
}
- Node* TruncateFloat64ToInt32(TruncationMode mode, Node* a) {
- return AddNode(machine()->TruncateFloat64ToInt32(mode), a);
- }
Node* TruncateInt64ToInt32(Node* a) {
return AddNode(machine()->TruncateInt64ToInt32(), a);
}
+ Node* RoundFloat64ToInt32(Node* a) {
+ return AddNode(machine()->RoundFloat64ToInt32(), a);
+ }
Node* RoundInt32ToFloat32(Node* a) {
return AddNode(machine()->RoundInt32ToFloat32(), a);
}