diff options
author | Benedikt Böhm <bb@xnull.de> | 2009-05-18 20:53:42 +0200 |
---|---|---|
committer | Benedikt Böhm <bb@xnull.de> | 2009-05-18 20:53:42 +0200 |
commit | 49f510d2d60129526832bfcd9c0f4049962bc80e (patch) | |
tree | 2828b773c75bdbc4014a3421c8046778a1a2b11b /src/emu/opc.h | |
parent | 144258f0196b69cbdd2f29bd501276942efc3182 (diff) | |
download | swppy-49f510d2d60129526832bfcd9c0f4049962bc80e.tar.gz swppy-49f510d2d60129526832bfcd9c0f4049962bc80e.tar.xz swppy-49f510d2d60129526832bfcd9c0f4049962bc80e.zip |
move stuff around and create initial source structure
Diffstat (limited to 'src/emu/opc.h')
-rw-r--r-- | src/emu/opc.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/src/emu/opc.h b/src/emu/opc.h new file mode 100644 index 0000000..45d21a8 --- /dev/null +++ b/src/emu/opc.h @@ -0,0 +1,68 @@ +#ifndef _OPC_H +#define _OPC_H + +#include <stdint.h> + +/* instructions formats: + * --------------------- + * + * arithmetic: + * |000|xxx|aaaaa|bbbbb|ccccc|00000000000| + * logic: + * |001|xxx|aaaaa|bbbbb|ccccc|00000000000| + * load & store: + * |010|xxx|aaaaa|bbbbb|cccccccccccccccc| + * branch: + * |011|xxx|aaaaa|bbbbb|cccccccccccccccc| + * jump: + * |100|xxx|aaaaa|000000000000000000000| + * misc: + * |111|xxx|??????????????????????????| + * + */ + +/* arithmetic */ +#define OPC_ADD 000 +#define OPC_SUB 001 +#define OPC_MUL 002 +#define OPC_DIV 003 +#define OPC_MOD 004 +#define OPC_SHL 005 +#define OPC_SHR 006 + +/* logic */ +#define OPC_AND 010 +#define OPC_OR 011 +#define OPC_XOR 012 +#define OPC_NOR 013 + +/* load & store */ +#define OPC_MOV 020 +#define OPC_LB 021 +#define OPC_LH 022 +#define OPC_LW 023 +#define OPC_SB 024 +#define OPC_SH 025 +#define OPC_SW 026 + +/* branch instructions */ +#define OPC_CMP 030 +#define OPC_BEQ 031 +#define OPC_BNE 032 +#define OPC_BLT 033 +#define OPC_BGE 034 +#define OPC_BLE 035 +#define OPC_BGT 036 + +/* jump instructions */ +#define OPC_J 040 +#define OPC_JAL 041 + +/* misc */ +#define OPC_SYS 070 + +/* conversion functions */ +uint32_t mnemonic2opc(const char *mnemonic); +const char *opc2mnemonic(uint32_t IR); + +#endif |