Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/codegen/arm/macro-assembler-arm.h')
-rw-r--r--deps/v8/src/codegen/arm/macro-assembler-arm.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/deps/v8/src/codegen/arm/macro-assembler-arm.h b/deps/v8/src/codegen/arm/macro-assembler-arm.h
index 9ec1bafb580..a7dc5498b8b 100644
--- a/deps/v8/src/codegen/arm/macro-assembler-arm.h
+++ b/deps/v8/src/codegen/arm/macro-assembler-arm.h
@@ -156,6 +156,12 @@ class V8_EXPORT_PRIVATE TurboAssembler : public TurboAssemblerBase {
}
}
+ enum class PushArrayOrder { kNormal, kReverse };
+ // `array` points to the first element (the lowest address).
+ // `array` and `size` are not modified.
+ void PushArray(Register array, Register size, Register scratch,
+ PushArrayOrder order = PushArrayOrder::kNormal);
+
void Pop(Register dst) { pop(dst); }
// Pop two registers. Pops rightmost register first (from lower address).
@@ -720,6 +726,18 @@ class V8_EXPORT_PRIVATE MacroAssembler : public TurboAssembler {
void JumpIfIsInRange(Register value, unsigned lower_limit,
unsigned higher_limit, Label* on_in_range);
+ // 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.
+ MemOperand ReceiverOperand(Register argc) {
+#ifdef V8_REVERSE_JSARGS
+ return MemOperand(sp, 0);
+#else
+ return MemOperand(sp, argc, LSL, kSystemPointerSizeLog2);
+#endif
+ }
+
// ---------------------------------------------------------------------------
// Runtime calls