v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
reglist-loong64.h
Go to the documentation of this file.
1// Copyright 2022 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can b in the
3// LICENSE file.
4
5#ifndef V8_CODEGEN_LOONG64_REGLIST_LOONG64_H_
6#define V8_CODEGEN_LOONG64_REGLIST_LOONG64_H_
7
11
12namespace v8 {
13namespace internal {
14
15using RegList = RegListBase<Register>;
16using DoubleRegList = RegListBase<DoubleRegister>;
19
20const RegList kJSCallerSaved = {a0, a1, a2, a3, a4, a5, a6, a7,
21 t0, t1, t2, t3, t4, t5, t8};
22
23const int kNumJSCallerSaved = 15;
24
25// Callee-saved registers preserved when switching from C to JavaScript.
26const RegList kCalleeSaved = {fp, // fp
27 s0, // s0
28 s1, // s1
29 s2, // s2
30 s3, // s3
31 s4, // s4
32 s5, // s5
33 s6, // s6 (roots in Javascript code)
34 s7, // s7 (cp in Javascript code)
35 s8}; // s8
36
37const int kNumCalleeSaved = 10;
38
39const DoubleRegList kCalleeSavedFPU = {f24, f25, f26, f27, f28, f29, f30, f31};
40
41const int kNumCalleeSavedFPU = 8;
42
43const DoubleRegList kCallerSavedFPU = {f0, f1, f2, f3, f4, f5, f6, f7,
44 f8, f9, f10, f11, f12, f13, f14, f15,
45 f16, f17, f18, f19, f20, f21, f22, f23};
46
47} // namespace internal
48} // namespace v8
49
50#endif // V8_CODEGEN_LOONG64_REGLIST_LOONG64_H_
RegListBase< DoubleRegister > DoubleRegList
Definition reglist-arm.h:15
const int kNumJSCallerSaved
Definition reglist-arm.h:28
const RegList kCalleeSaved
Definition reglist-arm.h:31
RegListBase< Register > RegList
Definition reglist-arm.h:14
const DoubleRegList kCallerSavedFPU
const RegList kJSCallerSaved
Definition reglist-arm.h:23
const DoubleRegList kCalleeSavedFPU
const int kNumCalleeSavedFPU
const int kNumCalleeSaved
Definition reglist-arm.h:48
#define ASSERT_TRIVIALLY_COPYABLE(T)
Definition macros.h:267