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 the libtc library with everything exported from the assem 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, and assem::DataFrag. They are very similar to tree::Fragment: aggregate some information that must remain together, such as a frame::Frame and the instructions (a list of assem::Instr).

File: instrs.* (src/assem/)

Implementation of assembly instructions list (a list of assem::Instr). It inherits from std::vector.

File: layout.* (src/assem/)

A pretty printing visitor for assem::Fragment.

File: visitor.* (src/assem/)

The root of assembler visitors.