The src/assem Directory
Namespace assem, delivered for TC-7. Assembly language IR.
This directory contains the implementation of the Assem language: yet another intermediate representation that aims at encoding an assembly language, plus a few needed features so that register allocation can be performed afterward. Given in full.
File: local.am (src/assem/)
The Makefile configuration relative to the
src/assem/directory. It is responsible for the integration into thelibtclibrary with everything exported from theassemmodule.
File: libassem.* (src/assem/)
The interface of the
assemmodule.
File: fwd.hh (src/assem/)
Forward declarations for the
assemmodule.
Files: comment.*, instr.*, label.*, move.* & oper.* (src/assem/)
Implementation of the basic types of assembly instructions.
File: fragment.* (src/assem/)
Implementation of
assem::Fragment,assem::ProcFrag, andassem::DataFrag. They are very similar totree::Fragment: aggregate some information that must remain together, such as aframe::Frameand the instructions (a list ofassem::Instr).
File: instrs.* (src/assem/)
Implementation of assembly instructions list (a list of
assem::Instr). It inherits fromstd::vector.
File: layout.* (src/assem/)
A pretty printing visitor for
assem::Fragment.
File: visitor.* (src/assem/)
The root of assembler visitors.