| @@ -10,23 +10,22 @@ | |||||
| #define MAX_ARG_SIZE 256 | #define MAX_ARG_SIZE 256 | ||||
| typedef enum { | typedef enum { | ||||
| AT_NONE, | |||||
| AT_NONE = 0, | |||||
| /* Register */ | /* Register */ | ||||
| AT_REG_A, AT_REG_B, AT_REG_C, AT_REG_D, AT_REG_E, AT_REG_H, | AT_REG_A, AT_REG_B, AT_REG_C, AT_REG_D, AT_REG_E, AT_REG_H, | ||||
| AT_REG_L, AT_REG_I, AT_REG_R, AT_REG_AF, AT_REG_BC, AT_REG_DE, | AT_REG_L, AT_REG_I, AT_REG_R, AT_REG_AF, AT_REG_BC, AT_REG_DE, | ||||
| AT_REG_HL, AT_REG_IX, AT_REG_IY, AT_REG_SP, AT_REG_AF_, AT_REG_IXH, | |||||
| AT_REG_IXL, AT_REG_IYH, AT_REG_IYL, | |||||
| AT_REG_HL, AT_REG_IXY, AT_REG_SP, AT_REG_AF_, AT_REG_IH, AT_REG_IL, | |||||
| /* Immediate */ | /* Immediate */ | ||||
| AT_IMM_U16, AT_IMM_U8, AT_IMM_REL, AT_IMM_BIT, AT_IMM_RST, AT_IMM_IM, | AT_IMM_U16, AT_IMM_U8, AT_IMM_REL, AT_IMM_BIT, AT_IMM_RST, AT_IMM_IM, | ||||
| /* Indirect */ | /* Indirect */ | ||||
| AT_IDR_HL, AT_IDR_BC, AT_IDR_DE, AT_IDR_SP, AT_IDR_IMM, | |||||
| AT_IDR_HL, AT_IDR_BC, AT_IDR_DE, AT_IDR_SP, AT_IDR_IXY, AT_IDR_IMM, | |||||
| /* Indexed */ | /* Indexed */ | ||||
| AT_IX_IY, | AT_IX_IY, | ||||
| /* Condition */ | /* Condition */ | ||||
| AT_COND_NZ, AT_COND_Z, AT_COND_NC, AT_COND_C, AT_COND_PO, AT_COND_PE, | AT_COND_NZ, AT_COND_Z, AT_COND_NC, AT_COND_C, AT_COND_PO, AT_COND_PE, | ||||
| AT_COND_P, AT_COND_M, | AT_COND_P, AT_COND_M, | ||||
| /* Port */ | /* Port */ | ||||
| AT_PORT_C, AT_PORT_IM | |||||
| AT_PORT_C, AT_PORT_IM, AT_PORT_0 | |||||
| } ArgType; | } ArgType; | ||||
| #define __ AT_NONE | #define __ AT_NONE | ||||
| @@ -43,14 +42,11 @@ typedef enum { | |||||
| #define BC AT_REG_BC | #define BC AT_REG_BC | ||||
| #define DE AT_REG_DE | #define DE AT_REG_DE | ||||
| #define HL AT_REG_HL | #define HL AT_REG_HL | ||||
| #define IX AT_REG_IX | |||||
| #define IY AT_REG_IY | |||||
| #define XY AT_REG_IXY | |||||
| #define SP AT_REG_SP | #define SP AT_REG_SP | ||||
| #define AS AT_REG_AF_ | #define AS AT_REG_AF_ | ||||
| #define XH AT_REG_IXH | |||||
| #define XL AT_REG_IXL | |||||
| #define YH AT_REG_IYH | |||||
| #define YL AT_REG_IYL | |||||
| #define IH AT_REG_IH | |||||
| #define IL AT_REG_IL | |||||
| #define M2 AT_IMM_U16 | #define M2 AT_IMM_U16 | ||||
| #define M1 AT_IMM_U8 | #define M1 AT_IMM_U8 | ||||
| #define ML AT_IMM_REL | #define ML AT_IMM_REL | ||||
| @@ -61,8 +57,9 @@ typedef enum { | |||||
| #define NB AT_IDR_BC | #define NB AT_IDR_BC | ||||
| #define ND AT_IDR_DE | #define ND AT_IDR_DE | ||||
| #define NS AT_IDR_SP | #define NS AT_IDR_SP | ||||
| #define NI AT_IDR_IXY | |||||
| #define NM AT_IDR_IMM | #define NM AT_IDR_IMM | ||||
| #define XY AT_IX_IY | |||||
| #define II AT_IX_IY | |||||
| #define NZ AT_COND_NZ | #define NZ AT_COND_NZ | ||||
| #define Z_ AT_COND_Z | #define Z_ AT_COND_Z | ||||
| #define NC AT_COND_NC | #define NC AT_COND_NC | ||||
| @@ -73,62 +70,46 @@ typedef enum { | |||||
| #define M_ AT_COND_M | #define M_ AT_COND_M | ||||
| #define PC AT_PORT_C | #define PC AT_PORT_C | ||||
| #define PM AT_PORT_IM | #define PM AT_PORT_IM | ||||
| #define R0 AT_PORT_0 | |||||
| static ArgType instr_args[3][256] = { | static ArgType instr_args[3][256] = { | ||||
| { | { | ||||
| __, BC, NB, BC, B_, __, B_, __, __, __, __, BC, C_, C_, C_, __, | |||||
| __, DE, ND, DE, D_, __, __, __, __, __, __, DE, E_, E_, E_, __, | |||||
| __, HL, __, HL, H_, __, __, __, __, __, __, HL, L_, L_, L_, __, | |||||
| __, SP, __, SP, __, __, __, __, __, __, __, SP, A_, A_, A_, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, MR, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, MR, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| __, BC, NB, BC, B_, B_, B_, __, AF, HL, A_, BC, C_, C_, C_, __, | |||||
| ML, DE, ND, DE, D_, D_, D_, __, ML, HL, A_, DE, E_, E_, E_, __, | |||||
| NZ, HL, NM, HL, H_, H_, H_, __, Z_, HL, HL, HL, L_, L_, L_, __, | |||||
| NC, SP, NM, SP, NH, NH, NH, __, CC, HL, A_, SP, A_, A_, A_, __, | |||||
| B_, B_, B_, B_, B_, B_, B_, B_, C_, C_, C_, C_, C_, C_, C_, C_, | |||||
| D_, D_, D_, D_, D_, D_, D_, D_, E_, E_, E_, E_, E_, E_, E_, E_, | |||||
| H_, H_, H_, H_, H_, H_, H_, H_, L_, L_, L_, L_, L_, L_, L_, L_, | |||||
| NH, NH, NH, NH, NH, NH, __, NH, A_, A_, A_, A_, A_, A_, A_, A_, | |||||
| A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, A_, A_, A_, A_, A_, A_, A_, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| NZ, BC, NZ, M2, NZ, BC, A_, MR, Z_, __, Z_, __, Z_, M2, A_, MR, | |||||
| NC, DE, NC, PM, NC, DE, M1, MR, CC, __, CC, A_, CC, __, A_, MR, | |||||
| PO, HL, PO, NS, PO, HL, M1, MR, PE, NH, PE, DE, PE, __, M1, MR, | |||||
| P_, AF, P_, __, P_, AF, M1, MR, M_, SP, M_, __, M_, __, M1, MR | |||||
| }, | }, | ||||
| { | { | ||||
| __, M2, __, __, __, __, M1, __, __, __, __, __, __, __, M1, __, | |||||
| __, M2, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, M2, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, M2, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| __, M2, A_, __, __, __, M1, __, AS, BC, NB, __, __, __, M1, __, | |||||
| __, M2, A_, __, __, __, M1, __, __, DE, ND, __, __, __, M1, __, | |||||
| ML, M2, HL, __, __, __, M1, __, ML, HL, NM, __, __, __, M1, __, | |||||
| ML, M2, A_, __, __, __, M1, __, ML, SP, NM, __, __, __, M1, __, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| __, __, __, __, __, __, __, __, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, M2, M2, M2, __, M1, __, __, __, M2, __, M2, __, M1, __, | |||||
| __, __, M2, A_, M2, __, __, __, __, __, M2, PM, M2, __, M1, __, | |||||
| __, __, M2, HL, M2, __, __, __, __, __, M2, HL, M2, __, __, __, | |||||
| __, __, M2, __, M2, __, __, __, __, HL, M2, __, M2, __, __, __ | |||||
| }, | }, | ||||
| { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| } | |||||
| { __ } | |||||
| }; | }; | ||||
| static ArgType instr_args_extended[3][256] = { | static ArgType instr_args_extended[3][256] = { | ||||
| @@ -137,10 +118,10 @@ static ArgType instr_args_extended[3][256] = { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, MI, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| B_, PC, HL, NM, __, __, MI, I_, C_, PC, HL, BC, __, __, MI, R_, | |||||
| D_, PC, HL, NM, __, __, MI, A_, E_, PC, HL, DE, __, __, MI, A_, | |||||
| H_, PC, HL, NM, __, __, MI, __, L_, PC, HL, HL, __, __, MI, __, | |||||
| PC, PC, HL, NM, __, __, MI, __, A_, PC, HL, SP, __, __, MI, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| @@ -155,10 +136,10 @@ static ArgType instr_args_extended[3][256] = { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| PC, B_, BC, BC, __, __, __, A_, PC, C_, BC, NM, __, __, __, A_, | |||||
| PC, D_, DE, DE, __, __, __, I_, PC, E_, DE, NM, __, __, __, R_, | |||||
| PC, H_, HL, HL, __, __, __, __, PC, L_, HL, NM, __, __, __, __, | |||||
| __, R0, SP, SP, __, __, __, __, PC, A_, SP, NM, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| @@ -168,176 +149,125 @@ static ArgType instr_args_extended[3][256] = { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | ||||
| }, | }, | ||||
| { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| } | |||||
| { __ } | |||||
| }; | }; | ||||
| static ArgType instr_args_bits[3][256] = { | static ArgType instr_args_bits[3][256] = { | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, MB, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB | |||||
| }, | }, | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, B_, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_, | |||||
| B_, C_, D_, E_, H_, L_, NH, A_, B_, C_, D_, E_, H_, L_, NH, A_ | |||||
| }, | }, | ||||
| { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| } | |||||
| { __ } | |||||
| }; | }; | ||||
| static ArgType instr_args_index[3][256] = { | static ArgType instr_args_index[3][256] = { | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, XY, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| __, __, __, __, __, __, __, __, __, XY, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, XY, __, __, __, __, __, __, | |||||
| __, XY, NM, XY, IH, IH, IH, __, __, XY, XY, XY, IL, IL, IL, __, | |||||
| __, __, __, __, II, II, II, __, __, XY, __, __, __, __, __, __, | |||||
| __, __, __, __, B_, B_, B_, __, __, __, __, __, C_, C_, C_, __, | |||||
| __, __, __, __, D_, D_, D_, __, __, __, __, __, E_, E_, E_, __, | |||||
| IH, IH, IH, IH, IH, IH, H_, IH, IL, IL, IL, IL, IL, IL, L_, IL, | |||||
| II, II, II, II, II, II, __, II, __, __, __, __, A_, A_, A_, __, | |||||
| __, __, __, __, A_, A_, A_, __, __, __, __, __, A_, A_, A_, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, A_, A_, A_, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, XY, __, NS, __, XY, __, __, __, NI, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, SP, __, __, __, __, __, __ | |||||
| }, | }, | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, BC, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, DE, __, __, __, __, __, __, | |||||
| __, M2, XY, __, __, __, M1, __, __, XY, NM, __, __, __, M1, __, | |||||
| __, __, __, __, __, __, M1, __, __, SP, __, __, __, __, __, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, IH, IL, II, __, | |||||
| B_, C_, D_, E_, IH, IL, II, A_, B_, C_, D_, E_, IH, IL, II, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, IH, IL, II, __, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, IH, IL, II, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| __, __, __, XY, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, XY, __, __, __, __, __, __ | |||||
| }, | }, | ||||
| { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| } | |||||
| { __ } | |||||
| }; | }; | ||||
| static ArgType instr_args_index_bits[3][256] = { | static ArgType instr_args_index_bits[3][256] = { | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, | |||||
| MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB, MB | |||||
| }, | }, | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, | |||||
| II, II, II, II, II, II, II, II, II, II, II, II, II, II, II, II | |||||
| }, | }, | ||||
| { | { | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| @@ -348,14 +278,14 @@ static ArgType instr_args_index_bits[3][256] = { | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | ||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, | |||||
| __, __, __, __, __, __, __, __, __, __, __, __, __, __, __, __ | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_, | |||||
| B_, C_, D_, E_, H_, L_, __, A_, B_, C_, D_, E_, H_, L_, __, A_ | |||||
| } | } | ||||
| }; | }; | ||||
| @@ -373,14 +303,11 @@ static ArgType instr_args_index_bits[3][256] = { | |||||
| #undef BC | #undef BC | ||||
| #undef DE | #undef DE | ||||
| #undef HL | #undef HL | ||||
| #undef IX | |||||
| #undef IY | |||||
| #undef XY | |||||
| #undef SP | #undef SP | ||||
| #undef AS | #undef AS | ||||
| #undef XH | |||||
| #undef XL | |||||
| #undef YH | |||||
| #undef YL | |||||
| #undef IH | |||||
| #undef IL | |||||
| #undef M2 | #undef M2 | ||||
| #undef M1 | #undef M1 | ||||
| #undef ML | #undef ML | ||||
| @@ -391,8 +318,9 @@ static ArgType instr_args_index_bits[3][256] = { | |||||
| #undef NB | #undef NB | ||||
| #undef ND | #undef ND | ||||
| #undef NS | #undef NS | ||||
| #undef NI | |||||
| #undef NM | #undef NM | ||||
| #undef XY | |||||
| #undef II | |||||
| #undef NZ | #undef NZ | ||||
| #undef Z_ | #undef Z_ | ||||
| #undef NC | #undef NC | ||||
| @@ -403,6 +331,7 @@ static ArgType instr_args_index_bits[3][256] = { | |||||
| #undef M_ | #undef M_ | ||||
| #undef PC | #undef PC | ||||
| #undef PM | #undef PM | ||||
| #undef R0 | |||||
| /* | /* | ||||
| Decode an immediate argument. | Decode an immediate argument. | ||||
| @@ -478,14 +407,8 @@ static void decode_argument( | |||||
| case AT_REG_BC: value = "bc"; break; | case AT_REG_BC: value = "bc"; break; | ||||
| case AT_REG_DE: value = "de"; break; | case AT_REG_DE: value = "de"; break; | ||||
| case AT_REG_HL: value = "hl"; break; | case AT_REG_HL: value = "hl"; break; | ||||
| case AT_REG_IX: value = "ix"; break; | |||||
| case AT_REG_IY: value = "iy"; break; | |||||
| case AT_REG_SP: value = "sp"; break; | case AT_REG_SP: value = "sp"; break; | ||||
| case AT_REG_AF_: value = "af'"; break; | case AT_REG_AF_: value = "af'"; break; | ||||
| case AT_REG_IXH: value = "ixh"; break; | |||||
| case AT_REG_IXL: value = "ixl"; break; | |||||
| case AT_REG_IYH: value = "iyh"; break; | |||||
| case AT_REG_IYL: value = "iyl"; break; | |||||
| case AT_IDR_HL: value = "(hl)"; break; | case AT_IDR_HL: value = "(hl)"; break; | ||||
| case AT_IDR_BC: value = "(bc)"; break; | case AT_IDR_BC: value = "(bc)"; break; | ||||
| case AT_IDR_DE: value = "(de)"; break; | case AT_IDR_DE: value = "(de)"; break; | ||||
| @@ -499,6 +422,11 @@ static void decode_argument( | |||||
| case AT_COND_P: value = "p"; break; | case AT_COND_P: value = "p"; break; | ||||
| case AT_COND_M: value = "m"; break; | case AT_COND_M: value = "m"; break; | ||||
| case AT_PORT_C: value = "(c)"; break; | case AT_PORT_C: value = "(c)"; break; | ||||
| case AT_PORT_0: value = "0"; break; | |||||
| case AT_REG_IXY: value = (bytes[0] == 0xDD) ? "ix" : "iy"; break; | |||||
| case AT_REG_IH: value = (bytes[0] == 0xDD) ? "ixh" : "iyh"; break; | |||||
| case AT_REG_IL: value = (bytes[0] == 0xDD) ? "ixl" : "iyl"; break; | |||||
| case AT_IDR_IXY: value = (bytes[0] == 0xDD) ? "(ix)" : "(iy)"; break; | |||||
| case AT_IMM_U16: | case AT_IMM_U16: | ||||
| case AT_IMM_U8: | case AT_IMM_U8: | ||||
| case AT_IMM_REL: | case AT_IMM_REL: | ||||