diff options
author | mrb0nk500 <b0nk@b0nk.xyz> | 2020-12-08 10:42:10 -0500 |
---|---|---|
committer | mrb0nk500 <b0nk@b0nk.xyz> | 2020-12-09 11:43:33 -0500 |
commit | a232e9f691187fdb05c35c14d4152d17f4babaf5 (patch) | |
tree | 9fdf364ce91506ed4490cd95ced6355459d7e8b5 /opcode.h | |
parent | 50875a80729eaf3be2b1473e385eca1102fce4e6 (diff) |
- Implemented support for the Orthogonal extension into
both the assembler, and the emulator.
I finally figured out how I could get support for the
Ortho extension implemented into the old assembler.
The only reason for doing this, is to buy me some
while I start work on the new assembler, and to help
me get an idea for how to do the same in the new
assembler.
Diffstat (limited to 'opcode.h')
-rw-r--r-- | opcode.h | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -13,11 +13,11 @@ #define EXT_OPNUM 49 #define ORTHO_OPNUM 16 -#define C (1 << 0) /* Carry flag. */ -#define Z (1 << 1) /* Zero flag. */ -#define I (1 << 2) /* Interrupt flag. */ -#define V (1 << 6) /* oVerflow flag. */ -#define N (1 << 7) /* Negative flag. */ +#define C (1 << 0) /* Carry flag. */ +#define Z (1 << 1) /* Zero flag. */ +#define I (1 << 2) /* Interrupt flag. */ +#define V (1 << 6) /* oVerflow flag. */ +#define N (1 << 7) /* Negative flag. */ /*extern uint8_t get_addrsize(uint8_t prefix, uint8_t addrmode);*/ extern char *showbits(uint64_t value, uint8_t bitnum, uint8_t dbg); @@ -74,6 +74,7 @@ struct op { uint8_t rind[2]; /* Register(s) used for register indirect. */ uint8_t scale; /* Scale used for SIB. */ int is_ind : 1; /* Flag used to determine if this operand is an indirect mode. */ + uint8_t cc; /* Condition code. 3 bits. */ uint64_t value; /* Value of operand (used only by memory operands). */ }; |