瀏覽代碼

Remove a lot of code duplication.

master
Ben Kurtovic 9 年之前
父節點
當前提交
8f18c3ac14
共有 3 個文件被更改,包括 164 次插入1265 次删除
  1. +5
    -0
      scripts/update_asm_instructions.py
  2. +83
    -657
      src/assembler/instructions.inc.c
  3. +76
    -608
      src/assembler/instructions.yml

+ 5
- 0
scripts/update_asm_instructions.py 查看文件

@@ -251,6 +251,11 @@ class Instruction(object):
index = types.index("immediate")
ret[i] = "INST_IMM({0}).sval - 2".format(index)

elif byte.startswith("bit(") and byte.endswith(")"):
index = types.index("immediate")
off = byte[4:-1]
ret[i] = "{0} + 8 * INST_IMM({1}).uval".format(off, index)

else:
msg = "Unsupported return byte: {0}"
raise RuntimeError(msg.format(byte))


+ 83
- 657
src/assembler/instructions.inc.c 查看文件

@@ -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 07:34:18 2015 UTC
@AUTOGEN_DATE Thu May 21 20:33:21 2015 UTC
*/

/* @AUTOGEN_INST_BLOCK_START */
@@ -201,157 +201,31 @@ INST_FUNC(bit)
AT_NONE
)
if (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, 0x47)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x40)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x41)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x42)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x43)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x44)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x45)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x4F)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x48)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x49)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x4A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x4B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x4C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x4D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x57)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x50)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x51)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x52)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x53)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x54)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x55)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x5F)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x58)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x59)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x5A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x5B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x5C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x5D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x67)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x60)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x61)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x62)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x63)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x64)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x65)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x6F)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x68)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x69)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x6A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x6B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x6C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x6D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x77)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x70)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x71)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x72)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x73)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x74)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x75)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x7F)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x78)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x79)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x7A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x7B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x7C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x7D)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x47 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x40 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x41 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x42 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x43 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x44 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x45 + 8 * INST_IMM(0).uval)
INST_ERROR(ARG_VALUE)
}
if (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, 0x46)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1))
INST_RETURN(2, 0xCB, 0x4E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2))
INST_RETURN(2, 0xCB, 0x56)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3))
INST_RETURN(2, 0xCB, 0x5E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4))
INST_RETURN(2, 0xCB, 0x66)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5))
INST_RETURN(2, 0xCB, 0x6E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6))
INST_RETURN(2, 0xCB, 0x76)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7))
INST_RETURN(2, 0xCB, 0x7E)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(2, 0xCB, 0x46 + 8 * INST_IMM(0).uval)
INST_ERROR(ARG_VALUE)
}
if (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, 0x46)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x4E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x56)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x5E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x66)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x6E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x76)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7))
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x7E)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x46 + 8 * INST_IMM(0).uval)
INST_ERROR(ARG_VALUE)
}
INST_ERROR(ARG_TYPE)
@@ -1381,272 +1255,48 @@ INST_FUNC(res)
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)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x87 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x80 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x81 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x82 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x83 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x84 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x85 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(2, 0xCB, 0x86 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x86 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_A)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x87 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_B)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x80 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_C)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x81 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_D)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x82 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_E)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x83 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_H)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x84 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_L)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x85 + 8 * INST_IMM(0).uval)
INST_ERROR(ARG_VALUE)
}
INST_ERROR(ARG_TYPE)
@@ -2038,272 +1688,48 @@ INST_FUNC(set)
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)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0xC7 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0xC0 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0xC1 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0xC2 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0xC3 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0xC4 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0xC5 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(2, 0xCB, 0xC6 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC6 + 8 * INST_IMM(0).uval)
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)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_A)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC7 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_B)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC0 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_C)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC1 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_D)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC2 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_E)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC3 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_H)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC4 + 8 * INST_IMM(0).uval)
if (INST_IMM(0).mask & IMM_BIT && INST_REG(2) == REG_L)
INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0xC5 + 8 * INST_IMM(0).uval)
INST_ERROR(ARG_VALUE)
}
INST_ERROR(ARG_TYPE)


+ 76
- 608
src/assembler/instructions.yml 查看文件

@@ -115,136 +115,24 @@ bit:
cases:
- type: [immediate, register]
cases:
- cond: [bit.0, a]
return: [0xCB, 0x47]
- cond: [bit.0, b]
return: [0xCB, 0x40]
- cond: [bit.0, c]
return: [0xCB, 0x41]
- cond: [bit.0, d]
return: [0xCB, 0x42]
- cond: [bit.0, e]
return: [0xCB, 0x43]
- cond: [bit.0, h]
return: [0xCB, 0x44]
- cond: [bit.0, l]
return: [0xCB, 0x45]
- cond: [bit.1, a]
return: [0xCB, 0x4F]
- cond: [bit.1, b]
return: [0xCB, 0x48]
- cond: [bit.1, c]
return: [0xCB, 0x49]
- cond: [bit.1, d]
return: [0xCB, 0x4A]
- cond: [bit.1, e]
return: [0xCB, 0x4B]
- cond: [bit.1, h]
return: [0xCB, 0x4C]
- cond: [bit.1, l]
return: [0xCB, 0x4D]
- cond: [bit.2, a]
return: [0xCB, 0x57]
- cond: [bit.2, b]
return: [0xCB, 0x50]
- cond: [bit.2, c]
return: [0xCB, 0x51]
- cond: [bit.2, d]
return: [0xCB, 0x52]
- cond: [bit.2, e]
return: [0xCB, 0x53]
- cond: [bit.2, h]
return: [0xCB, 0x54]
- cond: [bit.2, l]
return: [0xCB, 0x55]
- cond: [bit.3, a]
return: [0xCB, 0x5F]
- cond: [bit.3, b]
return: [0xCB, 0x58]
- cond: [bit.3, c]
return: [0xCB, 0x59]
- cond: [bit.3, d]
return: [0xCB, 0x5A]
- cond: [bit.3, e]
return: [0xCB, 0x5B]
- cond: [bit.3, h]
return: [0xCB, 0x5C]
- cond: [bit.3, l]
return: [0xCB, 0x5D]
- cond: [bit.4, a]
return: [0xCB, 0x67]
- cond: [bit.4, b]
return: [0xCB, 0x60]
- cond: [bit.4, c]
return: [0xCB, 0x61]
- cond: [bit.4, d]
return: [0xCB, 0x62]
- cond: [bit.4, e]
return: [0xCB, 0x63]
- cond: [bit.4, h]
return: [0xCB, 0x64]
- cond: [bit.4, l]
return: [0xCB, 0x65]
- cond: [bit.5, a]
return: [0xCB, 0x6F]
- cond: [bit.5, b]
return: [0xCB, 0x68]
- cond: [bit.5, c]
return: [0xCB, 0x69]
- cond: [bit.5, d]
return: [0xCB, 0x6A]
- cond: [bit.5, e]
return: [0xCB, 0x6B]
- cond: [bit.5, h]
return: [0xCB, 0x6C]
- cond: [bit.5, l]
return: [0xCB, 0x6D]
- cond: [bit.6, a]
return: [0xCB, 0x77]
- cond: [bit.6, b]
return: [0xCB, 0x70]
- cond: [bit.6, c]
return: [0xCB, 0x71]
- cond: [bit.6, d]
return: [0xCB, 0x72]
- cond: [bit.6, e]
return: [0xCB, 0x73]
- cond: [bit.6, h]
return: [0xCB, 0x74]
- cond: [bit.6, l]
return: [0xCB, 0x75]
- cond: [bit.7, a]
return: [0xCB, 0x7F]
- cond: [bit.7, b]
return: [0xCB, 0x78]
- cond: [bit.7, c]
return: [0xCB, 0x79]
- cond: [bit.7, d]
return: [0xCB, 0x7A]
- cond: [bit.7, e]
return: [0xCB, 0x7B]
- cond: [bit.7, h]
return: [0xCB, 0x7C]
- cond: [bit.7, l]
return: [0xCB, 0x7D]
- cond: [bit, a]
return: [0xCB, bit(0x47)]
- cond: [bit, b]
return: [0xCB, bit(0x40)]
- cond: [bit, c]
return: [0xCB, bit(0x41)]
- cond: [bit, d]
return: [0xCB, bit(0x42)]
- cond: [bit, e]
return: [0xCB, bit(0x43)]
- cond: [bit, h]
return: [0xCB, bit(0x44)]
- cond: [bit, l]
return: [0xCB, bit(0x45)]
- type: [immediate, indirect_hl_or_indexed]
cases:
- cond: [bit.0, _]
return: [0xCB, 0x46]
- cond: [bit.1, _]
return: [0xCB, 0x4E]
- cond: [bit.2, _]
return: [0xCB, 0x56]
- cond: [bit.3, _]
return: [0xCB, 0x5E]
- cond: [bit.4, _]
return: [0xCB, 0x66]
- cond: [bit.5, _]
return: [0xCB, 0x6E]
- cond: [bit.6, _]
return: [0xCB, 0x76]
- cond: [bit.7, _]
return: [0xCB, 0x7E]
- cond: [bit, _]
return: [0xCB, bit(0x46)]

call:
args: yes
@@ -865,250 +753,40 @@ res:
cases:
- type: [immediate, register]
cases:
- cond: [bit.0, a]
return: [0xCB, 0x87]
- cond: [bit.0, b]
return: [0xCB, 0x80]
- cond: [bit.0, c]
return: [0xCB, 0x81]
- cond: [bit.0, d]
return: [0xCB, 0x82]
- cond: [bit.0, e]
return: [0xCB, 0x83]
- cond: [bit.0, h]
return: [0xCB, 0x84]
- cond: [bit.0, l]
return: [0xCB, 0x85]
- cond: [bit.1, a]
return: [0xCB, 0x8F]
- cond: [bit.1, b]
return: [0xCB, 0x88]
- cond: [bit.1, c]
return: [0xCB, 0x89]
- cond: [bit.1, d]
return: [0xCB, 0x8A]
- cond: [bit.1, e]
return: [0xCB, 0x8B]
- cond: [bit.1, h]
return: [0xCB, 0x8C]
- cond: [bit.1, l]
return: [0xCB, 0x8D]
- cond: [bit.2, a]
return: [0xCB, 0x97]
- cond: [bit.2, b]
return: [0xCB, 0x90]
- cond: [bit.2, c]
return: [0xCB, 0x91]
- cond: [bit.2, d]
return: [0xCB, 0x92]
- cond: [bit.2, e]
return: [0xCB, 0x93]
- cond: [bit.2, h]
return: [0xCB, 0x94]
- cond: [bit.2, l]
return: [0xCB, 0x95]
- cond: [bit.3, a]
return: [0xCB, 0x9F]
- cond: [bit.3, b]
return: [0xCB, 0x98]
- cond: [bit.3, c]
return: [0xCB, 0x99]
- cond: [bit.3, d]
return: [0xCB, 0x9A]
- cond: [bit.3, e]
return: [0xCB, 0x9B]
- cond: [bit.3, h]
return: [0xCB, 0x9C]
- cond: [bit.3, l]
return: [0xCB, 0x9D]
- cond: [bit.4, a]
return: [0xCB, 0xA7]
- cond: [bit.4, b]
return: [0xCB, 0xA0]
- cond: [bit.4, c]
return: [0xCB, 0xA1]
- cond: [bit.4, d]
return: [0xCB, 0xA2]
- cond: [bit.4, e]
return: [0xCB, 0xA3]
- cond: [bit.4, h]
return: [0xCB, 0xA4]
- cond: [bit.4, l]
return: [0xCB, 0xA5]
- cond: [bit.5, a]
return: [0xCB, 0xAF]
- cond: [bit.5, b]
return: [0xCB, 0xA8]
- cond: [bit.5, c]
return: [0xCB, 0xA9]
- cond: [bit.5, d]
return: [0xCB, 0xAA]
- cond: [bit.5, e]
return: [0xCB, 0xAB]
- cond: [bit.5, h]
return: [0xCB, 0xAC]
- cond: [bit.5, l]
return: [0xCB, 0xAD]
- cond: [bit.6, a]
return: [0xCB, 0xB7]
- cond: [bit.6, b]
return: [0xCB, 0xB0]
- cond: [bit.6, c]
return: [0xCB, 0xB1]
- cond: [bit.6, d]
return: [0xCB, 0xB2]
- cond: [bit.6, e]
return: [0xCB, 0xB3]
- cond: [bit.6, h]
return: [0xCB, 0xB4]
- cond: [bit.6, l]
return: [0xCB, 0xB5]
- cond: [bit.7, a]
return: [0xCB, 0xBF]
- cond: [bit.7, b]
return: [0xCB, 0xB8]
- cond: [bit.7, c]
return: [0xCB, 0xB9]
- cond: [bit.7, d]
return: [0xCB, 0xBA]
- cond: [bit.7, e]
return: [0xCB, 0xBB]
- cond: [bit.7, h]
return: [0xCB, 0xBC]
- cond: [bit.7, l]
return: [0xCB, 0xBD]
- cond: [bit, a]
return: [0xCB, bit(0x87)]
- cond: [bit, b]
return: [0xCB, bit(0x80)]
- cond: [bit, c]
return: [0xCB, bit(0x81)]
- cond: [bit, d]
return: [0xCB, bit(0x82)]
- cond: [bit, e]
return: [0xCB, bit(0x83)]
- cond: [bit, h]
return: [0xCB, bit(0x84)]
- cond: [bit, l]
return: [0xCB, bit(0x85)]
- type: [immediate, indirect_hl_or_indexed]
cases:
- cond: [bit.0, _]
return: [0xCB, 0x86]
- cond: [bit.1, _]
return: [0xCB, 0x8E]
- cond: [bit.2, _]
return: [0xCB, 0x96]
- cond: [bit.3, _]
return: [0xCB, 0x9E]
- cond: [bit.4, _]
return: [0xCB, 0xA6]
- cond: [bit.5, _]
return: [0xCB, 0xAE]
- cond: [bit.6, _]
return: [0xCB, 0xB6]
- cond: [bit.7, _]
return: [0xCB, 0xBE]
- cond: [bit, _]
return: [0xCB, bit(0x86)]
- type: [immediate, indexed, register]
cases:
- cond: [bit.0, _, a]
return: [0xCB, 0x87]
- cond: [bit.0, _, b]
return: [0xCB, 0x80]
- cond: [bit.0, _, c]
return: [0xCB, 0x81]
- cond: [bit.0, _, d]
return: [0xCB, 0x82]
- cond: [bit.0, _, e]
return: [0xCB, 0x83]
- cond: [bit.0, _, h]
return: [0xCB, 0x84]
- cond: [bit.0, _, l]
return: [0xCB, 0x85]
- cond: [bit.1, _, a]
return: [0xCB, 0x8F]
- cond: [bit.1, _, b]
return: [0xCB, 0x88]
- cond: [bit.1, _, c]
return: [0xCB, 0x89]
- cond: [bit.1, _, d]
return: [0xCB, 0x8A]
- cond: [bit.1, _, e]
return: [0xCB, 0x8B]
- cond: [bit.1, _, h]
return: [0xCB, 0x8C]
- cond: [bit.1, _, l]
return: [0xCB, 0x8D]
- cond: [bit.2, _, a]
return: [0xCB, 0x97]
- cond: [bit.2, _, b]
return: [0xCB, 0x90]
- cond: [bit.2, _, c]
return: [0xCB, 0x91]
- cond: [bit.2, _, d]
return: [0xCB, 0x92]
- cond: [bit.2, _, e]
return: [0xCB, 0x93]
- cond: [bit.2, _, h]
return: [0xCB, 0x94]
- cond: [bit.2, _, l]
return: [0xCB, 0x95]
- cond: [bit.3, _, a]
return: [0xCB, 0x9F]
- cond: [bit.3, _, b]
return: [0xCB, 0x98]
- cond: [bit.3, _, c]
return: [0xCB, 0x99]
- cond: [bit.3, _, d]
return: [0xCB, 0x9A]
- cond: [bit.3, _, e]
return: [0xCB, 0x9B]
- cond: [bit.3, _, h]
return: [0xCB, 0x9C]
- cond: [bit.3, _, l]
return: [0xCB, 0x9D]
- cond: [bit.4, _, a]
return: [0xCB, 0xA7]
- cond: [bit.4, _, b]
return: [0xCB, 0xA0]
- cond: [bit.4, _, c]
return: [0xCB, 0xA1]
- cond: [bit.4, _, d]
return: [0xCB, 0xA2]
- cond: [bit.4, _, e]
return: [0xCB, 0xA3]
- cond: [bit.4, _, h]
return: [0xCB, 0xA4]
- cond: [bit.4, _, l]
return: [0xCB, 0xA5]
- cond: [bit.5, _, a]
return: [0xCB, 0xAF]
- cond: [bit.5, _, b]
return: [0xCB, 0xA8]
- cond: [bit.5, _, c]
return: [0xCB, 0xA9]
- cond: [bit.5, _, d]
return: [0xCB, 0xAA]
- cond: [bit.5, _, e]
return: [0xCB, 0xAB]
- cond: [bit.5, _, h]
return: [0xCB, 0xAC]
- cond: [bit.5, _, l]
return: [0xCB, 0xAD]
- cond: [bit.6, _, a]
return: [0xCB, 0xB7]
- cond: [bit.6, _, b]
return: [0xCB, 0xB0]
- cond: [bit.6, _, c]
return: [0xCB, 0xB1]
- cond: [bit.6, _, d]
return: [0xCB, 0xB2]
- cond: [bit.6, _, e]
return: [0xCB, 0xB3]
- cond: [bit.6, _, h]
return: [0xCB, 0xB4]
- cond: [bit.6, _, l]
return: [0xCB, 0xB5]
- cond: [bit.7, _, a]
return: [0xCB, 0xBF]
- cond: [bit.7, _, b]
return: [0xCB, 0xB8]
- cond: [bit.7, _, c]
return: [0xCB, 0xB9]
- cond: [bit.7, _, d]
return: [0xCB, 0xBA]
- cond: [bit.7, _, e]
return: [0xCB, 0xBB]
- cond: [bit.7, _, h]
return: [0xCB, 0xBC]
- cond: [bit.7, _, l]
return: [0xCB, 0xBD]
- cond: [bit, _, a]
return: [0xCB, bit(0x87)]
- cond: [bit, _, b]
return: [0xCB, bit(0x80)]
- cond: [bit, _, c]
return: [0xCB, bit(0x81)]
- cond: [bit, _, d]
return: [0xCB, bit(0x82)]
- cond: [bit, _, e]
return: [0xCB, bit(0x83)]
- cond: [bit, _, h]
return: [0xCB, bit(0x84)]
- cond: [bit, _, l]
return: [0xCB, bit(0x85)]

ret:
args: yes
@@ -1393,250 +1071,40 @@ set:
cases:
- type: [immediate, register]
cases:
- cond: [bit.0, a]
return: [0xCB, 0xC7]
- cond: [bit.0, b]
return: [0xCB, 0xC0]
- cond: [bit.0, c]
return: [0xCB, 0xC1]
- cond: [bit.0, d]
return: [0xCB, 0xC2]
- cond: [bit.0, e]
return: [0xCB, 0xC3]
- cond: [bit.0, h]
return: [0xCB, 0xC4]
- cond: [bit.0, l]
return: [0xCB, 0xC5]
- cond: [bit.1, a]
return: [0xCB, 0xCF]
- cond: [bit.1, b]
return: [0xCB, 0xC8]
- cond: [bit.1, c]
return: [0xCB, 0xC9]
- cond: [bit.1, d]
return: [0xCB, 0xCA]
- cond: [bit.1, e]
return: [0xCB, 0xCB]
- cond: [bit.1, h]
return: [0xCB, 0xCC]
- cond: [bit.1, l]
return: [0xCB, 0xCD]
- cond: [bit.2, a]
return: [0xCB, 0xD7]
- cond: [bit.2, b]
return: [0xCB, 0xD0]
- cond: [bit.2, c]
return: [0xCB, 0xD1]
- cond: [bit.2, d]
return: [0xCB, 0xD2]
- cond: [bit.2, e]
return: [0xCB, 0xD3]
- cond: [bit.2, h]
return: [0xCB, 0xD4]
- cond: [bit.2, l]
return: [0xCB, 0xD5]
- cond: [bit.3, a]
return: [0xCB, 0xDF]
- cond: [bit.3, b]
return: [0xCB, 0xD8]
- cond: [bit.3, c]
return: [0xCB, 0xD9]
- cond: [bit.3, d]
return: [0xCB, 0xDA]
- cond: [bit.3, e]
return: [0xCB, 0xDB]
- cond: [bit.3, h]
return: [0xCB, 0xDC]
- cond: [bit.3, l]
return: [0xCB, 0xDD]
- cond: [bit.4, a]
return: [0xCB, 0xE7]
- cond: [bit.4, b]
return: [0xCB, 0xE0]
- cond: [bit.4, c]
return: [0xCB, 0xE1]
- cond: [bit.4, d]
return: [0xCB, 0xE2]
- cond: [bit.4, e]
return: [0xCB, 0xE3]
- cond: [bit.4, h]
return: [0xCB, 0xE4]
- cond: [bit.4, l]
return: [0xCB, 0xE5]
- cond: [bit.5, a]
return: [0xCB, 0xEF]
- cond: [bit.5, b]
return: [0xCB, 0xE8]
- cond: [bit.5, c]
return: [0xCB, 0xE9]
- cond: [bit.5, d]
return: [0xCB, 0xEA]
- cond: [bit.5, e]
return: [0xCB, 0xEB]
- cond: [bit.5, h]
return: [0xCB, 0xEC]
- cond: [bit.5, l]
return: [0xCB, 0xED]
- cond: [bit.6, a]
return: [0xCB, 0xF7]
- cond: [bit.6, b]
return: [0xCB, 0xF0]
- cond: [bit.6, c]
return: [0xCB, 0xF1]
- cond: [bit.6, d]
return: [0xCB, 0xF2]
- cond: [bit.6, e]
return: [0xCB, 0xF3]
- cond: [bit.6, h]
return: [0xCB, 0xF4]
- cond: [bit.6, l]
return: [0xCB, 0xF5]
- cond: [bit.7, a]
return: [0xCB, 0xFF]
- cond: [bit.7, b]
return: [0xCB, 0xF8]
- cond: [bit.7, c]
return: [0xCB, 0xF9]
- cond: [bit.7, d]
return: [0xCB, 0xFA]
- cond: [bit.7, e]
return: [0xCB, 0xFB]
- cond: [bit.7, h]
return: [0xCB, 0xFC]
- cond: [bit.7, l]
return: [0xCB, 0xFD]
- cond: [bit, a]
return: [0xCB, bit(0xC7)]
- cond: [bit, b]
return: [0xCB, bit(0xC0)]
- cond: [bit, c]
return: [0xCB, bit(0xC1)]
- cond: [bit, d]
return: [0xCB, bit(0xC2)]
- cond: [bit, e]
return: [0xCB, bit(0xC3)]
- cond: [bit, h]
return: [0xCB, bit(0xC4)]
- cond: [bit, l]
return: [0xCB, bit(0xC5)]
- type: [immediate, indirect_hl_or_indexed]
cases:
- cond: [bit.0, _]
return: [0xCB, 0xC6]
- cond: [bit.1, _]
return: [0xCB, 0xCE]
- cond: [bit.2, _]
return: [0xCB, 0xD6]
- cond: [bit.3, _]
return: [0xCB, 0xDE]
- cond: [bit.4, _]
return: [0xCB, 0xE6]
- cond: [bit.5, _]
return: [0xCB, 0xEE]
- cond: [bit.6, _]
return: [0xCB, 0xF6]
- cond: [bit.7, _]
return: [0xCB, 0xFE]
- cond: [bit, _]
return: [0xCB, bit(0xC6)]
- type: [immediate, indexed, register]
cases:
- cond: [bit.0, _, a]
return: [0xCB, 0xC7]
- cond: [bit.0, _, b]
return: [0xCB, 0xC0]
- cond: [bit.0, _, c]
return: [0xCB, 0xC1]
- cond: [bit.0, _, d]
return: [0xCB, 0xC2]
- cond: [bit.0, _, e]
return: [0xCB, 0xC3]
- cond: [bit.0, _, h]
return: [0xCB, 0xC4]
- cond: [bit.0, _, l]
return: [0xCB, 0xC5]
- cond: [bit.1, _, a]
return: [0xCB, 0xCF]
- cond: [bit.1, _, b]
return: [0xCB, 0xC8]
- cond: [bit.1, _, c]
return: [0xCB, 0xC9]
- cond: [bit.1, _, d]
return: [0xCB, 0xCA]
- cond: [bit.1, _, e]
return: [0xCB, 0xCB]
- cond: [bit.1, _, h]
return: [0xCB, 0xCC]
- cond: [bit.1, _, l]
return: [0xCB, 0xCD]
- cond: [bit.2, _, a]
return: [0xCB, 0xD7]
- cond: [bit.2, _, b]
return: [0xCB, 0xD0]
- cond: [bit.2, _, c]
return: [0xCB, 0xD1]
- cond: [bit.2, _, d]
return: [0xCB, 0xD2]
- cond: [bit.2, _, e]
return: [0xCB, 0xD3]
- cond: [bit.2, _, h]
return: [0xCB, 0xD4]
- cond: [bit.2, _, l]
return: [0xCB, 0xD5]
- cond: [bit.3, _, a]
return: [0xCB, 0xDF]
- cond: [bit.3, _, b]
return: [0xCB, 0xD8]
- cond: [bit.3, _, c]
return: [0xCB, 0xD9]
- cond: [bit.3, _, d]
return: [0xCB, 0xDA]
- cond: [bit.3, _, e]
return: [0xCB, 0xDB]
- cond: [bit.3, _, h]
return: [0xCB, 0xDC]
- cond: [bit.3, _, l]
return: [0xCB, 0xDD]
- cond: [bit.4, _, a]
return: [0xCB, 0xE7]
- cond: [bit.4, _, b]
return: [0xCB, 0xE0]
- cond: [bit.4, _, c]
return: [0xCB, 0xE1]
- cond: [bit.4, _, d]
return: [0xCB, 0xE2]
- cond: [bit.4, _, e]
return: [0xCB, 0xE3]
- cond: [bit.4, _, h]
return: [0xCB, 0xE4]
- cond: [bit.4, _, l]
return: [0xCB, 0xE5]
- cond: [bit.5, _, a]
return: [0xCB, 0xEF]
- cond: [bit.5, _, b]
return: [0xCB, 0xE8]
- cond: [bit.5, _, c]
return: [0xCB, 0xE9]
- cond: [bit.5, _, d]
return: [0xCB, 0xEA]
- cond: [bit.5, _, e]
return: [0xCB, 0xEB]
- cond: [bit.5, _, h]
return: [0xCB, 0xEC]
- cond: [bit.5, _, l]
return: [0xCB, 0xED]
- cond: [bit.6, _, a]
return: [0xCB, 0xF7]
- cond: [bit.6, _, b]
return: [0xCB, 0xF0]
- cond: [bit.6, _, c]
return: [0xCB, 0xF1]
- cond: [bit.6, _, d]
return: [0xCB, 0xF2]
- cond: [bit.6, _, e]
return: [0xCB, 0xF3]
- cond: [bit.6, _, h]
return: [0xCB, 0xF4]
- cond: [bit.6, _, l]
return: [0xCB, 0xF5]
- cond: [bit.7, _, a]
return: [0xCB, 0xFF]
- cond: [bit.7, _, b]
return: [0xCB, 0xF8]
- cond: [bit.7, _, c]
return: [0xCB, 0xF9]
- cond: [bit.7, _, d]
return: [0xCB, 0xFA]
- cond: [bit.7, _, e]
return: [0xCB, 0xFB]
- cond: [bit.7, _, h]
return: [0xCB, 0xFC]
- cond: [bit.7, _, l]
return: [0xCB, 0xFD]
- cond: [bit, _, a]
return: [0xCB, bit(0xC7)]
- cond: [bit, _, b]
return: [0xCB, bit(0xC0)]
- cond: [bit, _, c]
return: [0xCB, bit(0xC1)]
- cond: [bit, _, d]
return: [0xCB, bit(0xC2)]
- cond: [bit, _, e]
return: [0xCB, bit(0xC3)]
- cond: [bit, _, h]
return: [0xCB, bit(0xC4)]
- cond: [bit, _, l]
return: [0xCB, bit(0xC5)]

sl1: &sl1
args: yes


Loading…
取消
儲存