Lib.LinearCode module
CAP, CodeGeneration, LinearCode API Classes for a RiscV linear code.
- class Lib.LinearCode.LinearCode(name: str)[source]
Bases:
object
Representation of a RiscV program as a list of instructions.
add_instruction()
is repeatedly called in the codegen visitor to build a complete list of RiscV instructions for the source program.The
fdata
member variable contains some meta-information on the program, for instance to allocate a new temporary. SeeLib.FunctionData.FunctionData
.For debugging purposes,
print_code()
allows to print the RiscV program to a file.- fdata: FunctionData
- add_instruction(i: Comment | Label | Instru3A | AbsoluteJump | ConditionalJump) None [source]
Utility function to add an instruction in the program.
See also
Lib.RiscV
to generate relevant instructions.
- iter_statements(f) None [source]
Iterate over instructions. For each real instruction i (not label or comment), replace it with the list of instructions given by f(i).
- get_instructions() List[Comment | Label | Instru3A | AbsoluteJump | ConditionalJump] [source]
Return the list of instructions of the program.
- add_instruction_PRINTLN_INT(reg: DataLocation) None [source]
Print integer value, with newline. (see Expand)