diff options
author | Benedikt Böhm <bb@xnull.de> | 2009-07-04 10:49:19 +0200 |
---|---|---|
committer | Benedikt Böhm <bb@xnull.de> | 2009-07-04 10:49:19 +0200 |
commit | 6165e2dde32a8f425e54d4f061146b366d5a2e0a (patch) | |
tree | 857b1884e30c5b38ac8c915e37b8ee0bd52d712e /src/emu/opc.h | |
parent | 11545b9e323084482673b8732b89711ae7e19928 (diff) | |
download | swppy-6165e2dde32a8f425e54d4f061146b366d5a2e0a.tar.gz swppy-6165e2dde32a8f425e54d4f061146b366d5a2e0a.tar.xz swppy-6165e2dde32a8f425e54d4f061146b366d5a2e0a.zip |
adapt emulator for generator changes:
- new instructions (push, pop, call, ret)
- new pseudo-registers (bp, sp, rv)
- new binary format
- dynamic register file size
- removed obsolete instructions
Diffstat (limited to '')
-rw-r--r-- | src/emu/opc.h | 47 |
1 files changed, 21 insertions, 26 deletions
diff --git a/src/emu/opc.h b/src/emu/opc.h index b766afa..179f7b2 100644 --- a/src/emu/opc.h +++ b/src/emu/opc.h @@ -10,12 +10,12 @@ * |000|xxx|aaaaa|bbbbb|ccccc|00000000000| * logic: * |001|xxx|aaaaa|bbbbb|ccccc|00000000000| + * comparison: + * |010|xxx|aaaaa|bbbbb|0000000000000000| * load & store: - * |010|xxx|aaaaa|bbbbb|cccccccccccccccc| - * branch: * |011|xxx|aaaaa|bbbbb|cccccccccccccccc| * jump: - * |100|xxx|aaaaa|000000000000000000000| + * |100|xxx|aaaaa|00000|cccccccccccccccc| * misc: * |111|xxx|??????????????????????????| * @@ -27,37 +27,32 @@ #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 +/* comparison */ +#define OPC_CMP 020 +#define OPC_EQ 021 +#define OPC_NE 022 +#define OPC_LT 023 +#define OPC_LE 024 +#define OPC_GE 025 +#define OPC_GT 026 -/* branch instructions */ -#define OPC_CMP 030 -#define OPC_BEZ 031 -#define OPC_EQ 032 -#define OPC_NE 033 -#define OPC_LT 034 -#define OPC_LE 035 -#define OPC_GE 036 -#define OPC_GT 037 +/* load & store */ +#define OPC_MOV 030 +#define OPC_LW 031 +#define OPC_SW 032 +#define OPC_PUSH 033 +#define OPC_POP 034 /* jump instructions */ -#define OPC_J 040 -#define OPC_JAL 041 +#define OPC_BEZ 040 +#define OPC_JMP 041 +#define OPC_CALL 042 +#define OPC_RET 043 /* misc */ #define OPC_SYS 070 |