Menu

#6 Patch for libdisasm-0.23

open
None
5
2008-06-04
2008-06-04
No

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

Discussion

  • Egil Aspevik Martinsen

    Patch for libdisasm-0.23, fixing many opcode accesses and flag test/setting as described in Intel manual

     
  • Egil Aspevik Martinsen

    • assigned_to: nobody --> mammon_
     

Log in to post a comment.