diff options
Diffstat (limited to 'asm')
| -rw-r--r-- | asm/assembler.cpp | 10 | ||||
| -rw-r--r-- | asm/assembler.h | 6 | ||||
| -rw-r--r-- | asm/chunk.h | 2 | 
3 files changed, 15 insertions, 3 deletions
diff --git a/asm/assembler.cpp b/asm/assembler.cpp index 7a9f6cf..d6ab230 100644 --- a/asm/assembler.cpp +++ b/asm/assembler.cpp @@ -49,3 +49,13 @@ std::shared_ptr<Op> makeOp(const std::string& mnemonic)   AsmArgs dummy; // empty list of arguments   return makeOp(mnemonic, dummy);  } + +std::shared_ptr<Label> makeLabel(const std::string& name) +{ + return std::make_shared<Label>(name); +} + +std::shared_ptr<Data> makeData(const std::vector<uint8_t>& data) +{ + return std::make_shared<Data>(data); +} diff --git a/asm/assembler.h b/asm/assembler.h index 42b5f8d..ddea4af 100644 --- a/asm/assembler.h +++ b/asm/assembler.h @@ -1,7 +1,6 @@  #pragma once -//#include "chunk.h" -//#include "segment.h" +#include "chunk.h"  #include <any>  #include <functional> @@ -23,6 +22,9 @@ std::shared_ptr<Op> makeOp(const std::string& mnemonic, AsmArgs& args);  // overload for empty list of arguments  std::shared_ptr<Op> makeOp(const std::string& mnemonic); +std::shared_ptr<Label> makeLabel(const std::string& name); +std::shared_ptr<Data> makeData(const std::vector<uint8_t>& data); +  template<typename T>  std::string mangleNameOne(const std::string& s)  { diff --git a/asm/chunk.h b/asm/chunk.h index 723e711..cc45ea9 100644 --- a/asm/chunk.h +++ b/asm/chunk.h @@ -29,7 +29,7 @@ private:  class Data: public Chunk  {  public: - Data(std::vector<uint8_t> data): m_data(data) {} + Data(const std::vector<uint8_t>& data): m_data(data) {}   virtual ~Data(){}   std::vector<uint8_t> getCode() override  | 
