Browse Source

Don't check immediate's is_label if it's not a U16.

master
Ben Kurtovic 9 years ago
parent
commit
308af448d8
2 changed files with 77 additions and 76 deletions
  1. +4
    -3
      scripts/update_asm_instructions.py
  2. +73
    -73
      src/assembler/instructions.inc.c

+ 4
- 3
scripts/update_asm_instructions.py View File

@@ -114,9 +114,10 @@ class Instruction(object):
vtype = "sval" if itype.upper() in ["S8", "REL"] else "uval" vtype = "sval" if itype.upper() in ["S8", "REL"] else "uval"


test1 = "INST_IMM({0}).mask & IMM_{1}".format(num, itype.upper()) test1 = "INST_IMM({0}).mask & IMM_{1}".format(num, itype.upper())
test2 = "!INST_IMM({0}).is_label".format(num)
test3 = "INST_IMM({0}).{1} == {2}".format(num, vtype, value)
return "({0} && {1} && {2})".format(test1, test2, test3)
if (itype.upper() == "U16"):
test1 += " && !INST_IMM({0}).is_label".format(num)
test2 = "INST_IMM({0}).{1} == {2}".format(num, vtype, value)
return "({0} && {1})".format(test1, test2)


return "INST_IMM({0}).mask & IMM_{1}".format(num, cond.upper()) return "INST_IMM({0}).mask & IMM_{1}".format(num, cond.upper())




+ 73
- 73
src/assembler/instructions.inc.c View File

@@ -7,7 +7,7 @@
`make` should trigger a rebuild when it is modified; if not, use: `make` should trigger a rebuild when it is modified; if not, use:
`python scripts/update_asm_instructions.py`. `python scripts/update_asm_instructions.py`.


@AUTOGEN_DATE Mon May 18 08:39:52 2015 UTC
@AUTOGEN_DATE Mon May 18 08:43:46 2015 UTC
*/ */


/* @AUTOGEN_INST_BLOCK_START */ /* @AUTOGEN_INST_BLOCK_START */
@@ -201,156 +201,156 @@ INST_FUNC(bit)
AT_NONE AT_NONE
) )
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == 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).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x47) INST_RETURN(2, 0xCB, 0x47)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x40) INST_RETURN(2, 0xCB, 0x40)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x41) INST_RETURN(2, 0xCB, 0x41)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x42) INST_RETURN(2, 0xCB, 0x42)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x43) INST_RETURN(2, 0xCB, 0x43)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x44) INST_RETURN(2, 0xCB, 0x44)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x45) INST_RETURN(2, 0xCB, 0x45)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x4F) INST_RETURN(2, 0xCB, 0x4F)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x48) INST_RETURN(2, 0xCB, 0x48)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x49) INST_RETURN(2, 0xCB, 0x49)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x4A) INST_RETURN(2, 0xCB, 0x4A)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x4B) INST_RETURN(2, 0xCB, 0x4B)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x4C) INST_RETURN(2, 0xCB, 0x4C)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x4D) INST_RETURN(2, 0xCB, 0x4D)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x57) INST_RETURN(2, 0xCB, 0x57)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x50) INST_RETURN(2, 0xCB, 0x50)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x51) INST_RETURN(2, 0xCB, 0x51)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x52) INST_RETURN(2, 0xCB, 0x52)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x53) INST_RETURN(2, 0xCB, 0x53)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x54) INST_RETURN(2, 0xCB, 0x54)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x55) INST_RETURN(2, 0xCB, 0x55)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x5F) INST_RETURN(2, 0xCB, 0x5F)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x58) INST_RETURN(2, 0xCB, 0x58)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x59) INST_RETURN(2, 0xCB, 0x59)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x5A) INST_RETURN(2, 0xCB, 0x5A)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x5B) INST_RETURN(2, 0xCB, 0x5B)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x5C) INST_RETURN(2, 0xCB, 0x5C)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x5D) INST_RETURN(2, 0xCB, 0x5D)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x67) INST_RETURN(2, 0xCB, 0x67)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x60) INST_RETURN(2, 0xCB, 0x60)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x61) INST_RETURN(2, 0xCB, 0x61)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x62) INST_RETURN(2, 0xCB, 0x62)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x63) INST_RETURN(2, 0xCB, 0x63)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x64) INST_RETURN(2, 0xCB, 0x64)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x65) INST_RETURN(2, 0xCB, 0x65)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x6F) INST_RETURN(2, 0xCB, 0x6F)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x68) INST_RETURN(2, 0xCB, 0x68)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x69) INST_RETURN(2, 0xCB, 0x69)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x6A) INST_RETURN(2, 0xCB, 0x6A)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x6B) INST_RETURN(2, 0xCB, 0x6B)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x6C) INST_RETURN(2, 0xCB, 0x6C)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x6D) INST_RETURN(2, 0xCB, 0x6D)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x77) INST_RETURN(2, 0xCB, 0x77)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x70) INST_RETURN(2, 0xCB, 0x70)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x71) INST_RETURN(2, 0xCB, 0x71)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x72) INST_RETURN(2, 0xCB, 0x72)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x73) INST_RETURN(2, 0xCB, 0x73)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x74) INST_RETURN(2, 0xCB, 0x74)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x75) INST_RETURN(2, 0xCB, 0x75)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_A)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_A)
INST_RETURN(2, 0xCB, 0x7F) INST_RETURN(2, 0xCB, 0x7F)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_B)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_B)
INST_RETURN(2, 0xCB, 0x78) INST_RETURN(2, 0xCB, 0x78)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_C)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_C)
INST_RETURN(2, 0xCB, 0x79) INST_RETURN(2, 0xCB, 0x79)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_D)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_D)
INST_RETURN(2, 0xCB, 0x7A) INST_RETURN(2, 0xCB, 0x7A)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_E)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_E)
INST_RETURN(2, 0xCB, 0x7B) INST_RETURN(2, 0xCB, 0x7B)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_H)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_H)
INST_RETURN(2, 0xCB, 0x7C) INST_RETURN(2, 0xCB, 0x7C)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7) && INST_REG(1) == REG_L)
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7) && INST_REG(1) == REG_L)
INST_RETURN(2, 0xCB, 0x7D) INST_RETURN(2, 0xCB, 0x7D)
INST_ERROR(ARG_VALUE) INST_ERROR(ARG_VALUE)
} }
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDIRECT && 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)) { (INST_INDIRECT(1).type == AT_REGISTER && INST_INDIRECT(1).addr.reg == REG_HL)) {
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 0))
INST_RETURN(2, 0xCB, 0x46) INST_RETURN(2, 0xCB, 0x46)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 1))
INST_RETURN(2, 0xCB, 0x4E) INST_RETURN(2, 0xCB, 0x4E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 2))
INST_RETURN(2, 0xCB, 0x56) INST_RETURN(2, 0xCB, 0x56)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 3))
INST_RETURN(2, 0xCB, 0x5E) INST_RETURN(2, 0xCB, 0x5E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 4))
INST_RETURN(2, 0xCB, 0x66) INST_RETURN(2, 0xCB, 0x66)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 5))
INST_RETURN(2, 0xCB, 0x6E) INST_RETURN(2, 0xCB, 0x6E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 6))
INST_RETURN(2, 0xCB, 0x76) INST_RETURN(2, 0xCB, 0x76)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7))
if ((INST_IMM(0).mask & IMM_BIT && INST_IMM(0).uval == 7))
INST_RETURN(2, 0xCB, 0x7E) INST_RETURN(2, 0xCB, 0x7E)
INST_ERROR(ARG_VALUE) INST_ERROR(ARG_VALUE)
} }
if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED) { if (INST_NARGS == 2 && INST_TYPE(0) == AT_IMMEDIATE && INST_TYPE(1) == AT_INDEXED) {
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 0))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x46)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 1))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x4E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 2))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x56)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 3))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x5E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 4))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x66)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 5))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x6E)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 6))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x76)
if ((INST_IMM(0).mask & IMM_BIT && !INST_IMM(0).is_label && INST_IMM(0).uval == 7))
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) INST_RETURN(4, INST_INDEX_PREFIX(1), 0xCB, INST_INDEX(1).offset, 0x7E)
INST_ERROR(ARG_VALUE) INST_ERROR(ARG_VALUE)
} }


Loading…
Cancel
Save