GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
riscv_insn Class Reference

Classes

union  riscv_insn_immediate
 

Public Types

enum  opcode {
  UNKNOWN = 0 , ADD , ADDI , ADDIW ,
  ADDW , AUIPC , LUI , LI ,
  SD , SW , LD , LW ,
  MV , JAL , JALR , BEQ ,
  BNE , BLT , BGE , BLTU ,
  BGEU , LR , SC , ECALL ,
  OTHER
}
 

Public Member Functions

 riscv_insn ()
 
void decode (struct gdbarch *gdbarch, CORE_ADDR pc)
 
int length () const
 
enum opcode opcode () const
 
int rd () const
 
int rs1 () const
 
int rs2 () const
 
int imm_signed () const
 

Private Member Functions

int decode_register_index (unsigned long opcode, int offset)
 
int decode_register_index_short (unsigned long opcode, int offset)
 
void decode_r_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_cr_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_i_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_ci_type_insn (enum opcode opcode, ULONGEST ival, gdb::optional< int > rs1_regnum={})
 
void decode_cl_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_s_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_cs_type_insn (enum opcode opcode, ULONGEST ival, int imm)
 
void decode_css_type_insn (enum opcode opcode, ULONGEST ival, int imm)
 
void decode_u_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_j_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_cj_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_b_type_insn (enum opcode opcode, ULONGEST ival)
 
void decode_cb_type_insn (enum opcode opcode, ULONGEST ival)
 

Static Private Member Functions

static ULONGEST fetch_instruction (struct gdbarch *gdbarch, CORE_ADDR addr, int *len)
 

Private Attributes

int m_length
 
enum opcode m_opcode
 
int m_rd
 
int m_rs1
 
int m_rs2
 
union riscv_insn::riscv_insn_immediate m_imm
 

Detailed Description

Definition at line 1547 of file riscv-tdep.c.

Member Enumeration Documentation

◆ opcode

Enumerator
UNKNOWN 
ADD 
ADDI 
ADDIW 
ADDW 
AUIPC 
LUI 
LI 
SD 
SW 
LD 
LW 
MV 
JAL 
JALR 
BEQ 
BNE 
BLT 
BGE 
BLTU 
BGEU 
LR 
SC 
ECALL 
OTHER 

Definition at line 1552 of file riscv-tdep.c.

Constructor & Destructor Documentation

◆ riscv_insn()

riscv_insn::riscv_insn ( )
inline

Definition at line 1591 of file riscv-tdep.c.

Member Function Documentation

◆ decode()

void riscv_insn::decode ( struct gdbarch * gdbarch,
CORE_ADDR pc )

◆ decode_b_type_insn()

void riscv_insn::decode_b_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1756 of file riscv-tdep.c.

◆ decode_cb_type_insn()

void riscv_insn::decode_cb_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1764 of file riscv-tdep.c.

◆ decode_ci_type_insn()

void riscv_insn::decode_ci_type_insn ( enum opcode opcode,
ULONGEST ival,
gdb::optional< int > rs1_regnum = {} )
inlineprivate

Definition at line 1678 of file riscv-tdep.c.

◆ decode_cj_type_insn()

void riscv_insn::decode_cj_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1750 of file riscv-tdep.c.

◆ decode_cl_type_insn()

void riscv_insn::decode_cl_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1691 of file riscv-tdep.c.

◆ decode_cr_type_insn()

void riscv_insn::decode_cr_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1657 of file riscv-tdep.c.

◆ decode_cs_type_insn()

void riscv_insn::decode_cs_type_insn ( enum opcode opcode,
ULONGEST ival,
int imm )
inlineprivate

Definition at line 1712 of file riscv-tdep.c.

◆ decode_css_type_insn()

void riscv_insn::decode_css_type_insn ( enum opcode opcode,
ULONGEST ival,
int imm )
inlineprivate

Definition at line 1724 of file riscv-tdep.c.

References RISCV_SP_REGNUM.

◆ decode_i_type_insn()

void riscv_insn::decode_i_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1665 of file riscv-tdep.c.

◆ decode_j_type_insn()

void riscv_insn::decode_j_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1742 of file riscv-tdep.c.

◆ decode_r_type_insn()

void riscv_insn::decode_r_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1648 of file riscv-tdep.c.

◆ decode_register_index()

int riscv_insn::decode_register_index ( unsigned long opcode,
int offset )
inlineprivate

Definition at line 1636 of file riscv-tdep.c.

◆ decode_register_index_short()

int riscv_insn::decode_register_index_short ( unsigned long opcode,
int offset )
inlineprivate

Definition at line 1642 of file riscv-tdep.c.

◆ decode_s_type_insn()

void riscv_insn::decode_s_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1700 of file riscv-tdep.c.

◆ decode_u_type_insn()

void riscv_insn::decode_u_type_insn ( enum opcode opcode,
ULONGEST ival )
inlineprivate

Definition at line 1734 of file riscv-tdep.c.

◆ fetch_instruction()

ULONGEST riscv_insn::fetch_instruction ( struct gdbarch * gdbarch,
CORE_ADDR addr,
int * len )
staticprivate

◆ imm_signed()

int riscv_insn::imm_signed ( ) const
inline

◆ length()

int riscv_insn::length ( ) const
inline

◆ opcode()

enum opcode riscv_insn::opcode ( ) const
inline

Definition at line 1608 of file riscv-tdep.c.

◆ rd()

int riscv_insn::rd ( ) const
inline

◆ rs1()

int riscv_insn::rs1 ( ) const
inline

◆ rs2()

int riscv_insn::rs2 ( ) const
inline

Definition at line 1624 of file riscv-tdep.c.

Referenced by riscv_detect_end_of_function(), riscv_next_pc(), and riscv_scan_prologue().

Member Data Documentation

◆ m_imm

union riscv_insn::riscv_insn_immediate riscv_insn::m_imm
private

◆ m_length

int riscv_insn::m_length
private

Definition at line 1777 of file riscv-tdep.c.

◆ m_opcode

enum opcode riscv_insn::m_opcode
private

Definition at line 1780 of file riscv-tdep.c.

◆ m_rd

int riscv_insn::m_rd
private

Definition at line 1786 of file riscv-tdep.c.

◆ m_rs1

int riscv_insn::m_rs1
private

Definition at line 1787 of file riscv-tdep.c.

◆ m_rs2

int riscv_insn::m_rs2
private

Definition at line 1788 of file riscv-tdep.c.


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