v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
extension-riscv-a.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 be
3// found in the LICENSE file.
4
5#ifndef V8_CODEGEN_RISCV_EXTENSION_RISCV_A_H_
6#define V8_CODEGEN_RISCV_EXTENSION_RISCV_A_H_
7
12
13namespace v8 {
14namespace internal {
16 // RV32A Standard Extension
17 public:
18 void lr_w(bool aq, bool rl, Register rd, Register rs1);
19 void sc_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
20 void amoswap_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
21 void amoadd_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
22 void amoxor_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
23 void amoand_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
24 void amoor_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
25 void amomin_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
26 void amomax_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
27 void amominu_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
28 void amomaxu_w(bool aq, bool rl, Register rd, Register rs1, Register rs2);
29
30#ifdef V8_TARGET_ARCH_RISCV64
31 // RV64A Standard Extension (in addition to RV32A)
32 void lr_d(bool aq, bool rl, Register rd, Register rs1);
33 void sc_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
34 void amoswap_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
35 void amoadd_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
36 void amoxor_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
37 void amoand_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
38 void amoor_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
39 void amomin_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
40 void amomax_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
41 void amominu_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
42 void amomaxu_d(bool aq, bool rl, Register rd, Register rs1, Register rs2);
43#endif
44};
45} // namespace internal
46} // namespace v8
47#endif // V8_CODEGEN_RISCV_EXTENSION_RISCV_A_H_
void amomax_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amomaxu_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amominu_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amoand_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amoxor_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amoadd_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amoswap_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amomin_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void amoor_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void sc_w(bool aq, bool rl, Register rd, Register rs1, Register rs2)
void lr_w(bool aq, bool rl, Register rd, Register rs1)