Changelog as follows for libdisasm-0.23. Corrections to opcode table; corrected operand access + flags
/*****************
ia_32_implicit.c:
******************
* static op_implicit_list_t list_cmps[]
Added edi&esi (OP_W) to CMPS - they are incremented/decremented depending on DIR flag
* static op_implicit_list_t list_jmp[] =
Added EIP (OP_R|OP_W) as implicit operand to JMP and JCC
* static op_implicit_list_t list_scas[] =
Added EDI (OP_W) to SCAS - increment/decrement dep. DIR flag
* static op_implicit_list_t list_loop[] =
Added EIP (OP_R|OP_W) as implicit
*********************
ia32_opcode_tables.c:
*********************
* "ins" and "outs"
Added TEST_DIR flag
* Numerous INS_BRANCHCC and INS_BRANCH instructions
Added list_jmp[] as implicit operand
* "movs", "cmps", "stos", "lods", "scas"
Added correct flag setting/testing. Added list_cmps to cmps and list_scas to scas as
implicit operands.
* "cmc"
Added TEST_CARRY as well, because it is read before written (complement)
* "bts", "btr", btc
Added correct operand access (OP_R|OP_W)
* "cmpxchg"
Added correct second operand access (OP_R|OP_W)
* "xadd"
Added correct second operand access (OP_R|OP_W)
* "cmpxchg8b"
Added correct flag access (SET_ZERO)
* "cmpsd"
Added correct flag access (INS_SET_ALL | INS_TEST_DIR)
* "ltr"
Changed from OP_W to OP_R
Patch for libdisasm-0.23, fixing many opcode accesses and flag test/setting as described in Intel manual