Several of the special versions of POP such as POPDS, POPSS, etc list the operand as ignore instead of write. Pull request #1725 corrects the issue.
Actual cstool output for POPDS (note missing WRITE on operand[0]):
./cstool -d x32 "1f"
0 1f pop ds
Prefix:0x00 0x00 0x00 0x00
Opcode:0x1f 0x00 0x00 0x00
rex: 0x0
addr_size: 4
modrm: 0x0
disp: 0x0
sib: 0x0
op_count: 1
operands[0].type: REG = ds
operands[0].size: 2
Groups: privilege not64bitmode
Expected output from cstool for POPDS (note inclusion of WRITE on operand[0]):
./cstool -d x32 "1f"
0 1f pop ds
Prefix:0x00 0x00 0x00 0x00
Opcode:0x1f 0x00 0x00 0x00
rex: 0x0
addr_size: 4
modrm: 0x0
disp: 0x0
sib: 0x0
op_count: 1
operands[0].type: REG = ds
operands[0].size: 2
operands[0].access: WRITE
Registers modified: ds
Groups: privilege not64bitmode
EDIT: The two files changed by this pull request indicate they are auto generated. I have had similar changes rolled back in the past (see #1512 ). If there is a better place to make these changes please let me know.
Several of the special versions of POP such as POPDS, POPSS, etc list the operand as ignore instead of write. Pull request #1725 corrects the issue.
Actual cstool output for POPDS (note missing WRITE on operand[0]):
./cstool -d x32 "1f"
0 1f pop ds
Prefix:0x00 0x00 0x00 0x00
Opcode:0x1f 0x00 0x00 0x00
rex: 0x0
addr_size: 4
modrm: 0x0
disp: 0x0
sib: 0x0
op_count: 1
operands[0].type: REG = ds
operands[0].size: 2
Groups: privilege not64bitmode
Expected output from cstool for POPDS (note inclusion of WRITE on operand[0]):
./cstool -d x32 "1f"
0 1f pop ds
Prefix:0x00 0x00 0x00 0x00
Opcode:0x1f 0x00 0x00 0x00
rex: 0x0
addr_size: 4
modrm: 0x0
disp: 0x0
sib: 0x0
op_count: 1
operands[0].type: REG = ds
operands[0].size: 2
operands[0].access: WRITE
Registers modified: ds
Groups: privilege not64bitmode
EDIT: The two files changed by this pull request indicate they are auto generated. I have had similar changes rolled back in the past (see #1512 ). If there is a better place to make these changes please let me know.