changes to pygen

This commit is contained in:
2026-03-25 10:56:26 -06:00
parent c6fdb59791
commit c6c63d6391
4 changed files with 58 additions and 36 deletions

View File

@@ -16,9 +16,10 @@ namespace spider {
static constexpr const u64 FLAG_EXCEPTION = 0b0000000000000000000000000000000000000000000000000000000000001000;
static constexpr const u64 FLAG_MEMORY_MODE = 0b0000000000000000000000000000000000000000000000000000000000110000;
public: // Map of addressing modes
public: // Map of addressing modes & Instructions
static CPU::Fn addrModes[];
static CPU::Fn instrMap[];
public: // General Purpose Registers
union {
@@ -61,7 +62,7 @@ namespace spider {
};
// Holds the current instruction opcode
u16 _instr : 9;
u16 _opcode : 9;
// Holds the current addressing modes,
// before they were used
@@ -163,6 +164,23 @@ namespace spider {
*/
void fetchOperSrc();
/**
* Executes an opcode, by means of directly
* accessing the instruction map and
* calling that function pointer.
*/
void execute();
/**
* Executes an opcode, by means of using
* a large switch statement. Only suitable
* for environments where the instruction
* map is not possible.
*
* This has yet to be proved!!!
*/
void executeSwLk();
public: // Addressing Modes
/**
@@ -862,4 +880,4 @@ namespace spider {
};
}
}