Files
wassembly/src/execute/state.cpp

28 lines
826 B
C++

#include <execute/state.hpp>
namespace Execute
{
void State::PushToStack(int const value)
{
memory[registers.stackPointer] = value & 0xFF;
memory[registers.stackPointer + 1] = (value >> 8) & 0xFF;
memory[registers.stackPointer + 2] = (value >> 16) & 0xFF;
memory[registers.stackPointer + 3] = (value >> 24) & 0xFF;
registers.stackPointer += 4;
return;
}
int State::PopFromStack()
{
int value = static_cast<int>(memory[registers.stackPointer - 1]) << 24;
value |= static_cast<int>(memory[registers.stackPointer - 2]) << 16;
value |= static_cast<int>(memory[registers.stackPointer - 3]) << 8;
value |= static_cast<int>(memory[registers.stackPointer - 4]);
registers.stackPointer -= 4;
return value;
}
}