summaryrefslogtreecommitdiff
path: root/deps/v8/src/codegen/ppc/macro-assembler-ppc.h
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2020-11-13 12:51:53 +0100
committerMichaël Zasso <targos@protonmail.com>2020-11-15 16:46:54 +0100
commit48db20f6f53060e38b2272566b014741eb4f519f (patch)
treee2f9b4c7f69d2e4597b73b4c3c09f4371d5cc963 /deps/v8/src/codegen/ppc/macro-assembler-ppc.h
parent79916428a48df937aa5b2b69c061d2d42181a76b (diff)
downloadnode-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/codegen/ppc/macro-assembler-ppc.h')
-rw-r--r--deps/v8/src/codegen/ppc/macro-assembler-ppc.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/deps/v8/src/codegen/ppc/macro-assembler-ppc.h b/deps/v8/src/codegen/ppc/macro-assembler-ppc.h
index 0e9c764add..a74985cbe1 100644
--- a/deps/v8/src/codegen/ppc/macro-assembler-ppc.h
+++ b/deps/v8/src/codegen/ppc/macro-assembler-ppc.h
@@ -237,6 +237,10 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
StoreP(src1, MemOperand(sp, 4 * kSystemPointerSize));
}
+ enum PushArrayOrder { kNormal, kReverse };
+ void PushArray(Register array, Register size, Register scratch,
+ Register scratch2, PushArrayOrder order = kNormal);
+
void Pop(Register dst) { pop(dst); }
// Pop two registers. Pops rightmost register first (from lower address).
@@ -719,6 +723,28 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
public:
using TurboAssembler::TurboAssembler;
+ // It assumes that the arguments are located below the stack pointer.
+ // argc is the number of arguments not including the receiver.
+ // TODO(victorgomes): Remove this function once we stick with the reversed
+ // arguments order.
+ void LoadReceiver(Register dest, Register argc) {
+#ifdef V8_REVERSE_JSARGS
+ LoadP(dest, MemOperand(sp, 0));
+#else
+ ShiftLeftImm(dest, argc, Operand(kSystemPointerSizeLog2));
+ LoadPX(dest, MemOperand(sp, dest));
+#endif
+ }
+
+ void StoreReceiver(Register rec, Register argc, Register scratch) {
+#ifdef V8_REVERSE_JSARGS
+ StoreP(rec, MemOperand(sp, 0));
+#else
+ ShiftLeftImm(scratch, argc, Operand(kSystemPointerSizeLog2));
+ StorePX(rec, MemOperand(sp, scratch));
+#endif
+ }
+
// ---------------------------------------------------------------------------
// GC Support