ACSE 2.0.2
Advanced Compiler System for Education (basic documentation)
|
Code generation functions. More...
#include "program.h"
Go to the source code of this file.
Functions | |
Register-Register Arithmetic Instructions | |
t_instruction * | genADD (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSUB (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genAND (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genOR (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genXOR (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genMUL (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genDIV (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genREM (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSLL (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSRL (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSRA (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
Register-Constant Arithmetic Instructions | |
t_instruction * | genADDI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSUBI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genANDI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genORI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genXORI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genMULI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genDIVI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genREMI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSLLI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSRLI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSRAI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
Register-Register Comparison Instructions | |
t_instruction * | genSEQ (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSNE (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSLT (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSLTU (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSGE (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSGEU (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSGT (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSGTU (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSLE (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
t_instruction * | genSLEU (t_program *program, t_regID rd, t_regID rs1, t_regID rs2) |
Register-Constant Comparison Instructions | |
t_instruction * | genSEQI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSNEI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSLTI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSLTIU (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSGEI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSGEIU (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSGTI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSGTIU (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSLEI (t_program *program, t_regID rd, t_regID rs1, int immediate) |
t_instruction * | genSLEIU (t_program *program, t_regID rd, t_regID rs1, int immediate) |
Jump and Branch Instructions | |
t_instruction * | genJ (t_program *program, t_label *label) |
t_instruction * | genBEQ (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBNE (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBLT (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBLTU (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBGE (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBGEU (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBGT (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBGTU (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBLE (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
t_instruction * | genBLEU (t_program *program, t_regID rs1, t_regID rs2, t_label *label) |
Memory Load/Store Instructions | |
t_instruction * | genLI (t_program *program, t_regID rd, int immediate) |
t_instruction * | genLA (t_program *program, t_regID rd, t_label *label) |
t_instruction * | genLW (t_program *program, t_regID rd, int immediate, t_regID rs1) |
t_instruction * | genSW (t_program *program, t_regID rs2, int immediate, t_regID rs1) |
t_instruction * | genLWGlobal (t_program *program, t_regID rd, t_label *label) |
t_instruction * | genSWGlobal (t_program *program, t_regID rs1, t_label *label, t_regID rtemp) |
Variable/array accesses | |
t_regID | genLoadVariable (t_program *program, t_symbol *var) |
void | genStoreRegisterToVariable (t_program *program, t_symbol *var, t_regID reg) |
void | genStoreConstantToVariable (t_program *program, t_symbol *var, int val) |
t_regID | genLoadArrayElement (t_program *program, t_symbol *array, t_regID rIdx) |
void | genStoreRegisterToArrayElement (t_program *program, t_symbol *array, t_regID rIdx, t_regID rVal) |
void | genStoreConstantToArrayElement (t_program *program, t_symbol *array, t_regID rIdx, int val) |
System Calls | |
t_instruction * | genExit0Syscall (t_program *program) |
t_instruction * | genReadIntSyscall (t_program *program, t_regID rd) |
t_instruction * | genPrintIntSyscall (t_program *program, t_regID rs1) |
t_instruction * | genPrintCharSyscall (t_program *program, t_regID rs1) |
Other Instructions | |
t_instruction * | genNOP (t_program *program) |
t_instruction * | genECALL (t_program *program) |
t_instruction * | genEBREAK (t_program *program) |
Code generation functions.
Definition in file codegen.h.