ACSE 2.0.2
Advanced Compiler System for Education (basic documentation)
Loading...
Searching...
No Matches
codegen.h File Reference

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)
 

Detailed Description

Code generation functions.

Definition in file codegen.h.