Module: Rex::Arch::RISCV32
- Defined in:
- lib/rex/arch/riscv32.rb
Overview
RISC-V 32-bit
Constant Summary collapse
- ZERO =
Register number constants
X0 = 0
- RA =
constant 0
X1 = 1
- SP =
return address
X2 = 2
- GP =
stack pointer
X3 = 3
- TP =
global pointer
X4 = 4
- T0 =
thread pointer
X5 = 5
- T1 =
temporary register 0
X6 = 6
- T2 =
temporary register 1
X7 = 7
- S0 =
temporary register 2
FP = X8 = 8
- S1 =
saved register / frame pointer
X9 = 9
- A0 =
saved register
X10 = 10
- A1 =
arg / return value
X11 = 11
- A2 =
arg / return value
X12 = 12
- A3 =
arg
X13 = 13
- A4 =
arg
X14 = 14
- A5 =
arg
X15 = 15
- A6 =
arg
X16 = 16
- A7 =
arg
X17 = 17
- S2 =
arg
X18 = 18
- S3 =
saved register
X19 = 19
- S4 =
saved register
X20 = 20
- S5 =
saved register
X21 = 21
- S6 =
saved register
X22 = 22
- S7 =
saved register
X23 = 23
- S8 =
saved register
X24 = 24
- S9 =
saved register
X25 = 25
- S10 =
saved register
X26 = 26
- S11 =
saved register
X27 = 27
- T3 =
saved register
X28 = 28
- T4 =
temporary register
X29 = 29
- T5 =
temporary register
X30 = 30
- T6 =
temporary register
X31 = 31
Class Method Summary collapse
-
._check_reg(*regs) ⇒ Boolean
Check if a provided number represents a valid register.
-
.reg_number(str) ⇒ Object
The number associated with a named register.
Class Method Details
._check_reg(*regs) ⇒ Boolean
Check if a provided number represents a valid register
50 51 52 53 54 55 56 |
# File 'lib/rex/arch/riscv32.rb', line 50 def self._check_reg(*regs) regs.each do |reg| raise ArgumentError, "Invalid register #{reg}", caller if reg > 31 || reg < 0 end nil end |
.reg_number(str) ⇒ Object
Returns the number associated with a named register.
44 45 46 |
# File 'lib/rex/arch/riscv32.rb', line 44 def self.reg_number(str) const_get(str.upcase) end |