v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::AssemblerRISCVC Class Reference

#include <extension-riscv-c.h>

Inheritance diagram for v8::internal::AssemblerRISCVC:
Collaboration diagram for v8::internal::AssemblerRISCVC:

Public Member Functions

void c_nop ()
 
void c_addi (Register rd, int8_t imm6)
 
void c_addi16sp (int16_t imm10)
 
void c_addi4spn (Register rd, int16_t uimm10)
 
void c_li (Register rd, int8_t imm6)
 
void c_lui (Register rd, int8_t imm6)
 
void c_slli (Register rd, uint8_t shamt6)
 
void c_lwsp (Register rd, uint16_t uimm8)
 
void c_jr (Register rs1)
 
void c_mv (Register rd, Register rs2)
 
void c_ebreak ()
 
void c_jalr (Register rs1)
 
void c_j (int16_t imm12)
 
void c_add (Register rd, Register rs2)
 
void c_sub (Register rd, Register rs2)
 
void c_and (Register rd, Register rs2)
 
void c_xor (Register rd, Register rs2)
 
void c_or (Register rd, Register rs2)
 
void c_swsp (Register rs2, uint16_t uimm8)
 
void c_lw (Register rd, Register rs1, uint16_t uimm7)
 
void c_sw (Register rs2, Register rs1, uint16_t uimm7)
 
void c_bnez (Register rs1, int16_t imm9)
 
void c_beqz (Register rs1, int16_t imm9)
 
void c_srli (Register rs1, int8_t shamt6)
 
void c_srai (Register rs1, int8_t shamt6)
 
void c_andi (Register rs1, int8_t imm6)
 
void c_fld (FPURegister rd, Register rs1, uint16_t uimm8)
 
void c_fsd (FPURegister rs2, Register rs1, uint16_t uimm8)
 
void c_fldsp (FPURegister rd, uint16_t uimm9)
 
void c_fsdsp (FPURegister rs2, uint16_t uimm9)
 
int CJumpOffset (Instr instr)
 
int16_t cjump_offset (Label *L)
 
int32_t cbranch_offset (Label *L)
 
void c_j (Label *L)
 
void c_bnez (Register rs1, Label *L)
 
void c_beqz (Register rs1, Label *L)
 

Static Public Member Functions

static bool IsCBranch (Instr instr)
 
static bool IsCJal (Instr instr)
 

Additional Inherited Members

- Protected Types inherited from v8::internal::AssemblerRiscvBase
enum  OffsetSize : int {
  kOffset21 = 21 , kOffset12 = 12 , kOffset20 = 20 , kOffset13 = 13 ,
  kOffset32 = 32 , kOffset11 = 11 , kOffset9 = 9
}
 
- Protected Member Functions inherited from v8::internal::AssemblerRiscvBase
virtual int32_t branch_offset_helper (Label *L, OffsetSize bits)=0
 
virtual void emit (Instr x)=0
 
virtual void emit (ShortInstr x)=0
 
virtual void emit (uint64_t x)=0
 
virtual void ClearVectorunit ()=0
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, FPURegister rd, FPURegister rs1, Register rs2)
 
void GenInstrR (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrR4 (uint8_t funct2, BaseOpcode opcode, Register rd, Register rs1, Register rs2, Register rs3, FPURoundingMode frm)
 
void GenInstrR4 (uint8_t funct2, BaseOpcode opcode, FPURegister rd, FPURegister rs1, FPURegister rs2, FPURegister rs3, FPURoundingMode frm)
 
void GenInstrRAtomic (uint8_t funct5, bool aq, bool rl, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrRFrm (uint8_t funct7, BaseOpcode opcode, Register rd, Register rs1, Register rs2, FPURoundingMode frm)
 
void GenInstrI (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, int16_t imm12)
 
void GenInstrI (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, int16_t imm12)
 
void GenInstrIShift (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrIShiftW (uint8_t funct7, uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrS (uint8_t funct3, BaseOpcode opcode, Register rs1, FPURegister rs2, int16_t imm12)
 
void GenInstrB (uint8_t funct3, BaseOpcode opcode, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrU (BaseOpcode opcode, Register rd, int32_t imm20)
 
void GenInstrJ (BaseOpcode opcode, Register rd, int32_t imm20)
 
void GenInstrCR (uint8_t funct4, BaseOpcode opcode, Register rd, Register rs2)
 
void GenInstrCA (uint8_t funct6, BaseOpcode opcode, Register rd, uint8_t funct, Register rs2)
 
void GenInstrCI (uint8_t funct3, BaseOpcode opcode, Register rd, int8_t imm6)
 
void GenInstrCIU (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm6)
 
void GenInstrCIU (uint8_t funct3, BaseOpcode opcode, FPURegister rd, uint8_t uimm6)
 
void GenInstrCIW (uint8_t funct3, BaseOpcode opcode, Register rd, uint8_t uimm8)
 
void GenInstrCSS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, uint8_t uimm6)
 
void GenInstrCSS (uint8_t funct3, BaseOpcode opcode, Register rs2, uint8_t uimm6)
 
void GenInstrCL (uint8_t funct3, BaseOpcode opcode, Register rd, Register rs1, uint8_t uimm5)
 
void GenInstrCL (uint8_t funct3, BaseOpcode opcode, FPURegister rd, Register rs1, uint8_t uimm5)
 
void GenInstrCS (uint8_t funct3, BaseOpcode opcode, Register rs2, Register rs1, uint8_t uimm5)
 
void GenInstrCS (uint8_t funct3, BaseOpcode opcode, FPURegister rs2, Register rs1, uint8_t uimm5)
 
void GenInstrCJ (uint8_t funct3, BaseOpcode opcode, uint16_t uint11)
 
void GenInstrCB (uint8_t funct3, BaseOpcode opcode, Register rs1, uint8_t uimm8)
 
void GenInstrCBA (uint8_t funct3, uint8_t funct2, BaseOpcode opcode, Register rs1, int8_t imm6)
 
void GenInstrBranchCC_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrLoad_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12)
 
void GenInstrStore_rri (uint8_t funct3, Register rs1, Register rs2, int16_t imm12)
 
void GenInstrALU_ri (uint8_t funct3, Register rd, Register rs1, int16_t imm12)
 
void GenInstrShift_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrALU_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrCSR_ir (uint8_t funct3, Register rd, ControlStatusReg csr, Register rs1)
 
void GenInstrCSR_ii (uint8_t funct3, Register rd, ControlStatusReg csr, uint8_t rs1)
 
void GenInstrShiftW_ri (bool arithshift, uint8_t funct3, Register rd, Register rs1, uint8_t shamt)
 
void GenInstrALUW_rr (uint8_t funct7, uint8_t funct3, Register rd, Register rs1, Register rs2)
 
void GenInstrPriv (uint8_t funct7, Register rs1, Register rs2)
 
void GenInstrLoadFP_ri (uint8_t funct3, FPURegister rd, Register rs1, int16_t imm12)
 
void GenInstrStoreFP_rri (uint8_t funct3, Register rs1, FPURegister rs2, int16_t imm12)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, FPURegister rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, Register rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, FPURegister rd, FPURegister rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, Register rs2)
 
void GenInstrALUFP_rr (uint8_t funct7, uint8_t funct3, Register rd, FPURegister rs1, FPURegister rs2)
 
virtual void BlockTrampolinePoolFor (int instructions)=0
 

Detailed Description

Definition at line 15 of file extension-riscv-c.h.

Member Function Documentation

◆ c_add()

void v8::internal::AssemblerRISCVC::c_add ( Register rd,
Register rs2 )

Definition at line 92 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_addi()

void v8::internal::AssemblerRISCVC::c_addi ( Register rd,
int8_t imm6 )

Definition at line 11 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_addi16sp()

void v8::internal::AssemblerRISCVC::c_addi16sp ( int16_t imm10)

Definition at line 23 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_addi4spn()

void v8::internal::AssemblerRISCVC::c_addi4spn ( Register rd,
int16_t uimm10 )

Definition at line 31 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_and()

void v8::internal::AssemblerRISCVC::c_and ( Register rd,
Register rs2 )

Definition at line 116 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_andi()

void v8::internal::AssemblerRISCVC::c_andi ( Register rs1,
int8_t imm6 )

Definition at line 252 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_beqz() [1/2]

void v8::internal::AssemblerRISCVC::c_beqz ( Register rs1,
int16_t imm9 )

Definition at line 235 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_beqz() [2/2]

void v8::internal::AssemblerRISCVC::c_beqz ( Register rs1,
Label * L )
inline

Definition at line 74 of file extension-riscv-c.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_bnez() [1/2]

void v8::internal::AssemblerRISCVC::c_bnez ( Register rs1,
int16_t imm9 )

Definition at line 228 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_bnez() [2/2]

void v8::internal::AssemblerRISCVC::c_bnez ( Register rs1,
Label * L )
inline

Definition at line 73 of file extension-riscv-c.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_ebreak()

void v8::internal::AssemblerRISCVC::c_ebreak ( )

Definition at line 84 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_fld()

void v8::internal::AssemblerRISCVC::c_fld ( FPURegister rd,
Register rs1,
uint16_t uimm8 )

Definition at line 177 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_fldsp()

void v8::internal::AssemblerRISCVC::c_fldsp ( FPURegister rd,
uint16_t uimm9 )

Definition at line 53 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_fsd()

void v8::internal::AssemblerRISCVC::c_fsd ( FPURegister rs2,
Register rs1,
uint16_t uimm8 )

Definition at line 206 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_fsdsp()

void v8::internal::AssemblerRISCVC::c_fsdsp ( FPURegister rs2,
uint16_t uimm9 )

Definition at line 150 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_j() [1/2]

void v8::internal::AssemblerRISCVC::c_j ( int16_t imm12)

Definition at line 216 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_j() [2/2]

void v8::internal::AssemblerRISCVC::c_j ( Label * L)
inline

Definition at line 72 of file extension-riscv-c.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_jalr()

void v8::internal::AssemblerRISCVC::c_jalr ( Register rs1)

Definition at line 86 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_jr()

void v8::internal::AssemblerRISCVC::c_jr ( Register rs1)

Definition at line 73 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_li()

void v8::internal::AssemblerRISCVC::c_li ( Register rd,
int8_t imm6 )

Definition at line 38 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_lui()

void v8::internal::AssemblerRISCVC::c_lui ( Register rd,
int8_t imm6 )

Definition at line 43 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_lw()

void v8::internal::AssemblerRISCVC::c_lw ( Register rd,
Register rs1,
uint16_t uimm7 )

Definition at line 158 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_lwsp()

void v8::internal::AssemblerRISCVC::c_lwsp ( Register rd,
uint16_t uimm8 )

Definition at line 67 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_mv()

void v8::internal::AssemblerRISCVC::c_mv ( Register rd,
Register rs2 )

Definition at line 79 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_nop()

void v8::internal::AssemblerRISCVC::c_nop ( )

Definition at line 9 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_or()

void v8::internal::AssemblerRISCVC::c_or ( Register rd,
Register rs2 )

Definition at line 110 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_slli()

void v8::internal::AssemblerRISCVC::c_slli ( Register rd,
uint8_t shamt6 )

Definition at line 48 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_srai()

void v8::internal::AssemblerRISCVC::c_srai ( Register rs1,
int8_t shamt6 )

Definition at line 247 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_srli()

void v8::internal::AssemblerRISCVC::c_srli ( Register rs1,
int8_t shamt6 )

Definition at line 242 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_sub()

void v8::internal::AssemblerRISCVC::c_sub ( Register rd,
Register rs2 )

Definition at line 98 of file extension-riscv-c.cc.

Here is the call graph for this function:

◆ c_sw()

void v8::internal::AssemblerRISCVC::c_sw ( Register rs2,
Register rs1,
uint16_t uimm7 )

Definition at line 187 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_swsp()

void v8::internal::AssemblerRISCVC::c_swsp ( Register rs2,
uint16_t uimm8 )

Definition at line 136 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_xor()

void v8::internal::AssemblerRISCVC::c_xor ( Register rd,
Register rs2 )

Definition at line 104 of file extension-riscv-c.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cbranch_offset()

int32_t v8::internal::AssemblerRISCVC::cbranch_offset ( Label * L)
inline

Definition at line 68 of file extension-riscv-c.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cjump_offset()

int16_t v8::internal::AssemblerRISCVC::cjump_offset ( Label * L)
inline

Definition at line 65 of file extension-riscv-c.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CJumpOffset()

int v8::internal::AssemblerRISCVC::CJumpOffset ( Instr instr)

Definition at line 266 of file extension-riscv-c.cc.

◆ IsCBranch()

bool v8::internal::AssemblerRISCVC::IsCBranch ( Instr instr)
static

Definition at line 261 of file extension-riscv-c.cc.

Here is the caller graph for this function:

◆ IsCJal()

bool v8::internal::AssemblerRISCVC::IsCJal ( Instr instr)
static

Definition at line 257 of file extension-riscv-c.cc.

Here is the caller graph for this function:

The documentation for this class was generated from the following files: