flopz.arch.riscv.rv32i package

Submodules

flopz.arch.riscv.rv32i.instructions module

class R32iADD(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iADDI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iAND(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iANDI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iAUIPC(rd, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBEQ(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBGE(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBGEU(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBLT(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBLTU(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iBNE(rs1, rs2, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRC(rd, csr, rs)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRCI(rd, csr, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRS(rd, csr, rs)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRSI(rd, csr, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRW(rd, csr, rs)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iCSRRWI(rd, csr, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iEBREAK

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iECALL

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iFENCE(pi, po, pr, pw, si, so, sr, sw)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iFENCEI

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iJAL(rd, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iJALR(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLB(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLBU(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLH(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLHU(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLUI(rd, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iLW(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iOR(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iORI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSB(rs, imm, ra)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSH(rs, imm, ra)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSLL(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSLLI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSLTI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSLTIU(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSLTU(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSRA(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSRAI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSRL(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSRLI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSUB(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iSW(rs, imm, ra)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iXOR(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class R32iXORI(rd, rs, imm)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

class RiscvBForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvIForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvInstruction(form, addr=0, bit_length=32, **kwargs)

Bases: flopz.arch.instruction.Instruction

Base class for all RiscV instructions.

Will parse the given InstructionForm instance to add the operands to the instruction and then use the keyword arguments to set the different operands.

Parameters
bytes()
Return type

bytes

Returns

the encoded instruction as bytes

class RiscvInstructionForm

Bases: object

Base class for the different forms a riscv instruction can have. Forms add the operands to the instruction object with their parse function.

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvJForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvRForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvSForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class RiscvUForm

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstructionForm

parse(instruction)
Parameters

instruction (Instruction) –

class SLT(rd, rs1, rs2)

Bases: flopz.arch.riscv.rv32i.instructions.RiscvInstruction

flopz.arch.riscv.rv32i.rv32i_arch module

class RV32IArch

Bases: flopz.arch.riscv.riscv_generic_arch.RiscvGenericArchitecture

Module contents