Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / spasm_impl.hpp
diff options
context:
space:
mode:
Commitd7b2e339ff06c64bcb1322eec396d4995da6b17a (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:11:01 +0200
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-15 10:16:21 +0200
Filesace7bdc0df3791b6db8878d52ba98cb368e180b8 /spasm/src/spasm_impl.hpp
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.tar.gz
IPL-d7b2e339ff06c64bcb1322eec396d4995da6b17a.zip
Parentfb7e4dbb3ec65de00987f2ccfc6d29ebfcec12c7 (diff)
Implemented push and pop with numbers
1 files changed, 9 insertions, 8 deletions
-rw-r--r--spasm/src/spasm_impl.hpp17
diff --git a/spasm/src/spasm_impl.hpp b/spasm/src/spasm_impl.hpp
index 75fb4c4..7c2bd38 100644
--- a/spasm/src/spasm_impl.hpp
+++ b/spasm/src/spasm_impl.hpp
@@ -13,8 +13,8 @@ enum OpCodes : char
Dup,
Pop,
PopTo,
+ PushFrom,
Push,
- Alloc,
Print,
Read,
Call,
@@ -45,14 +45,15 @@ class Spasm
public:
Spasm();
void Initialize(PC_t,
- const byte*,
- std::istream& = std::cin,
- std::ostream& = std::cout);
+ const byte*,
+ std::istream& = std::cin,
+ std::ostream& = std::cout);
~Spasm();
Spasm(const Spasm&) = delete;
Spasm& operator=(const Spasm&) = delete;
- enum RunResult {
+ enum RunResult
+ {
Success,
Exception,
NotImplemented,
@@ -77,7 +78,8 @@ class Spasm
//! Frame pointer - the start of the stack for the current function
data_t* m_FP = nullptr;
- struct Frame {
+ struct Frame
+ {
PC_t ReturnAddress;
PC_t FramePointer;
PC_t StackPointer;
@@ -94,8 +96,7 @@ class Spasm
std::ostream* ostr;
void push(reg_t reg);
- void pop(reg_t reg);
- void pop();
+ void popto(reg_t reg);
void dup();
void print(reg_t reg);