diff --git a/src/emulate.c b/src/emulate.c index 94f9254..ba6bbea 100755 --- a/src/emulate.c +++ b/src/emulate.c @@ -1,7 +1,7 @@ #include #include -#include "emulator/a64instruction/a64instruction.h" -#include "emulator/a64instruction/a64instruction_global.h" +#include "shared/a64instruction/a64instruction.h" +#include "shared/a64instruction/a64instruction_global.h" #include "emulator/emulator.h" #include "emulator/fileio.h" #include "global.h" diff --git a/src/emulator/decode.c b/src/emulator/decode.c index 17970af..ad09429 100644 --- a/src/emulator/decode.c +++ b/src/emulator/decode.c @@ -1,7 +1,7 @@ #include #include #include "decode.h" -#include "binary_util.h" +#include "../shared/binary_util.h" // Given a binary word, return its internal representation as an a64instruction struct encoding the same // information. diff --git a/src/emulator/decode.h b/src/emulator/decode.h index 5af7046..b5982be 100644 --- a/src/emulator/decode.h +++ b/src/emulator/decode.h @@ -1,5 +1,5 @@ #include "../global.h" -#include "a64instruction/a64instruction.h" +#include "../shared/a64instruction/a64instruction.h" #define HALT_WORD 0x8a000000 diff --git a/src/emulator/emulator.h b/src/emulator/emulator.h index 3a1e67d..69d1408 100644 --- a/src/emulator/emulator.h +++ b/src/emulator/emulator.h @@ -3,14 +3,6 @@ #include "../global.h" #include -/************************************ - * DEFINITIONS - ************************************/ - -#define BYTE_BITS 8 -#define WORD_BITS (BYTE_BITS * sizeof(word)) -#define DWORD_BITS (BYTE_BITS * sizeof(dword)) - /************************************ * STRUCTS ************************************/ diff --git a/src/emulator/execute.c b/src/emulator/execute.c index e2de20c..fddd50f 100644 --- a/src/emulator/execute.c +++ b/src/emulator/execute.c @@ -2,7 +2,7 @@ #include #include "execute.h" #include "print.h" -#include "binary_util.h" +#include "../shared/binary_util.h" #include "machine_util.h" // Defines the maximum value that can be held in a register diff --git a/src/emulator/execute.h b/src/emulator/execute.h index 8b691e6..be82de6 100644 --- a/src/emulator/execute.h +++ b/src/emulator/execute.h @@ -1,6 +1,6 @@ #ifndef __EXECUTE__ #define __EXECUTE__ -#include "a64instruction/a64instruction.h" +#include "../shared/a64instruction/a64instruction.h" #include "emulator.h" void execute(Machine *state, a64inst_instruction *inst); diff --git a/src/emulator/machine_util.c b/src/emulator/machine_util.c index 9288c7b..9db8525 100644 --- a/src/emulator/machine_util.c +++ b/src/emulator/machine_util.c @@ -1,10 +1,10 @@ /** Machine Util */ #include "assert.h" #include "machine_util.h" -#include "a64instruction/a64instruction_global.h" +#include "../shared/a64instruction/a64instruction_global.h" #include "../global.h" #include "emulator.h" -#include "binary_util.h" +#include "../shared/binary_util.h" // Returns the dword starting at address. The value is truncated if regType is a 64-bit register. dword readMemory(byte *memory, uint32_t address, a64inst_regType regType) { diff --git a/src/emulator/machine_util.h b/src/emulator/machine_util.h index 90688e8..89733e6 100644 --- a/src/emulator/machine_util.h +++ b/src/emulator/machine_util.h @@ -1,7 +1,7 @@ #ifndef __MACHINE_UTIL__ #define __MACHINE_UTIL__ #include "../global.h" -#include "a64instruction/a64instruction_global.h" +#include "../shared/a64instruction/a64instruction_global.h" #include "emulator.h" diff --git a/src/emulator/print.c b/src/emulator/print.c index 217535b..457aa7e 100644 --- a/src/emulator/print.c +++ b/src/emulator/print.c @@ -2,7 +2,7 @@ #include #include #include "print.h" -#include "a64instruction/a64instruction_global.h" +#include "../shared/a64instruction/a64instruction_global.h" #include "emulator.h" #include "machine_util.h" diff --git a/src/global.h b/src/global.h index 1cf226e..5d792e4 100644 --- a/src/global.h +++ b/src/global.h @@ -9,6 +9,11 @@ #define __GLOBAL__ #include + +/************************************ + * DEFINITIONS + ************************************/ + // Number of General Purpose Registers. #define REGISTER_COUNT 31 // Register identifier interpreted as the 'zero register' @@ -27,4 +32,8 @@ typedef uint32_t word; // Double word is a 64-bit unsigned integer. typedef uint64_t dword; +#define BYTE_BITS 8 +#define WORD_BITS (BYTE_BITS * sizeof(word)) +#define DWORD_BITS (BYTE_BITS * sizeof(dword)) + #endif diff --git a/src/emulator/a64instruction/a64instruction.h b/src/shared/a64instruction/a64instruction.h similarity index 100% rename from src/emulator/a64instruction/a64instruction.h rename to src/shared/a64instruction/a64instruction.h diff --git a/src/emulator/a64instruction/a64instruction_Branch.h b/src/shared/a64instruction/a64instruction_Branch.h similarity index 97% rename from src/emulator/a64instruction/a64instruction_Branch.h rename to src/shared/a64instruction/a64instruction_Branch.h index 7cfc7e8..d280973 100644 --- a/src/emulator/a64instruction/a64instruction_Branch.h +++ b/src/shared/a64instruction/a64instruction_Branch.h @@ -1,6 +1,5 @@ #include #include "a64instruction_global.h" -#include "../../global.h" typedef enum { a64inst_UNCONDITIONAL = 0, diff --git a/src/emulator/a64instruction/a64instruction_DP.h b/src/shared/a64instruction/a64instruction_DP.h similarity index 100% rename from src/emulator/a64instruction/a64instruction_DP.h rename to src/shared/a64instruction/a64instruction_DP.h diff --git a/src/emulator/a64instruction/a64instruction_DPImmediate.h b/src/shared/a64instruction/a64instruction_DPImmediate.h similarity index 100% rename from src/emulator/a64instruction/a64instruction_DPImmediate.h rename to src/shared/a64instruction/a64instruction_DPImmediate.h diff --git a/src/emulator/a64instruction/a64instruction_DPRegister.h b/src/shared/a64instruction/a64instruction_DPRegister.h similarity index 100% rename from src/emulator/a64instruction/a64instruction_DPRegister.h rename to src/shared/a64instruction/a64instruction_DPRegister.h diff --git a/src/emulator/a64instruction/a64instruction_Directive.h b/src/shared/a64instruction/a64instruction_Directive.h similarity index 61% rename from src/emulator/a64instruction/a64instruction_Directive.h rename to src/shared/a64instruction/a64instruction_Directive.h index 88a6536..fa2faaa 100644 --- a/src/emulator/a64instruction/a64instruction_Directive.h +++ b/src/shared/a64instruction/a64instruction_Directive.h @@ -1,4 +1,4 @@ -#include "../../global.h" +#include "./a64instruction_global.h" typedef struct { dword value; diff --git a/src/emulator/a64instruction/a64instruction_Label.h b/src/shared/a64instruction/a64instruction_Label.h similarity index 100% rename from src/emulator/a64instruction/a64instruction_Label.h rename to src/shared/a64instruction/a64instruction_Label.h diff --git a/src/emulator/a64instruction/a64instruction_SingleTransfer.h b/src/shared/a64instruction/a64instruction_SingleTransfer.h similarity index 97% rename from src/emulator/a64instruction/a64instruction_SingleTransfer.h rename to src/shared/a64instruction/a64instruction_SingleTransfer.h index 1b6e2b7..3e3da2b 100644 --- a/src/emulator/a64instruction/a64instruction_SingleTransfer.h +++ b/src/shared/a64instruction/a64instruction_SingleTransfer.h @@ -1,6 +1,5 @@ #include #include "a64instruction_global.h" -#include "../../global.h" typedef enum { a64inst_SINGLE_TRANSFER_SINGLE_DATA_TRANSFER = 1, diff --git a/src/emulator/a64instruction/a64instruction_global.h b/src/shared/a64instruction/a64instruction_global.h similarity index 92% rename from src/emulator/a64instruction/a64instruction_global.h rename to src/shared/a64instruction/a64instruction_global.h index ff748a6..629843d 100644 --- a/src/emulator/a64instruction/a64instruction_global.h +++ b/src/shared/a64instruction/a64instruction_global.h @@ -1,6 +1,7 @@ #ifndef __A64INSTRUCTION_GLOBAL__ #define __A64INSTRUCTION_GLOBAL__ #include +#include "../../global.h" // Specifies the register being referred to typedef uint8_t a64inst_regSpecifier; diff --git a/src/emulator/binary_util.c b/src/shared/binary_util.c similarity index 100% rename from src/emulator/binary_util.c rename to src/shared/binary_util.c diff --git a/src/emulator/binary_util.h b/src/shared/binary_util.h similarity index 94% rename from src/emulator/binary_util.h rename to src/shared/binary_util.h index 97763a0..8438ef9 100644 --- a/src/emulator/binary_util.h +++ b/src/shared/binary_util.h @@ -1,10 +1,9 @@ #ifndef __BINARY_UTIL__ #define __BINARY_UTIL__ -#include "emulator.h" +#include "../global.h" #include "a64instruction/a64instruction_global.h" - word getBits(word wrd, uint8_t lsb, uint8_t msb); dword max(dword a, dword b);