|
MXVM 1.8.1
Virtual Machine, Compiler, and Pascal Frontend
|
Pascal-to-MXVM code generator — CodeGenVisitor visit methods and assembly output. More...
#include "icode.hpp"#include <algorithm>#include <regex>#include <sstream>#include <string>#include <unordered_set>#include <vector>
Go to the source code of this file.
Namespaces | |
| namespace | pascal |
Functions | |
| static std::string | pascal::rtrim_comment (const std::string &line) |
| static std::string | pascal::trim (const std::string &s) |
| static void | pascal::locate_sections (const std::vector< std::string > &lines, size_t &dataStart, size_t &dataEnd, size_t &codeStart, size_t &codeEnd) |
| static std::unordered_set< std::string > | pascal::collect_used (const std::vector< std::string > &lines, size_t codeStart, size_t codeEnd) |
| static void | pascal::sweep_unused_data (std::vector< std::string > &lines) |
| static std::vector< std::pair< size_t, std::string > > | pascal::nextNonEmpty (const std::vector< std::string > &code, size_t start, size_t n) |
| static std::string | pascal::invertJump (const std::string &j) |
| static bool | pascal::parse2 (const std::string &line, const std::string &op, std::string &a, std::string &b) |
| static bool | pascal::parse1 (const std::string &line, const std::string &op, std::string &a) |
| static bool | pascal::parseJump (const std::string &line, std::string &jop, std::string &label) |
| static bool | pascal::isLabelDef (const std::string &line, const std::string &label) |
| static void | pascal::foldCmpTest (std::vector< std::string > &code) |
| static void | pascal::foldAndTest (std::vector< std::string > &code) |
| static void | pascal::foldOrTest (std::vector< std::string > &code) |
| static bool | pascal::isRegisterName (const std::string &s) |
| Forward declaration — checks whether a name is a hardware register. | |
| static void | pascal::copyPropagation (std::vector< std::string > &code) |
| Copy-propagation peephole pass. | |
| static void | pascal::foldMovArithMov (std::vector< std::string > &code) |
| static void | pascal::peepholeOpt (std::vector< std::string > &code) |
| std::string | pascal::mxvmOpt (const std::string &text) |
Pascal-to-MXVM code generator — CodeGenVisitor visit methods and assembly output.
Definition in file icode.cpp.