|
|
@@ -7,7 +7,7 @@ |
|
|
|
`make` should trigger a rebuild when it is modified; if not, use: |
|
|
|
`python scripts/update_asm_instructions.py`. |
|
|
|
|
|
|
|
@AUTOGEN_DATE Wed May 20 06:24:37 2015 UTC |
|
|
|
@AUTOGEN_DATE Wed May 20 06:40:09 2015 UTC |
|
|
|
*/ |
|
|
|
|
|
|
|
/* @AUTOGEN_INST_BLOCK_START */ |
|
|
@@ -1323,6 +1323,335 @@ INST_FUNC(outi) |
|
|
|
INST_RETURN(2, 0xED, 0xA3) |
|
|
|
} |
|
|
|
|
|
|
|
INST_FUNC(pop) |
|
|
|
{ |
|
|
|
INST_TAKES_ARGS( |
|
|
|
AT_REGISTER, |
|
|
|
AT_NONE, |
|
|
|
AT_NONE |
|
|
|
) |
|
|
|
if (INST_TYPE(0) == AT_REGISTER) { |
|
|
|
if (INST_REG(0) == REG_BC) |
|
|
|
INST_RETURN(1, 0xC1) |
|
|
|
if (INST_REG(0) == REG_DE) |
|
|
|
INST_RETURN(1, 0xD1) |
|
|
|
if (INST_REG(0) == REG_HL) |
|
|
|
INST_RETURN(1, 0xE1) |
|
|
|
if (INST_REG(0) == REG_IX) |
|
|
|
INST_RETURN(2, INST_IX_PREFIX, 0xE1) |
|
|
|
if (INST_REG(0) == REG_IY) |
|
|
|
INST_RETURN(2, INST_IY_PREFIX, 0xE1) |
|
|
|
if (INST_REG(0) == REG_AF) |
|
|
|
INST_RETURN(1, 0xF1) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
INST_ERROR(ARG_TYPE) |
|
|
|
} |
|
|
|
|
|
|
|
INST_FUNC(push) |
|
|
|
{ |
|
|
|
INST_TAKES_ARGS( |
|
|
|
AT_REGISTER, |
|
|
|
AT_NONE, |
|
|
|
AT_NONE |
|
|
|
) |
|
|
|
if (INST_TYPE(0) == AT_REGISTER) { |
|
|
|
if (INST_REG(0) == REG_BC) |
|
|
|
INST_RETURN(1, 0xC5) |
|
|
|
if (INST_REG(0) == REG_DE) |
|
|
|
INST_RETURN(1, 0xD5) |
|
|
|
if (INST_REG(0) == REG_HL) |
|
|
|
INST_RETURN(1, 0xE5) |
|
|
|
if (INST_REG(0) == REG_IX) |
|
|
|
INST_RETURN(2, INST_IX_PREFIX, 0xE5) |
|
|
|
if (INST_REG(0) == REG_IY) |
|
|
|
INST_RETURN(2, INST_IY_PREFIX, 0xE5) |
|
|
|
if (INST_REG(0) == REG_AF) |
|
|
|
INST_RETURN(1, 0xF5) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
INST_ERROR(ARG_TYPE) |
|
|
|
} |
|
|
|
|
|
|
|
INST_FUNC(res) |
|
|
|
{ |
|
|
|
INST_TAKES_ARGS( |
|
|
|
AT_IMMEDIATE, |
|
|
|
AT_INDEXED|AT_INDIRECT|AT_REGISTER, |
|
|
|
AT_OPTIONAL|AT_REGISTER |
|
|
|
) |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_REGISTER) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0x87) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0x80) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0x81) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0x82) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0x83) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0x84) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0x85) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0x8F) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0x88) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0x89) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0x8A) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0x8B) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0x8C) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0x8D) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0x97) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0x90) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0x91) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0x92) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0x93) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0x94) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0x95) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0x9F) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0x98) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0x99) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0x9A) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0x9B) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0x9C) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0x9D) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xA7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xA0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xA1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xA2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xA3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xA4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xA5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xAF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xA8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xA9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xAA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xAB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xAC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xAD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xB7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xB0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xB1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xB2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xB3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xB4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xB5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xBF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xB8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xB9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xBA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xBB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xBC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xBD) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDIRECT && |
|
|
|
(INST_INDIRECT(1).type == AT_REGISTER && INST_INDIRECT(1).addr.reg == REG_HL)) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0)) |
|
|
|
INST_RETURN(2, 0xCB, 0x86) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1)) |
|
|
|
INST_RETURN(2, 0xCB, 0x8E) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2)) |
|
|
|
INST_RETURN(2, 0xCB, 0x96) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3)) |
|
|
|
INST_RETURN(2, 0xCB, 0x9E) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4)) |
|
|
|
INST_RETURN(2, 0xCB, 0xA6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5)) |
|
|
|
INST_RETURN(2, 0xCB, 0xAE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6)) |
|
|
|
INST_RETURN(2, 0xCB, 0xB6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7)) |
|
|
|
INST_RETURN(2, 0xCB, 0xBE) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x86) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8E) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x96) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9E) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBE) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 3 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED && INST_TYPE(2) == AT_REGISTER) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x87) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x80) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x81) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x82) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x83) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x84) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x85) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8F) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x88) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x89) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8A) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8B) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8C) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x8D) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x97) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x90) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x91) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x92) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x93) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x94) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x95) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9F) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x98) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x99) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9A) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9B) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9C) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x9D) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xA9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xAD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xB9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xBD) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
INST_ERROR(ARG_TYPE) |
|
|
|
} |
|
|
|
|
|
|
|
INST_FUNC(reti) |
|
|
|
{ |
|
|
|
INST_TAKES_NO_ARGS |
|
|
@@ -1371,6 +1700,285 @@ INST_FUNC(scf) |
|
|
|
INST_RETURN(1, 0x37) |
|
|
|
} |
|
|
|
|
|
|
|
INST_FUNC(set) |
|
|
|
{ |
|
|
|
INST_TAKES_ARGS( |
|
|
|
AT_IMMEDIATE, |
|
|
|
AT_INDEXED|AT_INDIRECT|AT_REGISTER, |
|
|
|
AT_OPTIONAL|AT_REGISTER |
|
|
|
) |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_REGISTER) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xC7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xC0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xC1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xC2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xC3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xC4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xC5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xCF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xC8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xC9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xCA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xCB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xCC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xCD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xD7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xD0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xD1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xD2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xD3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xD4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xD5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xDF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xD8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xD9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xDA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xDB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xDC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xDD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xE7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xE0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xE1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xE2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xE3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xE4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xE5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xEF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xE8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xE9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xEA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xEB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xEC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xED) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xF7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xF0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xF1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xF2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xF3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xF4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xF5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_A) |
|
|
|
INST_RETURN(2, 0xCB, 0xFF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_B) |
|
|
|
INST_RETURN(2, 0xCB, 0xF8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_C) |
|
|
|
INST_RETURN(2, 0xCB, 0xF9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_D) |
|
|
|
INST_RETURN(2, 0xCB, 0xFA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_E) |
|
|
|
INST_RETURN(2, 0xCB, 0xFB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_H) |
|
|
|
INST_RETURN(2, 0xCB, 0xFC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_L) |
|
|
|
INST_RETURN(2, 0xCB, 0xFD) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDIRECT && |
|
|
|
(INST_INDIRECT(1).type == AT_REGISTER && INST_INDIRECT(1).addr.reg == REG_HL)) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0)) |
|
|
|
INST_RETURN(2, 0xCB, 0xC6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1)) |
|
|
|
INST_RETURN(2, 0xCB, 0xCE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2)) |
|
|
|
INST_RETURN(2, 0xCB, 0xD6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3)) |
|
|
|
INST_RETURN(2, 0xCB, 0xDE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4)) |
|
|
|
INST_RETURN(2, 0xCB, 0xE6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5)) |
|
|
|
INST_RETURN(2, 0xCB, 0xEE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6)) |
|
|
|
INST_RETURN(2, 0xCB, 0xF6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7)) |
|
|
|
INST_RETURN(2, 0xCB, 0xFE) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xEE) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF6) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7)) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFE) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
if (INST_NARGS == 3 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED && INST_TYPE(2) == AT_REGISTER) { |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xCD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xD9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xDD) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xEF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xE9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xEA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xEB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xEC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xED) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF7) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF0) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF1) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF2) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF3) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF4) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF5) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_A) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFF) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_B) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF8) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_C) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xF9) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_D) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFA) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_E) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFB) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_H) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFC) |
|
|
|
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(2) == REG_L) |
|
|
|
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xFD) |
|
|
|
INST_ERROR(ARG_VALUE) |
|
|
|
} |
|
|
|
INST_ERROR(ARG_TYPE) |
|
|
|
} |
|
|
|
|
|
|
|
/* @AUTOGEN_INST_BLOCK_END */ |
|
|
|
|
|
|
|
/* |
|
|
@@ -1421,6 +2029,9 @@ static ASMInstParser lookup_parser(uint32_t key) |
|
|
|
HANDLE(out) |
|
|
|
HANDLE(outd) |
|
|
|
HANDLE(outi) |
|
|
|
HANDLE(pop) |
|
|
|
HANDLE(push) |
|
|
|
HANDLE(res) |
|
|
|
HANDLE(reti) |
|
|
|
HANDLE(retn) |
|
|
|
HANDLE(rla) |
|
|
@@ -1429,6 +2040,7 @@ static ASMInstParser lookup_parser(uint32_t key) |
|
|
|
HANDLE(rra) |
|
|
|
HANDLE(rrca) |
|
|
|
HANDLE(scf) |
|
|
|
HANDLE(set) |
|
|
|
/* @AUTOGEN_LOOKUP_BLOCK_END */ |
|
|
|
return NULL; |
|
|
|
} |