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/)
This is a Makefile configuration relative to the
src/assem/
directory. It is responsible for the integration into thelibtc
library with everything exported from theassem
module.
File: libassem.* (src/assem/)
The interface of the
assem
module.
File: fwd.hh (src/assem/)
Forward declarations for the
assem
module.
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::Frame
and 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.