summaryrefslogtreecommitdiffhomepage
path: root/asm/assembler.h
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2020-11-15 18:39:01 +0100
committerRoland Reichwein <mail@reichwein.it>2020-11-15 18:39:01 +0100
commita3b4cd4fdd4340c952eaa00bca9bebf817b901ae (patch)
tree055d3ae4b9d1e37682c2e49b31a6531f189eebf5 /asm/assembler.h
parentd07c5bc14edbe071ee7b4f47f174780e95e451aa (diff)
Fixed unit tests, prepared hierarchical evaluation via stack (WIP)
Diffstat (limited to 'asm/assembler.h')
-rw-r--r--asm/assembler.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/asm/assembler.h b/asm/assembler.h
index aa886b5..bd291b8 100644
--- a/asm/assembler.h
+++ b/asm/assembler.h
@@ -4,6 +4,8 @@
#include "chunk.h"
+#include "../minicc.h"
+
#include <boost/endian/conversion.hpp>
#include <any>
@@ -93,6 +95,22 @@ public:
std::string m_name;
};
+ // 64 bit Ptr to 32 bit Memory
+ class Mem32Ptr64
+ {
+ public:
+ Mem32Ptr64(const std::string& reg, int32_t offs = 0): m_reg(reg), m_offs(offs) {}
+ Mem32Ptr64(const std::string& reg, const std::string& reg2 = ""s, int32_t offs = 0): m_reg(reg), m_reg2(reg2), m_offs(offs) {}
+ std::string reg() { return m_reg; }
+ std::string reg2() { return m_reg2; }
+ int32_t offs() { return m_offs; }
+
+ private:
+ std::string m_reg;
+ std::string m_reg2;
+ int32_t m_offs;
+ };
+
class Label
{
public: