aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/backend/ppc
diff options
context:
space:
mode:
authorRefael Ackermann <refack@gmail.com>2019-05-28 08:46:21 -0400
committerRefael Ackermann <refack@gmail.com>2019-06-01 09:55:12 -0400
commited74896b1fae1c163b3906163f3bf46326618ddb (patch)
tree7fb05c5a19808e0c5cd95837528e9005999cf540 /deps/v8/src/compiler/backend/ppc
parent2a850cd0664a4eee51f44d0bb8c2f7a3fe444154 (diff)
downloadandroid-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.tar.gz
android-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.tar.bz2
android-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.zip
deps: update V8 to 7.5.288.22
PR-URL: https://github.com/nodejs/node/pull/27375 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/v8/src/compiler/backend/ppc')
-rw-r--r--deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc4
-rw-r--r--deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h8
-rw-r--r--deps/v8/src/compiler/backend/ppc/instruction-scheduler-ppc.cc6
-rw-r--r--deps/v8/src/compiler/backend/ppc/instruction-selector-ppc.cc53
4 files changed, 52 insertions, 19 deletions
diff --git a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
index b861c3d026..fd954d94c8 100644
--- a/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
+++ b/deps/v8/src/compiler/backend/ppc/code-generator-ppc.cc
@@ -180,7 +180,9 @@ class OutOfLineRecordWrite final : public OutOfLineCode {
__ mflr(scratch0_);
__ Push(scratch0_);
}
- if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
+ if (mode_ == RecordWriteMode::kValueIsEphemeronKey) {
+ __ CallEphemeronKeyBarrier(object_, scratch1_, save_fp_mode);
+ } else if (stub_mode_ == StubCallMode::kCallWasmRuntimeStub) {
__ CallRecordWriteStub(object_, scratch1_, remembered_set_action,
save_fp_mode, wasm::WasmCode::kWasmRecordWrite);
} else {
diff --git a/deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h b/deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h
index 8491acba4b..a34a09b796 100644
--- a/deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h
+++ b/deps/v8/src/compiler/backend/ppc/instruction-codes-ppc.h
@@ -12,7 +12,7 @@ namespace compiler {
// PPC-specific opcodes that specify which assembly sequence to emit.
// Most opcodes specify a single instruction.
#define TARGET_ARCH_OPCODE_LIST(V) \
- V(PPC_Peek) \
+ V(PPC_Peek) \
V(PPC_And) \
V(PPC_AndComplement) \
V(PPC_Or) \
@@ -128,6 +128,12 @@ namespace compiler {
V(PPC_StoreDouble) \
V(PPC_ByteRev32) \
V(PPC_ByteRev64) \
+ V(PPC_DecompressSigned) \
+ V(PPC_DecompressPointer) \
+ V(PPC_DecompressAny) \
+ V(PPC_CompressSigned) \
+ V(PPC_CompressPointer) \
+ V(PPC_CompressAny) \
V(PPC_AtomicStoreUint8) \
V(PPC_AtomicStoreUint16) \
V(PPC_AtomicStoreWord32) \
diff --git a/deps/v8/src/compiler/backend/ppc/instruction-scheduler-ppc.cc b/deps/v8/src/compiler/backend/ppc/instruction-scheduler-ppc.cc
index 7ed0d1d585..e5f7d7e45a 100644
--- a/deps/v8/src/compiler/backend/ppc/instruction-scheduler-ppc.cc
+++ b/deps/v8/src/compiler/backend/ppc/instruction-scheduler-ppc.cc
@@ -110,6 +110,12 @@ int InstructionScheduler::GetTargetInstructionFlags(
case kPPC_BitcastDoubleToInt64:
case kPPC_ByteRev32:
case kPPC_ByteRev64:
+ case kPPC_DecompressSigned:
+ case kPPC_DecompressPointer:
+ case kPPC_DecompressAny:
+ case kPPC_CompressSigned:
+ case kPPC_CompressPointer:
+ case kPPC_CompressAny:
return kNoOpcodeFlags;
case kPPC_LoadWordS8:
diff --git a/deps/v8/src/compiler/backend/ppc/instruction-selector-ppc.cc b/deps/v8/src/compiler/backend/ppc/instruction-selector-ppc.cc
index d5b93e86d0..4ccdc46b75 100644
--- a/deps/v8/src/compiler/backend/ppc/instruction-selector-ppc.cc
+++ b/deps/v8/src/compiler/backend/ppc/instruction-selector-ppc.cc
@@ -209,6 +209,9 @@ void InstructionSelector::VisitLoad(Node* node) {
opcode = kPPC_LoadWord64;
mode = kInt16Imm_4ByteAligned;
break;
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed: // Fall through.
case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kNone:
UNREACHABLE();
@@ -285,21 +288,8 @@ void InstructionSelector::VisitStore(Node* node) {
addressing_mode = kMode_MRR;
}
inputs[input_count++] = g.UseUniqueRegister(value);
- RecordWriteMode record_write_mode = RecordWriteMode::kValueIsAny;
- switch (write_barrier_kind) {
- case kNoWriteBarrier:
- UNREACHABLE();
- break;
- case kMapWriteBarrier:
- record_write_mode = RecordWriteMode::kValueIsMap;
- break;
- case kPointerWriteBarrier:
- record_write_mode = RecordWriteMode::kValueIsPointer;
- break;
- case kFullWriteBarrier:
- record_write_mode = RecordWriteMode::kValueIsAny;
- break;
- }
+ RecordWriteMode record_write_mode =
+ WriteBarrierKindToRecordWriteMode(write_barrier_kind);
InstructionOperand temps[] = {g.TempRegister(), g.TempRegister()};
size_t const temp_count = arraysize(temps);
InstructionCode code = kArchStoreWithWriteBarrier;
@@ -343,6 +333,9 @@ void InstructionSelector::VisitStore(Node* node) {
#else
case MachineRepresentation::kWord64: // Fall through.
#endif
+ case MachineRepresentation::kCompressedSigned: // Fall through.
+ case MachineRepresentation::kCompressedPointer: // Fall through.
+ case MachineRepresentation::kCompressed: // Fall through.
case MachineRepresentation::kSimd128: // Fall through.
case MachineRepresentation::kNone:
UNREACHABLE();
@@ -935,8 +928,6 @@ void InstructionSelector::VisitWord32ReverseBytes(Node* node) {
g.UseRegister(node->InputAt(0)));
}
-void InstructionSelector::VisitSpeculationFence(Node* node) { UNREACHABLE(); }
-
void InstructionSelector::VisitInt32Add(Node* node) {
VisitBinop<Int32BinopMatcher>(this, node, kPPC_Add32, kInt16Imm);
}
@@ -1149,6 +1140,34 @@ void InstructionSelector::VisitChangeUint32ToUint64(Node* node) {
VisitRR(this, kPPC_Uint32ToUint64, node);
}
+void InstructionSelector::VisitChangeTaggedToCompressed(Node* node) {
+ UNIMPLEMENTED();
+}
+
+void InstructionSelector::VisitChangeTaggedPointerToCompressedPointer(
+ Node* node) {
+ UNIMPLEMENTED();
+}
+
+void InstructionSelector::VisitChangeTaggedSignedToCompressedSigned(
+ Node* node) {
+ UNIMPLEMENTED();
+}
+
+void InstructionSelector::VisitChangeCompressedToTagged(Node* node) {
+ UNIMPLEMENTED();
+}
+
+void InstructionSelector::VisitChangeCompressedPointerToTaggedPointer(
+ Node* node) {
+ UNIMPLEMENTED();
+}
+
+void InstructionSelector::VisitChangeCompressedSignedToTaggedSigned(
+ Node* node) {
+ UNIMPLEMENTED();
+}
+
void InstructionSelector::VisitChangeFloat64ToUint64(Node* node) {
VisitRR(this, kPPC_DoubleToUint64, node);
}