tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

extension-riscv-zicsr.cc (1520B)


      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 #include "jit/riscv64/extension/extension-riscv-zicsr.h"
      5 
      6 #include "jit/riscv64/constant/Constant-riscv64.h"
      7 #include "jit/riscv64/Register-riscv64.h"
      8 #include "jit/riscv64/Assembler-riscv64.h"
      9 #include "jit/riscv64/Architecture-riscv64.h"
     10 namespace js {
     11 namespace jit {
     12 
     13 void AssemblerRISCVZicsr::csrrw(Register rd, ControlStatusReg csr,
     14                                Register rs1) {
     15  GenInstrCSR_ir(0b001, rd, csr, rs1);
     16 }
     17 
     18 void AssemblerRISCVZicsr::csrrs(Register rd, ControlStatusReg csr,
     19                                Register rs1) {
     20  GenInstrCSR_ir(0b010, rd, csr, rs1);
     21 }
     22 
     23 void AssemblerRISCVZicsr::csrrc(Register rd, ControlStatusReg csr,
     24                                Register rs1) {
     25  GenInstrCSR_ir(0b011, rd, csr, rs1);
     26 }
     27 
     28 void AssemblerRISCVZicsr::csrrwi(Register rd, ControlStatusReg csr,
     29                                 uint8_t imm5) {
     30  GenInstrCSR_ii(0b101, rd, csr, imm5);
     31 }
     32 
     33 void AssemblerRISCVZicsr::csrrsi(Register rd, ControlStatusReg csr,
     34                                 uint8_t imm5) {
     35  GenInstrCSR_ii(0b110, rd, csr, imm5);
     36 }
     37 
     38 void AssemblerRISCVZicsr::csrrci(Register rd, ControlStatusReg csr,
     39                                 uint8_t imm5) {
     40  GenInstrCSR_ii(0b111, rd, csr, imm5);
     41 }
     42 
     43 void AssemblerRISCVZicsr::illegal_trap(uint8_t code) {
     44  csrrwi(zero, csr_cycle, code);
     45 }
     46 
     47 }  // namespace jit
     48 }  // namespace js