diff options
author | Refael Ackermann <refack@gmail.com> | 2019-05-28 08:46:21 -0400 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2019-06-01 09:55:12 -0400 |
commit | ed74896b1fae1c163b3906163f3bf46326618ddb (patch) | |
tree | 7fb05c5a19808e0c5cd95837528e9005999cf540 /deps/v8/src/compiler/backend/ppc | |
parent | 2a850cd0664a4eee51f44d0bb8c2f7a3fe444154 (diff) | |
download | android-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')
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); } |