28 lines
826 B
C++
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;
|
|
}
|
|
} |