diff options
author | Milad Fa <mfarazma@redhat.com> | 2021-05-02 23:26:03 -0400 |
---|---|---|
committer | Richard Lau <rlau@redhat.com> | 2021-07-23 11:41:14 +0100 |
commit | 93a1a3c5aede43e2ade63d48ada343f7e08d2b0d (patch) | |
tree | aba4972fac42a957c3fcb05ee4083123a3938a21 | |
parent | 499e56babe2565fa6f13cb3001d8da8c81255bee (diff) | |
download | node-new-93a1a3c5aede43e2ade63d48ada343f7e08d2b0d.tar.gz |
deps: V8: cherry-pick 530080c44af2
Original commit message:
```
PPC: Add Power10 to the supported list and enable related features
This CL adds Power10 recognition to Linux, AIX as well as IBMi.
Enabled features include:
MODULO
FPR_GPR_MOV
SIMD
LWSYNC
ISELECT
VSX
Change-Id: Ifc337e6497a3efe9697bcf03063a2b94471f96e9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2855041
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Junliang Yan <junyan@redhat.com>
Reviewed-by: Vasili Skurydzin <vasili.skurydzin@ibm.com>
Commit-Queue: Milad Fa <mfarazma@redhat.com>
Cr-Commit-Position: refs/heads/master@{#74279}
```
Refs: https://github.com/v8/v8/commit/530080c44af254646a3cc3f364aac26b1b5ac10c
PR-URL: https://github.com/nodejs/node/pull/38509
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Ash Cripps <acripps@redhat.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
-rw-r--r-- | common.gypi | 2 | ||||
-rw-r--r-- | deps/v8/src/base/cpu.cc | 11 | ||||
-rw-r--r-- | deps/v8/src/base/cpu.h | 1 | ||||
-rw-r--r-- | deps/v8/src/codegen/ppc/assembler-ppc.cc | 15 |
4 files changed, 23 insertions, 6 deletions
diff --git a/common.gypi b/common.gypi index a6556a4cb7..102a1facd4 100644 --- a/common.gypi +++ b/common.gypi @@ -34,7 +34,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.46', + 'v8_embedder_string': '-node.47', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/base/cpu.cc b/deps/v8/src/base/cpu.cc index 6ab0ffee29..0b1514b575 100644 --- a/deps/v8/src/base/cpu.cc +++ b/deps/v8/src/base/cpu.cc @@ -27,6 +27,9 @@ #ifndef POWER_9 #define POWER_9 0x20000 #endif +#ifndef POWER_10 +#define POWER_10 0x40000 +#endif #endif #if V8_OS_POSIX #include <unistd.h> // sysconf() @@ -639,7 +642,10 @@ CPU::CPU() part_ = -1; if (auxv_cpu_type) { - if (strcmp(auxv_cpu_type, "power9") == 0) { + if (strcmp(auxv_cpu_type, "power10") == 0) { + part_ = PPC_POWER10; + } + else if (strcmp(auxv_cpu_type, "power9") == 0) { part_ = PPC_POWER9; } else if (strcmp(auxv_cpu_type, "power8") == 0) { part_ = PPC_POWER8; @@ -660,6 +666,9 @@ CPU::CPU() #elif V8_OS_AIX switch (_system_configuration.implementation) { + case POWER_10: + part_ = PPC_POWER10; + break; case POWER_9: part_ = PPC_POWER9; break; diff --git a/deps/v8/src/base/cpu.h b/deps/v8/src/base/cpu.h index 4b4becfa20..98688a3cd3 100644 --- a/deps/v8/src/base/cpu.h +++ b/deps/v8/src/base/cpu.h @@ -70,6 +70,7 @@ class V8_BASE_EXPORT CPU final { PPC_POWER7, PPC_POWER8, PPC_POWER9, + PPC_POWER10, PPC_G4, PPC_G5, PPC_PA6T diff --git a/deps/v8/src/codegen/ppc/assembler-ppc.cc b/deps/v8/src/codegen/ppc/assembler-ppc.cc index 2877f16895..fa28d4ec50 100644 --- a/deps/v8/src/codegen/ppc/assembler-ppc.cc +++ b/deps/v8/src/codegen/ppc/assembler-ppc.cc @@ -67,21 +67,28 @@ void CpuFeatures::ProbeImpl(bool cross_compile) { #ifndef USE_SIMULATOR // Probe for additional features at runtime. base::CPU cpu; - if (cpu.part() == base::CPU::PPC_POWER9) { + if (cpu.part() == base::CPU::PPC_POWER9 || + cpu.part() == base::CPU::PPC_POWER10) { supported_ |= (1u << MODULO); } #if V8_TARGET_ARCH_PPC64 - if (cpu.part() == base::CPU::PPC_POWER8) { + if (cpu.part() == base::CPU::PPC_POWER8 || + cpu.part() == base::CPU::PPC_POWER9 || + cpu.part() == base::CPU::PPC_POWER10) { supported_ |= (1u << FPR_GPR_MOV); } #endif if (cpu.part() == base::CPU::PPC_POWER6 || cpu.part() == base::CPU::PPC_POWER7 || - cpu.part() == base::CPU::PPC_POWER8) { + cpu.part() == base::CPU::PPC_POWER8 || + cpu.part() == base::CPU::PPC_POWER9 || + cpu.part() == base::CPU::PPC_POWER10) { supported_ |= (1u << LWSYNC); } if (cpu.part() == base::CPU::PPC_POWER7 || - cpu.part() == base::CPU::PPC_POWER8) { + cpu.part() == base::CPU::PPC_POWER8 || + cpu.part() == base::CPU::PPC_POWER9 || + cpu.part() == base::CPU::PPC_POWER10) { supported_ |= (1u << ISELECT); supported_ |= (1u << VSX); } |