excompiler
@ 6
excompiler / trunk / src / asmcode2.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#ifndef _ASMCODE_H #define _ASMCODE_H #include <stdio.h> #include <vector> #include <string> #include "code.h" class AsmCodeGen2 : public CodeGen { private: std::vector<std::string> lines; int add(std::string line); void binop(std::string op); void cmpop(std::string op); public: AsmCodeGen() : lines() {} virtual void push(int n); virtual void pop(ValueSize size); virtual void add(ValueSize l, ValueSize r); virtual void sub(ValueSize l, ValueSize r); virtual void mul(); virtual void div(); virtual void cmp(ValueSize size, Keyword op); virtual void index(ValueSize size); virtual void enter(int stackSize); virtual void call(int paramSize); virtual void ret(); virtual void mov(ValueSize size); virtual int lea(Addr *addr); virtual void ld(ValueSize size); virtual void cast(ValueSize from, ValueSize to); virtual int jz(ValueSize size); virtual int jmp(); virtual void print(std::string format); virtual void println(); virtual void setJump(int instruction, int addr); virtual void setAddr(int instruction, Addr *addr); virtual void start(); virtual void data(); virtual void global(std::string name, int size); virtual void code(); virtual void function(std::string name); virtual void main(); virtual void finish(); virtual int end(); virtual void print(const char *output); }; #endif |
Commits for excompiler/trunk/src/asmcode2.h
Revision | Author | Commited | Message |
---|---|---|---|
6 | osobolev | Sat 07 Dec, 2013 20:59:37 +0000 | Experimental optimizer |