diff options
author | Michaël Zasso <targos@protonmail.com> | 2020-11-13 12:51:53 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2020-11-15 16:46:54 +0100 |
commit | 48db20f6f53060e38b2272566b014741eb4f519f (patch) | |
tree | e2f9b4c7f69d2e4597b73b4c3c09f4371d5cc963 /deps/v8/src/execution/ppc | |
parent | 79916428a48df937aa5b2b69c061d2d42181a76b (diff) | |
download | node-new-48db20f6f53060e38b2272566b014741eb4f519f.tar.gz |
deps: update V8 to 8.7.220
PR-URL: https://github.com/nodejs/node/pull/35700
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Shelley Vohr <codebytere@gmail.com>
Diffstat (limited to 'deps/v8/src/execution/ppc')
-rw-r--r-- | deps/v8/src/execution/ppc/frame-constants-ppc.h | 4 | ||||
-rw-r--r-- | deps/v8/src/execution/ppc/simulator-ppc.cc | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/deps/v8/src/execution/ppc/frame-constants-ppc.h b/deps/v8/src/execution/ppc/frame-constants-ppc.h index 24ef585031..0931ffe101 100644 --- a/deps/v8/src/execution/ppc/frame-constants-ppc.h +++ b/deps/v8/src/execution/ppc/frame-constants-ppc.h @@ -14,8 +14,8 @@ namespace internal { class EntryFrameConstants : public AllStatic { public: - static constexpr int kCallerFPOffset = - -(StandardFrameConstants::kFixedFrameSizeFromFp + kSystemPointerSize); + // Need to take constant pool into account. + static constexpr int kCallerFPOffset = -4 * kSystemPointerSize; }; class WasmCompileLazyFrameConstants : public TypedFrameConstants { diff --git a/deps/v8/src/execution/ppc/simulator-ppc.cc b/deps/v8/src/execution/ppc/simulator-ppc.cc index f845739e75..8e7070e5dc 100644 --- a/deps/v8/src/execution/ppc/simulator-ppc.cc +++ b/deps/v8/src/execution/ppc/simulator-ppc.cc @@ -2216,7 +2216,9 @@ void Simulator::ExecuteGeneric(Instruction* instr) { int32_t ra_val = (get_register(ra) & 0xFFFFFFFF); int32_t rb_val = (get_register(rb) & 0xFFFFFFFF); int64_t alu_out = (int64_t)ra_val * (int64_t)rb_val; - alu_out >>= 32; + // High 32 bits of the result is undefined, + // Which is simulated here by adding random bits. + alu_out = (alu_out >> 32) | 0x421000000000000; set_register(rt, alu_out); if (instr->Bit(0)) { // RC bit set SetCR0(static_cast<intptr_t>(alu_out)); @@ -2230,7 +2232,9 @@ void Simulator::ExecuteGeneric(Instruction* instr) { uint32_t ra_val = (get_register(ra) & 0xFFFFFFFF); uint32_t rb_val = (get_register(rb) & 0xFFFFFFFF); uint64_t alu_out = (uint64_t)ra_val * (uint64_t)rb_val; - alu_out >>= 32; + // High 32 bits of the result is undefined, + // Which is simulated here by adding random bits. + alu_out = (alu_out >> 32) | 0x421000000000000; set_register(rt, alu_out); if (instr->Bit(0)) { // RC bit set SetCR0(static_cast<intptr_t>(alu_out)); |