diff options
Diffstat (limited to 'deps/v8/src/codegen/arm/macro-assembler-arm.h')
-rw-r--r-- | deps/v8/src/codegen/arm/macro-assembler-arm.h | 18 |
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 |